From 0a351b49fd6d20290557aba6ee2748447cd79cb0 Mon Sep 17 00:00:00 2001 From: Jellyfrog Date: Mon, 17 Apr 2023 13:51:35 +0200 Subject: [PATCH] Laravel 9.x Shift (#14504) * Move `resources/lang` folder * Shift registered middleware * Remove `fruitcake/laravel-cors` dependency * Streamline `$commands` property * Upgrade to Flysystem 3.0 * Shift core files * Convert `optional()` to nullsafe operator * Remove unnecessary `$model` property * Convert route options to fluent methods Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods. * Convert deprecated `$dates` property to `$casts` * Shift config files * Default config files In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used. * Bump Laravel dependencies * Use `` tags for configuration `` tags have a lower precedence than system environment variables making it easier to overwrite PHPUnit configuration values in additional environments, such a CI. Review this blog post for more details on configuration precedence when testing Laravel: https://jasonmccreary.me/articles/laravel-testing-configuration-precedence/ * Fix error provider * Match new symfony syntax * Match upstream syntax * Fix route syntax * generate composer.lock * Sync back configs * routes * composer * Fix more flare * fix cors * sync lang * Apply fixes from StyleCI (#14517) Co-authored-by: StyleCI Bot * bump larastan * update packages * wip * Temporarily lower phpstan level * Update phpstan.neon * wip * wip * wip * Apply fixes from StyleCI (#14592) Co-authored-by: StyleCI Bot * test * Update CiHelper.php * Update test.yml * Update CiHelper.php * Update CiHelper.php * Apply fixes from StyleCI (#14616) Co-authored-by: StyleCI Bot * test? * fix phpstan problems * dont run snmpsim on github ci * Fix whitespace * More whitespace * More whitespace ??? * I think the space broke it * fix the reset of the whitespace * hard code auth guard --------- Co-authored-by: Shift Co-authored-by: StyleCI Bot Co-authored-by: Tony Murray --- LibreNMS/Data/Store/Datastore.php | 2 +- LibreNMS/Device/WirelessSensor.php | 2 +- LibreNMS/Modules/Os.php | 6 +- LibreNMS/ObjectCache.php | 29 +- LibreNMS/Util/CiHelper.php | 16 +- LibreNMS/Util/DynamicConfigItem.php | 2 +- LibreNMS/Util/Url.php | 2 +- app/Console/Commands/DeviceAdd.php | 6 +- app/Console/DynamicInputOption.php | 4 +- app/Console/Kernel.php | 9 - app/Console/LnmsCommand.php | 8 +- app/Exceptions/Handler.php | 4 +- .../Ajax/DeviceSearchController.php | 6 +- .../Controllers/Ajax/RipeNccApiController.php | 4 +- .../Controllers/Auth/RegisterController.php | 2 +- .../Install/InstallationController.php | 2 +- .../Controllers/Table/PortsController.php | 6 +- .../Widgets/TopErrorsController.php | 2 +- app/Http/Middleware/HandleCors.php | 9 +- app/Http/Middleware/TrimStrings.php | 2 +- app/Http/Middleware/ValidateSignature.php | 22 + .../Requests/TwoFactorManagementRequest.php | 2 +- .../Middleware/AddGitInformation.php | 6 +- .../Reporting/Middleware/CleanContext.php | 6 +- .../Reporting/Middleware/SetGroups.php | 6 +- .../Reporting/Middleware/SetInstanceId.php | 6 +- app/Models/AlertTemplate.php | 3 +- app/Models/AuthLog.php | 4 +- app/Models/Device.php | 2 +- app/Models/Port.php | 4 +- app/Models/ServiceTemplate.php | 2 +- app/Providers/AuthServiceProvider.php | 2 +- app/Providers/ErrorReportingProvider.php | 8 +- app/Providers/EventServiceProvider.php | 10 + composer.json | 42 +- composer.lock | 2566 ++++++++++------- config/app.php | 228 +- config/auth.php | 128 +- config/broadcasting.php | 70 +- config/cache.php | 184 +- config/cors.php | 34 +- config/database.php | 380 +-- config/filesystems.php | 97 +- config/flare.php | 95 +- config/hashing.php | 30 +- config/ignition.php | 297 +- config/logging.php | 261 +- config/mail.php | 6 +- config/queue.php | 100 +- config/services.php | 41 +- config/session.php | 6 +- config/vue-i18n-generator.php | 2 +- database/factories/AlertScheduleFactory.php | 7 - database/factories/AlertTransportFactory.php | 3 - database/factories/BgpPeerFactory.php | 7 - database/factories/BillFactory.php | 7 - database/factories/ComponentFactory.php | 7 - database/factories/DeviceFactory.php | 7 - database/factories/DeviceGroupFactory.php | 7 - database/factories/Ipv4AddressFactory.php | 7 - database/factories/Ipv4NetworkFactory.php | 7 - database/factories/LocationFactory.php | 7 - database/factories/OspfNbrFactory.php | 7 - database/factories/OspfPortFactory.php | 7 - database/factories/PortFactory.php | 7 - database/factories/SensorFactory.php | 7 - database/factories/SyslogFactory.php | 7 - database/factories/UserFactory.php | 7 - database/factories/VminfoFactory.php | 7 - ...9_150217_update_users_widgets_settings.php | 2 + doc/Developing/os/Health-Information.md | 4 +- .../html/pages/device/edit/modules.inc.php | 2 +- {resources/lang => lang}/de.json | 0 {resources/lang => lang}/de/auth.php | 0 {resources/lang => lang}/de/commands.php | 0 {resources/lang => lang}/de/pagination.php | 0 {resources/lang => lang}/de/passwords.php | 0 {resources/lang => lang}/de/preferences.php | 0 {resources/lang => lang}/de/sensors.php | 0 {resources/lang => lang}/de/settings.php | 0 {resources/lang => lang}/de/syslog.php | 0 {resources/lang => lang}/de/validation.php | 0 {resources/lang => lang}/de/wireless.php | 0 {resources/lang => lang}/en/auth.php | 1 + {resources/lang => lang}/en/bgp.php | 0 {resources/lang => lang}/en/commands.php | 0 {resources/lang => lang}/en/components.php | 0 {resources/lang => lang}/en/device.php | 0 {resources/lang => lang}/en/exceptions.php | 0 {resources/lang => lang}/en/install.php | 0 {resources/lang => lang}/en/modules.php | 0 {resources/lang => lang}/en/pagination.php | 0 {resources/lang => lang}/en/passwords.php | 0 {resources/lang => lang}/en/plugins.php | 0 {resources/lang => lang}/en/poller.php | 0 {resources/lang => lang}/en/port.php | 0 {resources/lang => lang}/en/preferences.php | 0 {resources/lang => lang}/en/sensors.php | 0 {resources/lang => lang}/en/settings.php | 0 {resources/lang => lang}/en/smokeping.php | 0 {resources/lang => lang}/en/stp.php | 0 {resources/lang => lang}/en/syslog.php | 0 {resources/lang => lang}/en/validation.php | 84 +- {resources/lang => lang}/en/widgets.php | 0 {resources/lang => lang}/en/wireless.php | 0 {resources/lang => lang}/fr.json | 0 {resources/lang => lang}/fr/auth.php | 0 {resources/lang => lang}/fr/commands.php | 0 {resources/lang => lang}/fr/pagination.php | 0 {resources/lang => lang}/fr/passwords.php | 0 {resources/lang => lang}/fr/preferences.php | 0 {resources/lang => lang}/fr/sensors.php | 0 {resources/lang => lang}/fr/settings.php | 0 {resources/lang => lang}/fr/validation.php | 0 {resources/lang => lang}/fr/wireless.php | 0 {resources/lang => lang}/it.json | 0 {resources/lang => lang}/it/auth.php | 0 {resources/lang => lang}/it/bgp.php | 0 {resources/lang => lang}/it/commands.php | 0 {resources/lang => lang}/it/components.php | 0 {resources/lang => lang}/it/device.php | 0 {resources/lang => lang}/it/exceptions.php | 0 {resources/lang => lang}/it/install.php | 0 {resources/lang => lang}/it/pagination.php | 0 {resources/lang => lang}/it/passwords.php | 0 {resources/lang => lang}/it/plugins.php | 0 {resources/lang => lang}/it/poller.php | 0 {resources/lang => lang}/it/port.php | 0 {resources/lang => lang}/it/preferences.php | 0 {resources/lang => lang}/it/sensors.php | 0 {resources/lang => lang}/it/settings.php | 0 {resources/lang => lang}/it/smokeping.php | 0 {resources/lang => lang}/it/stp.php | 0 {resources/lang => lang}/it/validation.php | 0 {resources/lang => lang}/it/wireless.php | 0 {resources/lang => lang}/ru.json | 0 {resources/lang => lang}/ru/auth.php | 0 {resources/lang => lang}/ru/commands.php | 0 {resources/lang => lang}/ru/pagination.php | 0 {resources/lang => lang}/ru/passwords.php | 0 {resources/lang => lang}/ru/preferences.php | 0 {resources/lang => lang}/ru/validation.php | 0 {resources/lang => lang}/sr.json | 0 {resources/lang => lang}/sr/auth.php | 0 {resources/lang => lang}/sr/components.php | 0 {resources/lang => lang}/sr/device.php | 0 {resources/lang => lang}/sr/exceptions.php | 0 {resources/lang => lang}/sr/pagination.php | 0 {resources/lang => lang}/sr/passwords.php | 0 {resources/lang => lang}/sr/plugins.php | 0 {resources/lang => lang}/sr/port.php | 0 {resources/lang => lang}/sr/preferences.php | 0 {resources/lang => lang}/sr/sensors.php | 0 {resources/lang => lang}/sr/widgets.php | 0 {resources/lang => lang}/sr/wireless.php | 0 {resources/lang => lang}/uk.json | 0 {resources/lang => lang}/uk/auth.php | 0 {resources/lang => lang}/uk/commands.php | 0 {resources/lang => lang}/uk/components.php | 0 {resources/lang => lang}/uk/device.php | 0 {resources/lang => lang}/uk/exceptions.php | 0 {resources/lang => lang}/uk/install.php | 0 {resources/lang => lang}/uk/modules.php | 0 {resources/lang => lang}/uk/pagination.php | 0 {resources/lang => lang}/uk/passwords.php | 0 {resources/lang => lang}/uk/plugins.php | 0 {resources/lang => lang}/uk/poller.php | 0 {resources/lang => lang}/uk/port.php | 0 {resources/lang => lang}/uk/preferences.php | 0 {resources/lang => lang}/uk/sensors.php | 0 {resources/lang => lang}/uk/settings.php | 0 {resources/lang => lang}/uk/smokeping.php | 0 {resources/lang => lang}/uk/stp.php | 0 {resources/lang => lang}/uk/syslog.php | 0 {resources/lang => lang}/uk/validation.php | 0 {resources/lang => lang}/uk/wireless.php | 0 {resources/lang => lang}/zh-CN.json | 0 {resources/lang => lang}/zh-CN/auth.php | 0 {resources/lang => lang}/zh-CN/commands.php | 0 {resources/lang => lang}/zh-CN/pagination.php | 0 {resources/lang => lang}/zh-CN/passwords.php | 0 .../lang => lang}/zh-CN/preferences.php | 0 {resources/lang => lang}/zh-CN/sensors.php | 0 {resources/lang => lang}/zh-CN/settings.php | 0 {resources/lang => lang}/zh-CN/syslog.php | 0 {resources/lang => lang}/zh-CN/validation.php | 0 {resources/lang => lang}/zh-CN/wireless.php | 0 {resources/lang => lang}/zh-TW.json | 0 {resources/lang => lang}/zh-TW/auth.php | 0 {resources/lang => lang}/zh-TW/commands.php | 0 {resources/lang => lang}/zh-TW/device.php | 0 {resources/lang => lang}/zh-TW/pagination.php | 0 {resources/lang => lang}/zh-TW/passwords.php | 0 {resources/lang => lang}/zh-TW/poller.php | 0 {resources/lang => lang}/zh-TW/port.php | 0 .../lang => lang}/zh-TW/preferences.php | 0 {resources/lang => lang}/zh-TW/sensors.php | 0 {resources/lang => lang}/zh-TW/settings.php | 0 {resources/lang => lang}/zh-TW/smokeping.php | 0 {resources/lang => lang}/zh-TW/syslog.php | 0 {resources/lang => lang}/zh-TW/validation.php | 0 {resources/lang => lang}/zh-TW/widgets.php | 0 {resources/lang => lang}/zh-TW/wireless.php | 0 phpstan.neon | 6 +- phpunit.xml | 14 +- routes/api.php | 20 +- routes/web.php | 78 +- server.php | 19 - tests/bootstrap.php | 4 +- 209 files changed, 2754 insertions(+), 2368 deletions(-) create mode 100644 app/Http/Middleware/ValidateSignature.php rename {resources/lang => lang}/de.json (100%) rename {resources/lang => lang}/de/auth.php (100%) rename {resources/lang => lang}/de/commands.php (100%) rename {resources/lang => lang}/de/pagination.php (100%) rename {resources/lang => lang}/de/passwords.php (100%) rename {resources/lang => lang}/de/preferences.php (100%) rename {resources/lang => lang}/de/sensors.php (100%) rename {resources/lang => lang}/de/settings.php (100%) rename {resources/lang => lang}/de/syslog.php (100%) rename {resources/lang => lang}/de/validation.php (100%) rename {resources/lang => lang}/de/wireless.php (100%) rename {resources/lang => lang}/en/auth.php (92%) rename {resources/lang => lang}/en/bgp.php (100%) rename {resources/lang => lang}/en/commands.php (100%) rename {resources/lang => lang}/en/components.php (100%) rename {resources/lang => lang}/en/device.php (100%) rename {resources/lang => lang}/en/exceptions.php (100%) rename {resources/lang => lang}/en/install.php (100%) rename {resources/lang => lang}/en/modules.php (100%) rename {resources/lang => lang}/en/pagination.php (100%) rename {resources/lang => lang}/en/passwords.php (100%) rename {resources/lang => lang}/en/plugins.php (100%) rename {resources/lang => lang}/en/poller.php (100%) rename {resources/lang => lang}/en/port.php (100%) rename {resources/lang => lang}/en/preferences.php (100%) rename {resources/lang => lang}/en/sensors.php (100%) rename {resources/lang => lang}/en/settings.php (100%) rename {resources/lang => lang}/en/smokeping.php (100%) rename {resources/lang => lang}/en/stp.php (100%) rename {resources/lang => lang}/en/syslog.php (100%) rename {resources/lang => lang}/en/validation.php (90%) rename {resources/lang => lang}/en/widgets.php (100%) rename {resources/lang => lang}/en/wireless.php (100%) rename {resources/lang => lang}/fr.json (100%) rename {resources/lang => lang}/fr/auth.php (100%) rename {resources/lang => lang}/fr/commands.php (100%) rename {resources/lang => lang}/fr/pagination.php (100%) rename {resources/lang => lang}/fr/passwords.php (100%) rename {resources/lang => lang}/fr/preferences.php (100%) rename {resources/lang => lang}/fr/sensors.php (100%) rename {resources/lang => lang}/fr/settings.php (100%) rename {resources/lang => lang}/fr/validation.php (100%) rename {resources/lang => lang}/fr/wireless.php (100%) rename {resources/lang => lang}/it.json (100%) rename {resources/lang => lang}/it/auth.php (100%) rename {resources/lang => lang}/it/bgp.php (100%) rename {resources/lang => lang}/it/commands.php (100%) rename {resources/lang => lang}/it/components.php (100%) rename {resources/lang => lang}/it/device.php (100%) rename {resources/lang => lang}/it/exceptions.php (100%) rename {resources/lang => lang}/it/install.php (100%) rename {resources/lang => lang}/it/pagination.php (100%) rename {resources/lang => lang}/it/passwords.php (100%) rename {resources/lang => lang}/it/plugins.php (100%) rename {resources/lang => lang}/it/poller.php (100%) rename {resources/lang => lang}/it/port.php (100%) rename {resources/lang => lang}/it/preferences.php (100%) rename {resources/lang => lang}/it/sensors.php (100%) rename {resources/lang => lang}/it/settings.php (100%) rename {resources/lang => lang}/it/smokeping.php (100%) rename {resources/lang => lang}/it/stp.php (100%) rename {resources/lang => lang}/it/validation.php (100%) rename {resources/lang => lang}/it/wireless.php (100%) rename {resources/lang => lang}/ru.json (100%) rename {resources/lang => lang}/ru/auth.php (100%) rename {resources/lang => lang}/ru/commands.php (100%) rename {resources/lang => lang}/ru/pagination.php (100%) rename {resources/lang => lang}/ru/passwords.php (100%) rename {resources/lang => lang}/ru/preferences.php (100%) rename {resources/lang => lang}/ru/validation.php (100%) rename {resources/lang => lang}/sr.json (100%) rename {resources/lang => lang}/sr/auth.php (100%) rename {resources/lang => lang}/sr/components.php (100%) rename {resources/lang => lang}/sr/device.php (100%) rename {resources/lang => lang}/sr/exceptions.php (100%) rename {resources/lang => lang}/sr/pagination.php (100%) rename {resources/lang => lang}/sr/passwords.php (100%) rename {resources/lang => lang}/sr/plugins.php (100%) rename {resources/lang => lang}/sr/port.php (100%) rename {resources/lang => lang}/sr/preferences.php (100%) rename {resources/lang => lang}/sr/sensors.php (100%) rename {resources/lang => lang}/sr/widgets.php (100%) rename {resources/lang => lang}/sr/wireless.php (100%) rename {resources/lang => lang}/uk.json (100%) rename {resources/lang => lang}/uk/auth.php (100%) rename {resources/lang => lang}/uk/commands.php (100%) rename {resources/lang => lang}/uk/components.php (100%) rename {resources/lang => lang}/uk/device.php (100%) rename {resources/lang => lang}/uk/exceptions.php (100%) rename {resources/lang => lang}/uk/install.php (100%) rename {resources/lang => lang}/uk/modules.php (100%) rename {resources/lang => lang}/uk/pagination.php (100%) rename {resources/lang => lang}/uk/passwords.php (100%) rename {resources/lang => lang}/uk/plugins.php (100%) rename {resources/lang => lang}/uk/poller.php (100%) rename {resources/lang => lang}/uk/port.php (100%) rename {resources/lang => lang}/uk/preferences.php (100%) rename {resources/lang => lang}/uk/sensors.php (100%) rename {resources/lang => lang}/uk/settings.php (100%) rename {resources/lang => lang}/uk/smokeping.php (100%) rename {resources/lang => lang}/uk/stp.php (100%) rename {resources/lang => lang}/uk/syslog.php (100%) rename {resources/lang => lang}/uk/validation.php (100%) rename {resources/lang => lang}/uk/wireless.php (100%) rename {resources/lang => lang}/zh-CN.json (100%) rename {resources/lang => lang}/zh-CN/auth.php (100%) rename {resources/lang => lang}/zh-CN/commands.php (100%) rename {resources/lang => lang}/zh-CN/pagination.php (100%) rename {resources/lang => lang}/zh-CN/passwords.php (100%) rename {resources/lang => lang}/zh-CN/preferences.php (100%) rename {resources/lang => lang}/zh-CN/sensors.php (100%) rename {resources/lang => lang}/zh-CN/settings.php (100%) rename {resources/lang => lang}/zh-CN/syslog.php (100%) rename {resources/lang => lang}/zh-CN/validation.php (100%) rename {resources/lang => lang}/zh-CN/wireless.php (100%) rename {resources/lang => lang}/zh-TW.json (100%) rename {resources/lang => lang}/zh-TW/auth.php (100%) rename {resources/lang => lang}/zh-TW/commands.php (100%) rename {resources/lang => lang}/zh-TW/device.php (100%) rename {resources/lang => lang}/zh-TW/pagination.php (100%) rename {resources/lang => lang}/zh-TW/passwords.php (100%) rename {resources/lang => lang}/zh-TW/poller.php (100%) rename {resources/lang => lang}/zh-TW/port.php (100%) rename {resources/lang => lang}/zh-TW/preferences.php (100%) rename {resources/lang => lang}/zh-TW/sensors.php (100%) rename {resources/lang => lang}/zh-TW/settings.php (100%) rename {resources/lang => lang}/zh-TW/smokeping.php (100%) rename {resources/lang => lang}/zh-TW/syslog.php (100%) rename {resources/lang => lang}/zh-TW/validation.php (100%) rename {resources/lang => lang}/zh-TW/widgets.php (100%) rename {resources/lang => lang}/zh-TW/wireless.php (100%) delete mode 100644 server.php diff --git a/LibreNMS/Data/Store/Datastore.php b/LibreNMS/Data/Store/Datastore.php index 87fba8c058..0c79bd5647 100644 --- a/LibreNMS/Data/Store/Datastore.php +++ b/LibreNMS/Data/Store/Datastore.php @@ -155,7 +155,7 @@ class Datastore /** * Get the measurements for all datastores, keyed by datastore name * - * @return \Illuminate\Support\Collection<\App\Polling\Measure\MeasurementCollection> + * @return \Illuminate\Support\Collection */ public function getStats(): Collection { diff --git a/LibreNMS/Device/WirelessSensor.php b/LibreNMS/Device/WirelessSensor.php index c3ba0b687a..6471bc0c01 100644 --- a/LibreNMS/Device/WirelessSensor.php +++ b/LibreNMS/Device/WirelessSensor.php @@ -132,7 +132,7 @@ class WirelessSensor extends Sensor */ public static function getTypes($valid = false, $device_id = null) { - // Add new types here translations/descriptions/units in resources/lang//wireless.php + // Add new types here translations/descriptions/units in lang//wireless.php // FIXME I'm really bad with icons, someone please help! static $types = [ 'ap-count' => [ diff --git a/LibreNMS/Modules/Os.php b/LibreNMS/Modules/Os.php index 3b49e931dc..d911455ca5 100644 --- a/LibreNMS/Modules/Os.php +++ b/LibreNMS/Modules/Os.php @@ -92,7 +92,7 @@ class Os implements Module if (! empty($location)) { // legacy support, remove when no longer needed $deviceModel->setLocation($location); - optional($deviceModel->location)->save(); + $deviceModel->location?->save(); } } @@ -127,7 +127,7 @@ class Os implements Module $device->icon = basename(Url::findOsImage($device->os, $device->features, null, 'images/os/')); - echo trans('device.attributes.location') . ': ' . optional($device->location)->display() . PHP_EOL; + echo trans('device.attributes.location') . ': ' . $device->location?->display() . PHP_EOL; foreach (['hardware', 'version', 'features', 'serial'] as $attribute) { if (isset($device->$attribute)) { $device->$attribute = trim($device->$attribute); @@ -143,7 +143,7 @@ class Os implements Module $device = $os->getDevice(); $new_location = $device->override_sysLocation ? new Location() : $os->fetchLocation(); // fetch location data from device $device->setLocation($new_location, true); // set location and lookup coordinates if needed - optional($device->location)->save(); + $device->location?->save(); } private function sysContact(\LibreNMS\OS $os): void diff --git a/LibreNMS/ObjectCache.php b/LibreNMS/ObjectCache.php index 8480dfb773..6c1465f60e 100644 --- a/LibreNMS/ObjectCache.php +++ b/LibreNMS/ObjectCache.php @@ -88,24 +88,23 @@ class ObjectCache implements ArrayAccess * Get Data-Object * * @param mixed $obj Name of Data-Object - * @return mixed */ - #[\ReturnTypeWillChange] - public function offsetGet($obj) + public function offsetGet($obj): mixed { - if (isset($this->data[$obj])) { - if (isset($this->data[$obj]['value'])) { - return $this->data[$obj]['value']; - } elseif (isset($GLOBALS['_ObjCache'][$this->obj][$obj]['value'])) { - return $GLOBALS['_ObjCache'][$this->obj][$obj]['value']; - } else { - $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = dbFetchRows($this->data[$obj]['query'], isset($this->data[$obj]['params']) ? $this->data[$obj]['params'] : []); - if (sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value']) == 1 && sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]) == 1) { - $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = current($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]); - } - - return $GLOBALS['_ObjCache'][$this->obj][$obj]['value']; + if (! isset($this->data[$obj])) { + return null; + } + if (isset($this->data[$obj]['value'])) { + return $this->data[$obj]['value']; + } elseif (isset($GLOBALS['_ObjCache'][$this->obj][$obj]['value'])) { + return $GLOBALS['_ObjCache'][$this->obj][$obj]['value']; + } else { + $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = dbFetchRows($this->data[$obj]['query'], isset($this->data[$obj]['params']) ? $this->data[$obj]['params'] : []); + if (sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value']) == 1 && sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]) == 1) { + $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = current($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]); } + + return $GLOBALS['_ObjCache'][$this->obj][$obj]['value']; } } diff --git a/LibreNMS/Util/CiHelper.php b/LibreNMS/Util/CiHelper.php index bbc214aa1c..f0722639da 100644 --- a/LibreNMS/Util/CiHelper.php +++ b/LibreNMS/Util/CiHelper.php @@ -178,7 +178,7 @@ class CiHelper */ public function checkUnit() { - $phpunit_cmd = [$this->checkPhpExec('phpunit'), '--colors=always']; + $phpunit_cmd = [$this->checkPhpExec('phpunit'), '--colors=always', '--debug']; if ($this->flags['fail-fast']) { array_push($phpunit_cmd, '--stop-on-error', '--stop-on-failure'); @@ -391,10 +391,18 @@ class CiHelper $proc->setTimeout(7200)->setIdleTimeout(3600); if (! ($silence || $quiet)) { echo PHP_EOL; - $proc->setTty(Process::isTtySupported()); - } - $proc->run(); + if (Process::isTtySupported()) { + $proc->setTty(true); + $proc->run(); + } else { + $proc->run(function ($type, $buffer) { + echo $buffer; + }); + } + } else { + $proc->run(); + } $duration = sprintf('%.2fs', microtime(true) - $start); if ($proc->getExitCode() > 0) { diff --git a/LibreNMS/Util/DynamicConfigItem.php b/LibreNMS/Util/DynamicConfigItem.php index 133c0be3d4..132b38763c 100644 --- a/LibreNMS/Util/DynamicConfigItem.php +++ b/LibreNMS/Util/DynamicConfigItem.php @@ -225,7 +225,7 @@ class DynamicConfigItem implements \ArrayAccess } #[\ReturnTypeWillChange] - public function offsetGet($offset) + public function offsetGet($offset): mixed { return isset($this->$offset) ? $this->$offset : null; } diff --git a/LibreNMS/Util/Url.php b/LibreNMS/Util/Url.php index 49a498f186..1ceb882740 100644 --- a/LibreNMS/Util/Url.php +++ b/LibreNMS/Util/Url.php @@ -141,7 +141,7 @@ class Url $text = $label; } - $content = '
' . addslashes(htmlentities(optional($port->device)->displayName() . ' - ' . $label)) . '
'; + $content = '
' . addslashes(htmlentities($port->device?->displayName() . ' - ' . $label)) . '
'; if ($description = $port->getDescription()) { $content .= addslashes(htmlentities($description)) . '
'; } diff --git a/app/Console/Commands/DeviceAdd.php b/app/Console/Commands/DeviceAdd.php index b86692c19f..2571ff39e1 100644 --- a/app/Console/Commands/DeviceAdd.php +++ b/app/Console/Commands/DeviceAdd.php @@ -65,11 +65,11 @@ class DeviceAdd extends LnmsCommand $this->addOption('port', 'r', InputOption::VALUE_REQUIRED); $this->addOption('transport', 't', InputOption::VALUE_REQUIRED); $this->addOption('display-name', 'd', InputOption::VALUE_REQUIRED); - $this->addOption('security-name', 'u', InputOption::VALUE_REQUIRED, null, 'root'); + $this->addOption('security-name', 'u', InputOption::VALUE_REQUIRED, '', 'root'); $this->addOption('auth-password', 'A', InputOption::VALUE_REQUIRED); - $this->addOption('auth-protocol', 'a', InputOption::VALUE_REQUIRED, null, 'MD5'); + $this->addOption('auth-protocol', 'a', InputOption::VALUE_REQUIRED, '', 'MD5'); $this->addOption('privacy-password', 'X', InputOption::VALUE_REQUIRED); - $this->addOption('privacy-protocol', 'x', InputOption::VALUE_REQUIRED, null, 'AES'); + $this->addOption('privacy-protocol', 'x', InputOption::VALUE_REQUIRED, '', 'AES'); $this->addOption('force', 'f', InputOption::VALUE_NONE); $this->addOption('ping-fallback', 'b', InputOption::VALUE_NONE); $this->addOption('poller-group', 'g', InputOption::VALUE_REQUIRED); diff --git a/app/Console/DynamicInputOption.php b/app/Console/DynamicInputOption.php index f4fa6c6cc1..84fc43b12c 100644 --- a/app/Console/DynamicInputOption.php +++ b/app/Console/DynamicInputOption.php @@ -42,7 +42,7 @@ class DynamicInputOption extends InputOption parent::__construct($name, $shortcut, $mode, $description, $default); } - public function getDescription() + public function getDescription(): string { $description = parent::getDescription(); @@ -53,7 +53,7 @@ class DynamicInputOption extends InputOption return $description; } - public function getDefault() + public function getDefault(): array|string|int|float|bool|null { if (is_callable($this->defaultCallable)) { return call_user_func($this->defaultCallable); diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 4c195b92d3..835afc6f4b 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -9,15 +9,6 @@ use LibreNMS\Util\Version; class Kernel extends ConsoleKernel { - /** - * The Artisan commands provided by your application. - * - * @var array - */ - protected $commands = [ - // - ]; - /** * Define the application's command schedule. * diff --git a/app/Console/LnmsCommand.php b/app/Console/LnmsCommand.php index 62d4970e57..8396815ca6 100644 --- a/app/Console/LnmsCommand.php +++ b/app/Console/LnmsCommand.php @@ -71,10 +71,10 @@ abstract class LnmsCommand extends Command * * @throws InvalidArgumentException When argument mode is not valid */ - public function addArgument($name, $mode = null, $description = null, $default = null) + public function addArgument(string $name, ?int $mode = null, string $description = '', mixed $default = null): static { // use a generated translation location by default - if (is_null($description)) { + if (empty($description)) { $description = __('commands.' . $this->getName() . '.arguments.' . $name); } @@ -96,10 +96,10 @@ abstract class LnmsCommand extends Command * * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function addOption($name, $shortcut = null, $mode = null, $description = null, $default = null) + public function addOption(string $name, array|string|null $shortcut = null, ?int $mode = null, string $description = '', mixed $default = null): static { // use a generated translation location by default - if (is_null($description)) { + if (empty($description)) { $description = __('commands.' . $this->getName() . '.options.' . $name); } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 3ae269c7c1..2f73423f57 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -9,8 +9,6 @@ class Handler extends ExceptionHandler { /** * A list of the exception types that are not reported. - * - * @var array */ protected $dontReport = [ \Illuminate\Auth\AuthenticationException::class, @@ -50,7 +48,7 @@ class Handler extends ExceptionHandler // try to upgrade generic exceptions to more specific ones if (! config('app.debug')) { - if ($exception instanceof \Illuminate\View\ViewException || $exception instanceof \Facade\Ignition\Exceptions\ViewException) { + if ($exception instanceof \Illuminate\View\ViewException || $exception instanceof \Spatie\LaravelIgnition\Exceptions\ViewException) { $base = $exception->getPrevious(); // get real exception } diff --git a/app/Http/Controllers/Ajax/DeviceSearchController.php b/app/Http/Controllers/Ajax/DeviceSearchController.php index 667bb001c3..2a5095f74a 100644 --- a/app/Http/Controllers/Ajax/DeviceSearchController.php +++ b/app/Http/Controllers/Ajax/DeviceSearchController.php @@ -57,20 +57,20 @@ class DeviceSearchController extends SearchController $baseQuery->leftJoin('ports', 'ports.device_id', '=', 'devices.device_id') ->leftJoin('ipv4_addresses', 'ipv4_addresses.port_id', 'ports.port_id'); - $query->orWhere('ipv4_address', '=', $search) + $query->orWhere('ipv4_addresses.ipv4_address', '=', $search) ->orWhere('overwrite_ip', '=', $search) ->orWhere('ip', '=', inet_pton($search)); } elseif (\LibreNMS\Util\IPv6::isValid($search, false)) { $baseQuery->leftJoin('ports', 'ports.device_id', '=', 'devices.device_id') ->leftJoin('ipv6_addresses', 'ipv6_addresses.port_id', 'ports.port_id'); - $query->orWhere('ipv6_address', '=', $search) + $query->orWhere('ipv6_addresses.ipv6_address', '=', $search) ->orWhere('overwrite_ip', '=', $search) ->orWhere('ip', '=', inet_pton($search)); } elseif (ctype_xdigit($mac_search = str_replace([':', '-', '.'], '', $search))) { $baseQuery->leftJoin('ports', 'ports.device_id', '=', 'devices.device_id'); - $query->orWhere('ifPhysAddress', 'LIKE', "%$mac_search%"); + $query->orWhere('ports.ifPhysAddress', 'LIKE', "%$mac_search%"); } return $query; diff --git a/app/Http/Controllers/Ajax/RipeNccApiController.php b/app/Http/Controllers/Ajax/RipeNccApiController.php index 2275b9244e..e05d71fc85 100644 --- a/app/Http/Controllers/Ajax/RipeNccApiController.php +++ b/app/Http/Controllers/Ajax/RipeNccApiController.php @@ -57,7 +57,9 @@ class RipeNccApiController extends Controller if (isset($response['messages'])) { $message .= ': ' . collect($response['messages']) ->flatten() - ->reject('error') + ->reject(function ($value, $key) { + return $value != 'error'; + }) ->implode(', '); } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 2e3381519e..cdabe6d879 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -65,7 +65,7 @@ class RegisterController extends Controller protected function create(array $data) { return User::create([ - 'name' => $data['name'], + 'realname' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); diff --git a/app/Http/Controllers/Install/InstallationController.php b/app/Http/Controllers/Install/InstallationController.php index 73696e4cd7..64a87ce78e 100644 --- a/app/Http/Controllers/Install/InstallationController.php +++ b/app/Http/Controllers/Install/InstallationController.php @@ -126,7 +126,7 @@ class InstallationController extends Controller $db['port'] ?? 3306, $db['socket'] ?? null ); - config(['database.default', $this->connection]); + config('database.default', $this->connection); } } diff --git a/app/Http/Controllers/Table/PortsController.php b/app/Http/Controllers/Table/PortsController.php index d9732e2f53..266677fd61 100644 --- a/app/Http/Controllers/Table/PortsController.php +++ b/app/Http/Controllers/Table/PortsController.php @@ -107,8 +107,8 @@ class PortsController extends TableController ->where('deleted', $request->get('deleted', 0)) // always filter deleted ->when($request->get('hostname'), function (Builder $query, $hostname) { $query->where(function (Builder $query) use ($hostname) { - $query->where('hostname', 'like', "%$hostname%") - ->orWhere('sysName', 'like', "%$hostname%"); + $query->where('devices.hostname', 'like', "%$hostname%") + ->orWhere('devices.sysName', 'like', "%$hostname%"); }); }) ->when($request->get('ifAlias'), function (Builder $query, $ifAlias) { @@ -160,7 +160,7 @@ class PortsController extends TableController 'status' => $status, 'device' => Url::deviceLink($port->device), 'port' => Url::portLink($port), - 'secondsIfLastChange' => ceil(optional($port->device)->uptime - ($port->ifLastChange / 100)), + 'secondsIfLastChange' => ceil($port->device?->uptime - ($port->ifLastChange / 100)), 'ifConnectorPresent' => ($port->ifConnectorPresent == 'true') ? 'yes' : 'no', 'ifSpeed' => $port->ifSpeed, 'ifMtu' => $port->ifMtu, diff --git a/app/Http/Controllers/Widgets/TopErrorsController.php b/app/Http/Controllers/Widgets/TopErrorsController.php index bf236011be..fd178820f0 100644 --- a/app/Http/Controllers/Widgets/TopErrorsController.php +++ b/app/Http/Controllers/Widgets/TopErrorsController.php @@ -61,7 +61,7 @@ class TopErrorsController extends WidgetController ->where(function ($query) { return $query ->where('ifInErrors_rate', '>', 0) - ->orwhere('ifOutErrors_rate', '>', 0); + ->orWhere('ifOutErrors_rate', '>', 0); }) ->isUp() ->when($data['device_group'], function ($query) use ($data) { diff --git a/app/Http/Middleware/HandleCors.php b/app/Http/Middleware/HandleCors.php index dba9ce4f74..c84742c111 100644 --- a/app/Http/Middleware/HandleCors.php +++ b/app/Http/Middleware/HandleCors.php @@ -25,11 +25,11 @@ namespace App\Http\Middleware; -use Asm89\Stack\CorsService; +use Fruitcake\Cors\CorsService; use Illuminate\Contracts\Container\Container; use Illuminate\Support\Arr; -class HandleCors extends \Fruitcake\Cors\HandleCors +class HandleCors extends \Illuminate\Http\Middleware\HandleCors { private $map = [ 'allowmethods' => 'allowed_methods', @@ -38,7 +38,7 @@ class HandleCors extends \Fruitcake\Cors\HandleCors 'exposeheaders' => 'exposed_headers', ]; - public function __construct(Container $container) + public function __construct(Container $container, CorsService $cors) { // load legacy config settings before booting the CorsService if (\LibreNMS\Config::get('api.cors.enabled')) { @@ -58,7 +58,6 @@ class HandleCors extends \Fruitcake\Cors\HandleCors $container['config']->set('cors', $laravel_config); } - $cors = $container->make(CorsService::class); - parent::__construct($cors, $container); + parent::__construct($container, $cors); } } diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php index a8a252df4c..88cadcaaf2 100644 --- a/app/Http/Middleware/TrimStrings.php +++ b/app/Http/Middleware/TrimStrings.php @@ -9,7 +9,7 @@ class TrimStrings extends Middleware /** * The names of the attributes that should not be trimmed. * - * @var array + * @var array */ protected $except = [ 'current_password', diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000000..093bf64af8 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/app/Http/Requests/TwoFactorManagementRequest.php b/app/Http/Requests/TwoFactorManagementRequest.php index 126c25ba37..585b0037bc 100644 --- a/app/Http/Requests/TwoFactorManagementRequest.php +++ b/app/Http/Requests/TwoFactorManagementRequest.php @@ -40,6 +40,6 @@ class TwoFactorManagementRequest extends FormRequest $auth_user = auth()->user(); // don't allow admins to bypass security for themselves - return $auth_user->isAdmin() && ! $user->is($auth_user); + return $auth_user->isAdmin() && ! $auth_user->is($user); } } diff --git a/app/Logging/Reporting/Middleware/AddGitInformation.php b/app/Logging/Reporting/Middleware/AddGitInformation.php index 3802f62fe5..6b36de4edc 100644 --- a/app/Logging/Reporting/Middleware/AddGitInformation.php +++ b/app/Logging/Reporting/Middleware/AddGitInformation.php @@ -25,13 +25,13 @@ namespace App\Logging\Reporting\Middleware; -use Facade\FlareClient\Report; use LibreNMS\Util\Git; +use Spatie\FlareClient\Report; -class AddGitInformation +class AddGitInformation implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware { /** - * @param \Facade\FlareClient\Report $report + * @param \Spatie\FlareClient\Report $report * @param callable $next next in the pipeline * @return mixed */ diff --git a/app/Logging/Reporting/Middleware/CleanContext.php b/app/Logging/Reporting/Middleware/CleanContext.php index c227640dc3..2b16c882f1 100644 --- a/app/Logging/Reporting/Middleware/CleanContext.php +++ b/app/Logging/Reporting/Middleware/CleanContext.php @@ -25,14 +25,14 @@ namespace App\Logging\Reporting\Middleware; -use Facade\FlareClient\Report; +use Spatie\FlareClient\Report; -class CleanContext +class CleanContext implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware { /** * Middleware to remove sensitive data from the context. * - * @param \Facade\FlareClient\Report $report + * @param \Spatie\FlareClient\Report $report * @param callable $next * @return mixed */ diff --git a/app/Logging/Reporting/Middleware/SetGroups.php b/app/Logging/Reporting/Middleware/SetGroups.php index 02442e0bd0..0cf5228a28 100644 --- a/app/Logging/Reporting/Middleware/SetGroups.php +++ b/app/Logging/Reporting/Middleware/SetGroups.php @@ -25,15 +25,15 @@ namespace App\Logging\Reporting\Middleware; -use Facade\FlareClient\Report; use LibreNMS\Util\Version; +use Spatie\FlareClient\Report; -class SetGroups +class SetGroups implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware { /** * Middleware to set LibreNMS and Tools grouping data * - * @param \Facade\FlareClient\Report $report + * @param \Spatie\FlareClient\Report $report * @param callable $next * @return mixed */ diff --git a/app/Logging/Reporting/Middleware/SetInstanceId.php b/app/Logging/Reporting/Middleware/SetInstanceId.php index af87b9fedc..1346af9c67 100644 --- a/app/Logging/Reporting/Middleware/SetInstanceId.php +++ b/app/Logging/Reporting/Middleware/SetInstanceId.php @@ -23,14 +23,14 @@ namespace App\Logging\Reporting\Middleware; use App\Providers\ErrorReportingProvider; -use Facade\FlareClient\Report; +use Spatie\FlareClient\Report; -class SetInstanceId +class SetInstanceId implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware { /** * Middleware to add instance ID, piggybacks on the "user id" feature. * - * @param \Facade\FlareClient\Report $report + * @param \Spatie\FlareClient\Report $report * @param callable $next * @return mixed */ diff --git a/app/Models/AlertTemplate.php b/app/Models/AlertTemplate.php index 62fa192a4b..308fac4e0e 100644 --- a/app/Models/AlertTemplate.php +++ b/app/Models/AlertTemplate.php @@ -25,6 +25,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasManyThrough; class AlertTemplate extends BaseModel @@ -33,7 +34,7 @@ class AlertTemplate extends BaseModel // ---- Define Relationships ---- - public function map() + public function map(): HasMany { return $this->hasMany(\App\Models\AlertTemplateMap::class, 'alert_templates_id', 'id'); } diff --git a/app/Models/AuthLog.php b/app/Models/AuthLog.php index 100191a295..856473f000 100644 --- a/app/Models/AuthLog.php +++ b/app/Models/AuthLog.php @@ -31,5 +31,7 @@ class AuthLog extends Model { public $timestamps = false; protected $table = 'authlog'; - protected $dates = ['datetime']; + protected $casts = [ + 'datetime' => 'datetime', + ]; } diff --git a/app/Models/Device.php b/app/Models/Device.php index 38d9ea5c5b..f7089e5992 100644 --- a/app/Models/Device.php +++ b/app/Models/Device.php @@ -413,7 +413,7 @@ class Device extends BaseModel return; } - if (! $this->relationLoaded('location') || optional($this->location)->location !== $new_location->location) { + if (! $this->relationLoaded('location') || $this->location?->location !== $new_location->location) { if (! $new_location->exists) { // don't fetch if new location persisted to the DB, just use it $new_location = Location::firstOrCreate(['location' => $new_location->location], $coord); } diff --git a/app/Models/Port.php b/app/Models/Port.php index 4b45342da0..0ef91ea5c1 100644 --- a/app/Models/Port.php +++ b/app/Models/Port.php @@ -49,7 +49,7 @@ class Port extends DeviceRelatedModel DB::table('links')->where('local_port_id', $port->port_id)->orWhere('remote_port_id', $port->port_id)->delete(); DB::table('ports_stack')->where('port_id_low', $port->port_id)->orWhere('port_id_high', $port->port_id)->delete(); - \Rrd::purge(optional($port->device)->hostname, \Rrd::portName($port->port_id)); // purge all port rrd files + \Rrd::purge($port->device?->hostname, \Rrd::portName($port->port_id)); // purge all port rrd files }); } @@ -62,7 +62,7 @@ class Port extends DeviceRelatedModel */ public function getLabel() { - $os = optional($this->device)->os; + $os = $this->device?->os; if (\LibreNMS\Config::getOsSetting($os, 'ifname')) { $label = $this->ifName; diff --git a/app/Models/ServiceTemplate.php b/app/Models/ServiceTemplate.php index e3e7327da3..3871c18478 100644 --- a/app/Models/ServiceTemplate.php +++ b/app/Models/ServiceTemplate.php @@ -162,7 +162,7 @@ class ServiceTemplate extends BaseModel } $template_ids = static::query() - ->with(['device_groups' => function ($query) { + ->with(['groups' => function ($query) { $query->select('device_groups.id'); }]) ->get() diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index ef6ef7d124..ffc8ffde44 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -12,7 +12,7 @@ class AuthServiceProvider extends ServiceProvider /** * The policy mappings for the application. * - * @var array + * @var array */ protected $policies = [ \App\Models\User::class => \App\Policies\UserPolicy::class, diff --git a/app/Providers/ErrorReportingProvider.php b/app/Providers/ErrorReportingProvider.php index 2c79a25c5c..e5a69a0065 100644 --- a/app/Providers/ErrorReportingProvider.php +++ b/app/Providers/ErrorReportingProvider.php @@ -31,14 +31,14 @@ use App\Logging\Reporting\Middleware\SetGroups; use App\Logging\Reporting\Middleware\SetInstanceId; use App\Models\Callback; use ErrorException; -use Facade\FlareClient\Report; -use Facade\Ignition\Facades\Flare; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; use LibreNMS\Config; use LibreNMS\Util\Git; +use Spatie\FlareClient\Report; +use Spatie\LaravelIgnition\Facades\Flare; -class ErrorReportingProvider extends \Facade\Ignition\IgnitionServiceProvider +class ErrorReportingProvider extends \Spatie\LaravelIgnition\IgnitionServiceProvider { /** @var int */ protected $errorReportingLevel = E_ALL & ~E_NOTICE; @@ -52,7 +52,7 @@ class ErrorReportingProvider extends \Facade\Ignition\IgnitionServiceProvider public function boot(): void { /* @phpstan-ignore-next-line */ - if (! method_exists(\Facade\FlareClient\Flare::class, 'filterReportsUsing')) { + if (! method_exists(\Spatie\FlareClient\Flare::class, 'filterReportsUsing')) { Log::debug("Flare client too old, disabling Ignition to avoid bug.\n"); return; diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index ddbd3ad5b5..2ea91fd653 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -44,4 +44,14 @@ class EventServiceProvider extends ServiceProvider { // } + + /** + * Determine if events and listeners should be automatically discovered. + * + * @return bool + */ + public function shouldDiscoverEvents() + { + return false; + } } diff --git a/composer.json b/composer.json index 1a9ded74c1..0d5c3814cc 100644 --- a/composer.json +++ b/composer.json @@ -27,49 +27,49 @@ "ext-zlib": "*", "amenadiel/jpgraph": "^4", "clue/socket-raw": "^1.4", - "dapphp/radius": "^2.0", - "doctrine/dbal": "^2.11", + "dapphp/radius": "^3.0", + "doctrine/dbal": "^2.13", "easybook/geshi": "^1.0.8", "ezyang/htmlpurifier": "^4.8", - "facade/ignition": "^2.17.6", "fico7489/laravel-pivot": "^3.0", - "fruitcake/laravel-cors": "^2.0", - "guzzlehttp/guzzle": "^7.0.1", - "influxdb/influxdb-php": "^1.14", + "guzzlehttp/guzzle": "^7.2", + "influxdb/influxdb-php": "^1.15", "justinrainbow/json-schema": "^5.2", "laravel-notification-channels/webpush": "^7.0", - "laravel/framework": "^8.12", - "laravel/tinker": "^2.5", - "laravel/ui": "^3.0", + "laravel/framework": "^9.36", + "laravel/tinker": "^2.7", + "laravel/ui": "^4.0", "librenms/laravel-vue-i18n-generator": "^0.1.46", "mews/purifier": "^3.3", - "nunomaduro/laravel-console-summary": "^1.7", + "nunomaduro/laravel-console-summary": "^1.8", "pear/console_color2": "^0.1", "pear/console_table": "^1.3", "pear/net_dns2": "^1.5", - "php-amqplib/php-amqplib": "^3.0", + "php-amqplib/php-amqplib": "^3.1", "php-flasher/flasher-laravel": "^0.9", "phpmailer/phpmailer": "~6.0", - "predis/predis": "^1.1", + "predis/predis": "^2.0", "socialiteproviders/manager": "^4.1", - "symfony/yaml": "^4.0", + "spatie/laravel-ignition": "^1.4", + "symfony/yaml": "^6.0", "tecnickcom/tcpdf": "^6.4", "tightenco/ziggy": "^0.9" }, "require-dev": { - "barryvdh/laravel-debugbar": "^3.5", - "barryvdh/laravel-ide-helper": "^2.8", + "barryvdh/laravel-debugbar": "^3.6", + "barryvdh/laravel-ide-helper": "^2.12", + "composer/composer": "^2.4", "fakerphp/faker": "^1.9.1", "friendsofphp/php-cs-fixer": "^v3.4", - "laravel/dusk": "^6.15", - "mockery/mockery": "^1.4.2", - "nunomaduro/collision": "^5.0", - "nunomaduro/larastan": "^1.0", + "laravel/dusk": "^7.1", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^6.3", + "nunomaduro/larastan": "^2.0", "php-parallel-lint/php-parallel-lint": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-mockery": "^1.0", - "phpunit/phpunit": "^9.3.3", - "staudenmeir/dusk-updater": "^1.1" + "phpunit/phpunit": "^9.5.10", + "staudenmeir/dusk-updater": "^1.2" }, "suggest": { "ext-gmp": "Used for browser push notifications", diff --git a/composer.lock b/composer.lock index ea71324aa4..273f136517 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8c8fa4fe38104c003d4e5d49af9e74d7", + "content-hash": "9921ea55b62f77f05208738b5b783b31", "packages": [ { "name": "amenadiel/jpgraph", @@ -78,62 +78,6 @@ }, "time": "2021-04-27T19:09:11+00:00" }, - { - "name": "asm89/stack-cors", - "version": "v2.1.1", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", - "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "symfony/http-foundation": "^4|^5|^6", - "symfony/http-kernel": "^4|^5|^6" - }, - "require-dev": { - "phpunit/phpunit": "^7|^9", - "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": "brick/math", "version": "0.10.2", @@ -261,23 +205,23 @@ }, { "name": "dapphp/radius", - "version": "2.5.8", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/dapphp/radius.git", - "reference": "7b2533f9b89b134cb92b6a260cc2e54b347390f9" + "reference": "023f538e46d20fa285f55dd65d7054fb9b370a82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dapphp/radius/zipball/7b2533f9b89b134cb92b6a260cc2e54b347390f9", - "reference": "7b2533f9b89b134cb92b6a260cc2e54b347390f9", + "url": "https://api.github.com/repos/dapphp/radius/zipball/023f538e46d20fa285f55dd65d7054fb9b370a82", + "reference": "023f538e46d20fa285f55dd65d7054fb9b370a82", "shasum": "" }, "require": { - "php": ">=5.3 || <= 7.4" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8" + "phpunit/phpunit": "^9.5.13" }, "suggest": { "ext-openssl": "To support hashing required by Pear_CHAP" @@ -324,9 +268,9 @@ ], "support": { "issues": "https://github.com/dapphp/radius/issues", - "source": "https://github.com/dapphp/radius/tree/2.5.8" + "source": "https://github.com/dapphp/radius/tree/v3.0.0" }, - "time": "2022-01-26T03:55:41+00:00" + "time": "2022-01-26T04:33:16+00:00" }, { "name": "dflydev/dot-access-data", @@ -833,31 +777,32 @@ }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "84a527db05647743d50373e0ec53a152f2cde568" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", + "reference": "84a527db05647743d50373e0ec53a152f2cde568", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -889,7 +834,7 @@ ], "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/3.0.0" }, "funding": [ { @@ -905,7 +850,7 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-12-15T16:57:16+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1019,27 +964,26 @@ }, { "name": "egulias/email-validator", - "version": "2.1.25", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^4.30" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1047,7 +991,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -1075,7 +1019,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/4.0.1" }, "funding": [ { @@ -1083,7 +1027,7 @@ "type": "github" } ], - "time": "2020-12-29T14:50:06+00:00" + "time": "2023-01-14T14:17:03+00:00" }, { "name": "ezyang/htmlpurifier", @@ -1146,202 +1090,6 @@ }, "time": "2022-09-18T07:06:19+00:00" }, - { - "name": "facade/flare-client-php", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/213fa2c69e120bca4c51ba3e82ed1834ef3f41b8", - "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8", - "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", - "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.10.0" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2022-08-09T11:23:57+00:00" - }, - { - "name": "facade/ignition", - "version": "2.17.7", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition.git", - "reference": "b4f5955825bb4b74cba0f94001761c46335c33e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/b4f5955825bb4b74cba0f94001761c46335c33e9", - "reference": "b4f5955825bb4b74cba0f94001761c46335c33e9", - "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": "2023-01-26T12:34: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" - }, { "name": "fico7489/laravel-pivot", "version": "3.0.11", @@ -1397,40 +1145,32 @@ "time": "2023-03-15T19:22:35+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": { @@ -1448,20 +1188,20 @@ "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", + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", "keywords": [ - "api", "cors", - "crossdomain", - "laravel" + "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": [ { @@ -1473,8 +1213,7 @@ "type": "github" } ], - "abandoned": true, - "time": "2022-02-23T14:25:13+00:00" + "time": "2022-02-20T15:07:15+00:00" }, { "name": "graham-campbell/result-type", @@ -1869,6 +1608,90 @@ ], "time": "2023-03-09T13:19:02+00:00" }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2", + "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2021-10-07T12:57:01+00:00" + }, { "name": "influxdb/influxdb-php", "version": "1.15.2", @@ -2066,56 +1889,64 @@ }, { "name": "laravel/framework", - "version": "v8.83.27", + "version": "v9.52.5", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49" + "reference": "e14d28c0f9403630d13f308bb43f3d3cb73d6d67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", - "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", + "url": "https://api.github.com/repos/laravel/framework/zipball/e14d28c0f9403630d13f308bb43f3d3cb73d6d67", + "reference": "e14d28c0f9403630d13f308bb43f3d3cb73d6d67", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", + "brick/math": "^0.9.3|^0.10.2|^0.11", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", "ext-mbstring": "*", "ext-openssl": "*", - "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", - "league/flysystem": "^1.1", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "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", @@ -2123,6 +1954,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", @@ -2151,53 +1983,68 @@ "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", + "ext-gmp": "*", + "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/phpdoc-parser": "^1.15", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^9.5.8", + "predis/predis": "^1.1.9|^2.0.2", + "symfony/cache": "^6.0", + "symfony/http-client": "^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.", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", - "ext-pcntl": "Required to use all features of the queue worker.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", "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": { @@ -2211,7 +2058,8 @@ "Illuminate\\": "src/Illuminate/", "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" ] } }, @@ -2235,7 +2083,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-12-08T15:28:55+00:00" + "time": "2023-03-28T18:03:54+00:00" }, { "name": "laravel/serializable-closure", @@ -2436,32 +2284,33 @@ }, { "name": "laravel/ui", - "version": "v3.4.6", + "version": "v4.2.1", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c" + "reference": "05ff7ac1eb55e2dfd10edcfb18c953684d693907" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/65ec5c03f7fee2c8ecae785795b829a15be48c2c", - "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c", + "url": "https://api.github.com/repos/laravel/ui/zipball/05ff7ac1eb55e2dfd10edcfb18c953684d693907", + "reference": "05ff7ac1eb55e2dfd10edcfb18c953684d693907", "shasum": "" }, "require": { - "illuminate/console": "^8.42|^9.0", - "illuminate/filesystem": "^8.42|^9.0", - "illuminate/support": "^8.82|^9.0", - "illuminate/validation": "^8.42|^9.0", - "php": "^7.3|^8.0" + "illuminate/console": "^9.21|^10.0", + "illuminate/filesystem": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "illuminate/validation": "^9.21|^10.0", + "php": "^8.0" }, "require-dev": { - "orchestra/testbench": "^6.23|^7.0" + "orchestra/testbench": "^7.0|^8.0", + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "4.x-dev" }, "laravel": { "providers": [ @@ -2491,9 +2340,9 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v3.4.6" + "source": "https://github.com/laravel/ui/tree/v4.2.1" }, - "time": "2022-05-20T13:38:08+00:00" + "time": "2023-02-17T09:17:24+00:00" }, { "name": "league/commonmark", @@ -2685,54 +2534,49 @@ }, { "name": "league/flysystem", - "version": "1.1.10", + "version": "3.12.3", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + "reference": "81e87e74dd5213795c7846d65089712d2dda90ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/81e87e74dd5213795c7846d65089712d2dda90ce", + "reference": "81e87e74dd5213795c7846d65089712d2dda90ce", "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.220.0", + "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/", @@ -2742,40 +2586,42 @@ "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.10" + "source": "https://github.com/thephpleague/flysystem/tree/3.12.3" }, "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": "2022-10-04T09:16:37+00:00" + "time": "2023-02-18T15:32:41+00:00" }, { "name": "league/mime-type-detection", @@ -3529,22 +3375,25 @@ }, { "name": "nunomaduro/laravel-console-summary", - "version": "v1.8.0", + "version": "v1.9.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/laravel-console-summary.git", - "reference": "1b32af3f39a744223c4ed6d2a5080fc5baa037da" + "reference": "235a9de26ab2dfd0612558cedf2cbd2ad686b884" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/laravel-console-summary/zipball/1b32af3f39a744223c4ed6d2a5080fc5baa037da", - "reference": "1b32af3f39a744223c4ed6d2a5080fc5baa037da", + "url": "https://api.github.com/repos/nunomaduro/laravel-console-summary/zipball/235a9de26ab2dfd0612558cedf2cbd2ad686b884", + "reference": "235a9de26ab2dfd0612558cedf2cbd2ad686b884", "shasum": "" }, "require": { - "illuminate/console": "^7.0|^8.0|^9.0", - "illuminate/support": "^7.0|^8.0|^9.0", - "php": "^7.2.5|^8.0" + "illuminate/console": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0", + "php": "^8.1" + }, + "require-dev": { + "laravel/pint": "^1.4" }, "type": "library", "extra": { @@ -3584,41 +3433,53 @@ "issues": "https://github.com/nunomaduro/laravel-console-summary/issues", "source": "https://github.com/nunomaduro/laravel-console-summary" }, - "time": "2022-01-13T14:34:23+00:00" + "time": "2023-02-03T15:58:45+00:00" }, { - "name": "opis/closure", - "version": "3.6.3", + "name": "nunomaduro/termwind", + "version": "v1.15.1", "source": { "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", "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" + "src/Functions.php" ], "psr-4": { - "Opis\\Closure\\": "src/" + "Termwind\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3627,29 +3488,38 @@ ], "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.1" }, - "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": "2023-02-08T01:06:31+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -3932,16 +3802,16 @@ }, { "name": "php-amqplib/php-amqplib", - "version": "v3.5.2", + "version": "v3.5.3", "source": { "type": "git", "url": "https://github.com/php-amqplib/php-amqplib.git", - "reference": "703eef998946f4972e630c3e3d827f7cf020fe68" + "reference": "bccaaf8ef8bcf18b4ab41e645e92537752b887bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/703eef998946f4972e630c3e3d827f7cf020fe68", - "reference": "703eef998946f4972e630c3e3d827f7cf020fe68", + "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/bccaaf8ef8bcf18b4ab41e645e92537752b887bd", + "reference": "bccaaf8ef8bcf18b4ab41e645e92537752b887bd", "shasum": "" }, "require": { @@ -4007,9 +3877,9 @@ ], "support": { "issues": "https://github.com/php-amqplib/php-amqplib/issues", - "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.5.2" + "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.5.3" }, - "time": "2023-03-01T18:03:56+00:00" + "time": "2023-04-03T18:25:49+00:00" }, { "name": "php-flasher/flasher", @@ -4451,27 +4321,25 @@ }, { "name": "predis/predis", - "version": "v1.1.10", + "version": "v2.1.2", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e" + "reference": "a77a43913a74f9331f637bb12867eb8e274814e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", + "url": "https://api.github.com/repos/predis/predis/zipball/a77a43913a74f9331f637bb12867eb8e274814e5", + "reference": "a77a43913a74f9331f637bb12867eb8e274814e5", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis", - "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + "friendsofphp/php-cs-fixer": "^3.3", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ~9.4.4" }, "type": "library", "autoload": { @@ -4484,19 +4352,13 @@ "MIT" ], "authors": [ - { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator & Maintainer" - }, { "name": "Till Krüss", "homepage": "https://till.im", "role": "Maintainer" } ], - "description": "Flexible and feature-complete Redis client for PHP and HHVM", + "description": "A flexible and feature-complete Redis client for PHP.", "homepage": "http://github.com/predis/predis", "keywords": [ "nosql", @@ -4505,7 +4367,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v1.1.10" + "source": "https://github.com/predis/predis/tree/v2.1.2" }, "funding": [ { @@ -4513,26 +4375,31 @@ "type": "github" } ], - "time": "2022-01-05T17:46:08+00:00" + "time": "2023-03-02T18:32:04+00:00" }, { "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/" @@ -4559,9 +4426,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", @@ -4722,25 +4589,25 @@ }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -4769,22 +4636,22 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/1.1" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { @@ -4793,7 +4660,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -4819,31 +4686,31 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "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": { @@ -4858,7 +4725,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for simple caching", @@ -4870,22 +4737,22 @@ "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.14", + "version": "v0.11.15", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "8c2e264def7a8263a68ef6f0b55ce90b77d41e17" + "reference": "5350ce0ec8ecf2c5b5cf554cd2496f97b444af85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/8c2e264def7a8263a68ef6f0b55ce90b77d41e17", - "reference": "8c2e264def7a8263a68ef6f0b55ce90b77d41e17", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5350ce0ec8ecf2c5b5cf554cd2496f97b444af85", + "reference": "5350ce0ec8ecf2c5b5cf554cd2496f97b444af85", "shasum": "" }, "require": { @@ -4946,9 +4813,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.14" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.15" }, - "time": "2023-03-28T03:41:01+00:00" + "time": "2023-04-07T21:57:09+00:00" }, { "name": "ralouphie/getallheaders", @@ -5249,6 +5116,301 @@ }, "time": "2023-01-26T23:11:27+00:00" }, + { + "name": "spatie/backtrace", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/ec4dd16476b802dbdc6b4467f84032837e316b8c", + "reference": "ec4dd16476b802dbdc6b4467f84032837e316b8c", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "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": { + "source": "https://github.com/spatie/backtrace/tree/1.4.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2023-03-04T08:57:24+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.3.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "3e5dd5ac4928f3d2d036bd02de5eb83fd0ef1f42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/3e5dd5ac4928f3d2d036bd02de5eb83fd0ef1f42", + "reference": "3e5dd5ac4928f3d2d036bd02de5eb83fd0ef1f42", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.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.5" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-01-23T15:58:46+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "cc09114b7057bd217b676f047544b33f5b6247e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/cc09114b7057bd217b676f047544b33f5b6247e6", + "reference": "cc09114b7057bd217b676f047544b33f5b6247e6", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "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.4.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": "2023-02-28T16:49:47+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": "spomky-labs/base64url", "version": "v2.0.4", @@ -5424,124 +5586,45 @@ ], "time": "2023-02-13T17:21:24+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.21", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9" + "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c77433ddc6cdc689caf48065d9ea22ca0853fbd9", - "reference": "c77433ddc6cdc689caf48065d9ea22ca0853fbd9", + "url": "https://api.github.com/repos/symfony/console/zipball/3582d68a64a86ec25240aaa521ec8bc2342b369b", + "reference": "3582d68a64a86ec25240aaa521ec8bc2342b369b", "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", @@ -5576,12 +5659,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.21" + "source": "https://github.com/symfony/console/tree/v6.2.8" }, "funding": [ { @@ -5597,7 +5680,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T16:59:41+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/css-selector", @@ -5733,27 +5816,27 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.21", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549" + "reference": "61e90f94eb014054000bc902257d2763fac09166" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/56a94aa8cb5a5fbc411551d8d014a296b5456549", - "reference": "56a94aa8cb5a5fbc411551d8d014a296b5456549", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/61e90f94eb014054000bc902257d2763fac09166", + "reference": "61e90f94eb014054000bc902257d2763fac09166", "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" @@ -5784,7 +5867,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.21" + "source": "https://github.com/symfony/error-handler/tree/v6.2.7" }, "funding": [ { @@ -5800,20 +5883,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-02-14T08:44:56+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "404b307de426c1c488e5afad64403e5f145e82a5" + "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/404b307de426c1c488e5afad64403e5f145e82a5", - "reference": "404b307de426c1c488e5afad64403e5f145e82a5", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", + "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", "shasum": "" }, "require": { @@ -5867,7 +5950,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.2.7" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.8" }, "funding": [ { @@ -5883,7 +5966,7 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5966,22 +6049,23 @@ }, { "name": "symfony/finder", - "version": "v5.4.21", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19" + "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19", + "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb", + "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb", "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": { @@ -6009,7 +6093,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.21" + "source": "https://github.com/symfony/finder/tree/v6.2.7" }, "funding": [ { @@ -6025,35 +6109,37 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:33:00+00:00" + "time": "2023-02-16T09:57:23+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.21", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "3bb6ee5582366c4176d5ce596b380117c8200bbf" + "reference": "511a524affeefc191939348823ac75e9921c2112" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3bb6ee5582366c4176d5ce596b380117c8200bbf", - "reference": "3bb6ee5582366c4176d5ce596b380117c8200bbf", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/511a524affeefc191939348823ac75e9921c2112", + "reference": "511a524affeefc191939348823ac75e9921c2112", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "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/cache": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^5.4|^6.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { @@ -6085,7 +6171,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.21" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.8" }, "funding": [ { @@ -6101,68 +6187,67 @@ "type": "tidelift" } ], - "time": "2023-02-17T21:35:35+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.21", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "09c19fc7e4218fbcf73fe0330eea38d66064b775" + "reference": "9563229e56076070d92ca30c089e801e8a4629a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/09c19fc7e4218fbcf73fe0330eea38d66064b775", - "reference": "09c19fc7e4218fbcf73fe0330eea38d66064b775", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9563229e56076070d92ca30c089e801e8a4629a3", + "reference": "9563229e56076070d92ca30c089e801e8a4629a3", "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/error-handler": "^6.1", + "symfony/event-dispatcher": "^5.4|^6.0", "symfony/http-foundation": "^5.4.21|^6.2.7", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" + "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": { @@ -6197,7 +6282,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.21" + "source": "https://github.com/symfony/http-kernel/tree/v6.2.8" }, "funding": [ { @@ -6213,43 +6298,121 @@ "type": "tidelift" } ], - "time": "2023-02-28T13:19:09+00:00" + "time": "2023-03-31T12:00:10+00:00" }, { - "name": "symfony/mime", - "version": "v5.4.21", + "name": "symfony/mailer", + "version": "v6.2.8", "source": { "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "ef57d9fb9cdd5e6b2ffc567d109865d10b6920cd" + "url": "https://github.com/symfony/mailer.git", + "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ef57d9fb9cdd5e6b2ffc567d109865d10b6920cd", - "reference": "ef57d9fb9cdd5e6b2ffc567d109865d10b6920cd", + "url": "https://api.github.com/repos/symfony/mailer/zipball/bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", + "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "egulias/email-validator": "^2.1.10|^3|^4", + "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": "^5.4|^6.0", + "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.8" + }, + "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": "2023-03-14T15:00:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.2.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "62e341f80699badb0ad70b31149c8df89a2d778e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/62e341f80699badb0ad70b31149c8df89a2d778e", + "reference": "62e341f80699badb0ad70b31149c8df89a2d778e", + "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/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "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.4.14|~6.0.14|^6.1.6" + "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": { @@ -6281,7 +6444,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.21" + "source": "https://github.com/symfony/mime/tree/v6.2.7" }, "funding": [ { @@ -6297,7 +6460,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T19:46:44+00:00" + "time": "2023-02-24T10:42:00+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6381,89 +6544,6 @@ ], "time": "2022-11-03T14:55:06+00:00" }, - { - "name": "symfony/polyfill-iconv", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "927013f3aac555983a5059aada98e1907d842695" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", - "reference": "927013f3aac555983a5059aada98e1907d842695", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-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", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.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-11-03T14:55:06+00:00" - }, { "name": "symfony/polyfill-intl-grapheme", "version": "v1.27.0", @@ -6875,85 +6955,6 @@ ], "time": "2022-11-03T14:55:06+00:00" }, - { - "name": "symfony/polyfill-php73", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-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.27.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-11-03T14:55:06+00:00" - }, { "name": "symfony/polyfill-php80", "version": "v1.27.0", @@ -7038,22 +7039,103 @@ "time": "2022-11-03T14:55:06+00:00" }, { - "name": "symfony/process", - "version": "v5.4.21", + "name": "symfony/polyfill-uuid", + "version": "v1.27.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd" + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd", - "reference": "d4ce417ebcb0b7d090b4c178ed6d3accc518e8bd", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166", + "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.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-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v6.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "75ed64103df4f6615e15a7fe38b8111099f47416" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/75ed64103df4f6615e15a7fe38b8111099f47416", + "reference": "75ed64103df4f6615e15a7fe38b8111099f47416", + "shasum": "" + }, + "require": { + "php": ">=8.1" }, "type": "library", "autoload": { @@ -7081,7 +7163,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.21" + "source": "https://github.com/symfony/process/tree/v6.2.8" }, "funding": [ { @@ -7097,41 +7179,39 @@ "type": "tidelift" } ], - "time": "2023-02-21T19:46:44+00:00" + "time": "2023-03-09T16:20:02+00:00" }, { "name": "symfony/routing", - "version": "v5.4.21", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "2ea0f3049076e8ef96eab203a809d6b2332f0361" + "reference": "69062e2823f03b82265d73a966999660f0e1e404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/2ea0f3049076e8ef96eab203a809d6b2332f0361", - "reference": "2ea0f3049076e8ef96eab203a809d6b2332f0361", + "url": "https://api.github.com/repos/symfony/routing/zipball/69062e2823f03b82265d73a966999660f0e1e404", + "reference": "69062e2823f03b82265d73a966999660f0e1e404", "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|^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", @@ -7171,7 +7251,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.21" + "source": "https://github.com/symfony/routing/tree/v6.2.8" }, "funding": [ { @@ -7187,26 +7267,25 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:33:00+00:00" + "time": "2023-03-14T15:00:05+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a8c9cedf55f314f3a186041d19537303766df09a" }, "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/a8c9cedf55f314f3a186041d19537303766df09a", + "reference": "a8c9cedf55f314f3a186041d19537303766df09a", "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" @@ -7217,7 +7296,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -7227,7 +7306,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7254,7 +7336,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.2.1" }, "funding": [ { @@ -7270,20 +7352,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-03-01T10:32:47+00:00" }, { "name": "symfony/string", - "version": "v6.2.7", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "67b8c1eec78296b85dc1c7d9743830160218993d" + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/67b8c1eec78296b85dc1c7d9743830160218993d", - "reference": "67b8c1eec78296b85dc1c7d9743830160218993d", + "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", "shasum": "" }, "require": { @@ -7340,7 +7422,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.7" + "source": "https://github.com/symfony/string/tree/v6.2.8" }, "funding": [ { @@ -7356,54 +7438,55 @@ "type": "tidelift" } ], - "time": "2023-02-24T10:42:00+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "symfony/translation", - "version": "v5.4.21", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "6996affeea65705086939894b77110e9a7f80874" + "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/6996affeea65705086939894b77110e9a7f80874", - "reference": "6996affeea65705086939894b77110e9a7f80874", + "url": "https://api.github.com/repos/symfony/translation/zipball/817535dbb1721df8b3a8f2489dc7e50bcd6209b5", + "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^2.3" + "symfony/translation-contracts": "^2.3|^3.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/console": "<5.3", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" }, "provide": { - "symfony/translation-implementation": "2.3" + "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { + "nikic/php-parser": "^4.13", "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", + "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": "^4.4|^5.0|^6.0" + "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": "" @@ -7437,7 +7520,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.21" + "source": "https://github.com/symfony/translation/tree/v6.2.8" }, "funding": [ { @@ -7453,24 +7536,24 @@ "type": "tidelift" } ], - "time": "2023-02-21T19:46:44+00:00" + "time": "2023-03-31T09:14:44+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.5.2", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dfec258b9dd17a6b24420d464c43bffe347441c8", + "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.1" }, "suggest": { "symfony/translation-implementation": "" @@ -7478,7 +7561,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -7488,7 +7571,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Translation\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7515,7 +7601,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/translation-contracts/tree/v3.2.1" }, "funding": [ { @@ -7531,36 +7617,109 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-03-01T10:32:47+00:00" }, { - "name": "symfony/var-dumper", - "version": "v5.4.21", + "name": "symfony/uid", + "version": "v6.2.7", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "6c5ac3a1be8b849d59a1a77877ee110e1b55eb74" + "url": "https://github.com/symfony/uid.git", + "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6c5ac3a1be8b849d59a1a77877ee110e1b55eb74", - "reference": "6c5ac3a1be8b849d59a1a77877ee110e1b55eb74", + "url": "https://api.github.com/repos/symfony/uid/zipball/d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0", + "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0", "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.7" + }, + "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": "2023-02-14T08:44:56+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "d37ab6787be2db993747b6218fcc96e8e3bb4bd0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d37ab6787be2db993747b6218fcc96e8e3bb4bd0", + "reference": "d37ab6787be2db993747b6218fcc96e8e3bb4bd0", + "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": { @@ -7604,7 +7763,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.8" }, "funding": [ { @@ -7620,35 +7779,38 @@ "type": "tidelift" } ], - "time": "2023-02-23T10:00:28+00:00" + "time": "2023-03-29T21:42:15+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.45", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", - "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e8e6a1d59e050525f27a1f530aa9703423cb7f57", + "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" + "php": ">=8.1", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<3.4" + "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" + "symfony/console": "^5.4|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { @@ -7675,7 +7837,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.45" + "source": "https://github.com/symfony/yaml/tree/v6.2.7" }, "funding": [ { @@ -7691,7 +7853,7 @@ "type": "tidelift" } ], - "time": "2022-08-02T15:47:23+00:00" + "time": "2023-02-16T09:57:23+00:00" }, { "name": "tecnickcom/tcpdf", @@ -7965,16 +8127,16 @@ }, { "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": { @@ -8011,7 +8173,7 @@ ], "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": [ { @@ -8035,7 +8197,7 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { "name": "web-token/jwt-core", @@ -8473,36 +8635,36 @@ "packages-dev": [ { "name": "barryvdh/laravel-debugbar", - "version": "v3.7.0", + "version": "v3.8.1", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "3372ed65e6d2039d663ed19aa699956f9d346271" + "reference": "aff3235fecb4104203b1e62c32239c56530eee32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/3372ed65e6d2039d663ed19aa699956f9d346271", - "reference": "3372ed65e6d2039d663ed19aa699956f9d346271", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/aff3235fecb4104203b1e62c32239c56530eee32", + "reference": "aff3235fecb4104203b1e62c32239c56530eee32", "shasum": "" }, "require": { - "illuminate/routing": "^7|^8|^9", - "illuminate/session": "^7|^8|^9", - "illuminate/support": "^7|^8|^9", - "maximebf/debugbar": "^1.17.2", - "php": ">=7.2.5", - "symfony/finder": "^5|^6" + "illuminate/routing": "^9|^10", + "illuminate/session": "^9|^10", + "illuminate/support": "^9|^10", + "maximebf/debugbar": "^1.18.2", + "php": "^8.0", + "symfony/finder": "^6" }, "require-dev": { "mockery/mockery": "^1.3.3", - "orchestra/testbench-dusk": "^5|^6|^7", - "phpunit/phpunit": "^8.5|^9.0", + "orchestra/testbench-dusk": "^5|^6|^7|^8", + "phpunit/phpunit": "^8.5.30|^9.0", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.6-dev" + "dev-master": "3.8-dev" }, "laravel": { "providers": [ @@ -8541,7 +8703,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.7.0" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.8.1" }, "funding": [ { @@ -8553,7 +8715,7 @@ "type": "github" } ], - "time": "2022-07-11T09:26:42+00:00" + "time": "2023-02-21T14:21:02+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -9332,30 +9494,30 @@ }, { "name": "doctrine/annotations", - "version": "1.14.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", "shasum": "" }, "require": { - "doctrine/lexer": "^1 || ^2", + "doctrine/lexer": "^2 || ^3", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", + "php": "^7.2 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "doctrine/cache": "^2.0", + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/cache": "^5.4 || ^6", "vimeo/psalm": "^4.10" }, "suggest": { @@ -9402,9 +9564,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.14.3" + "source": "https://github.com/doctrine/annotations/tree/2.0.1" }, - "time": "2023-02-01T09:20:38+00:00" + "time": "2023-02-02T22:02:53+00:00" }, { "name": "doctrine/instantiator", @@ -9617,27 +9779,27 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.14.1", + "version": "v3.16.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "d7cfcdc49f081bc6bfd00dfb75063a42146fd753" + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d7cfcdc49f081bc6bfd00dfb75063a42146fd753", - "reference": "d7cfcdc49f081bc6bfd00dfb75063a42146fd753", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", + "reference": "d40f9436e1c448d309fa995ab9c14c5c7a96f2dc", "shasum": "" }, "require": { "composer/semver": "^3.3", "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^1.14.2 || ^2", - "doctrine/lexer": "^1 || ^2", + "doctrine/annotations": "^2", + "doctrine/lexer": "^2 || ^3", "ext-json": "*", "ext-tokenizer": "*", "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0", + "sebastian/diff": "^4.0 || ^5.0", "symfony/console": "^5.4 || ^6.0", "symfony/event-dispatcher": "^5.4 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0", @@ -9693,9 +9855,15 @@ } ], "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.14.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.16.0" }, "funding": [ { @@ -9703,7 +9871,7 @@ "type": "github" } ], - "time": "2023-01-29T23:43:24+00:00" + "time": "2023-04-02T19:30:06+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9758,35 +9926,35 @@ }, { "name": "laravel/dusk", - "version": "v6.25.2", + "version": "v7.7.0", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "25a595ac3dc82089a91af10dd23b0d58fd3f6d0b" + "reference": "c1d17269c317bc99fef3c2e885465d0bb6398434" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/25a595ac3dc82089a91af10dd23b0d58fd3f6d0b", - "reference": "25a595ac3dc82089a91af10dd23b0d58fd3f6d0b", + "url": "https://api.github.com/repos/laravel/dusk/zipball/c1d17269c317bc99fef3c2e885465d0bb6398434", + "reference": "c1d17269c317bc99fef3c2e885465d0bb6398434", "shasum": "" }, "require": { "ext-json": "*", "ext-zip": "*", - "illuminate/console": "^6.0|^7.0|^8.0|^9.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "illuminate/console": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0", "nesbot/carbon": "^2.0", - "php": "^7.2|^8.0", + "php": "^8.0", "php-webdriver/webdriver": "^1.9.0", - "symfony/console": "^4.3|^5.0|^6.0", - "symfony/finder": "^4.3|^5.0|^6.0", - "symfony/process": "^4.3|^5.0|^6.0", - "vlucas/phpdotenv": "^3.0|^4.0|^5.2" + "symfony/console": "^6.0", + "symfony/finder": "^6.0", + "symfony/process": "^6.0", + "vlucas/phpdotenv": "^5.2" }, "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^4.16|^5.17.1|^6.12.1|^7.0", - "phpunit/phpunit": "^7.5.15|^8.4|^9.0" + "mockery/mockery": "^1.4.2", + "orchestra/testbench": "^7.0|^8.0", + "phpunit/phpunit": "^9.5.10|^10.0.1" }, "suggest": { "ext-pcntl": "Used to gracefully terminate Dusk when tests are running." @@ -9794,7 +9962,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.x-dev" + "dev-master": "7.x-dev" }, "laravel": { "providers": [ @@ -9825,9 +9993,9 @@ ], "support": { "issues": "https://github.com/laravel/dusk/issues", - "source": "https://github.com/laravel/dusk/tree/v6.25.2" + "source": "https://github.com/laravel/dusk/tree/v7.7.0" }, - "time": "2022-09-29T09:37:07+00:00" + "time": "2023-02-21T11:38:10+00:00" }, { "name": "maximebf/debugbar", @@ -10028,37 +10196,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" @@ -10111,41 +10280,39 @@ "type": "patreon" } ], - "time": "2022-01-10T16:22:52+00:00" + "time": "2023-01-03T12:54:54+00:00" }, { "name": "nunomaduro/larastan", - "version": "1.0.4", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/larastan.git", - "reference": "769bc6346a6cce3b823c30eaace33d9c3a0dd40e" + "reference": "072e2c9566ae000bf66c92384fc933b81885244b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/769bc6346a6cce3b823c30eaace33d9c3a0dd40e", - "reference": "769bc6346a6cce3b823c30eaace33d9c3a0dd40e", + "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/072e2c9566ae000bf66c92384fc933b81885244b", + "reference": "072e2c9566ae000bf66c92384fc933b81885244b", "shasum": "" }, "require": { - "composer/composer": "^1.0 || ^2.0", "ext-json": "*", - "illuminate/console": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/container": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/contracts": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/database": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/http": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/pipeline": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/support": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "mockery/mockery": "^0.9 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.0 <1.9", - "symfony/process": "^4.3 || ^5.0 || ^6.0" + "illuminate/console": "^9.47.0 || ^10.0.0", + "illuminate/container": "^9.47.0 || ^10.0.0", + "illuminate/contracts": "^9.47.0 || ^10.0.0", + "illuminate/database": "^9.47.0 || ^10.0.0", + "illuminate/http": "^9.47.0 || ^10.0.0", + "illuminate/pipeline": "^9.47.0 || ^10.0.0", + "illuminate/support": "^9.47.0 || ^10.0.0", + "php": "^8.0.2", + "phpmyadmin/sql-parser": "^5.6.0", + "phpstan/phpstan": "~1.10.3" }, "require-dev": { - "nikic/php-parser": "^4.13.0", - "orchestra/testbench": "^4.0 || ^5.0 || ^6.0 || ^7.0", - "phpunit/phpunit": "^7.3 || ^8.2 || ^9.3" + "nikic/php-parser": "^4.15.2", + "orchestra/testbench": "^7.19.0 || ^8.0.0", + "phpunit/phpunit": "^9.5.27" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -10153,7 +10320,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" }, "phpstan": { "includes": [ @@ -10189,7 +10356,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/larastan/issues", - "source": "https://github.com/nunomaduro/larastan/tree/1.0.4" + "source": "https://github.com/nunomaduro/larastan/tree/2.5.1" }, "funding": [ { @@ -10209,7 +10376,7 @@ "type": "patreon" } ], - "time": "2022-11-09T09:09:31+00:00" + "time": "2023-03-04T23:46:40+00:00" }, { "name": "phar-io/manifest", @@ -10557,17 +10724,104 @@ "time": "2023-03-27T19:02:04+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "1.16.1", + "name": "phpmyadmin/sql-parser", + "version": "5.7.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571" + "url": "https://github.com/phpmyadmin/sql-parser.git", + "reference": "0f5895aab2b6002d00b6831b60983523dea30bff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/e27e92d939e2e3636f0a1f0afaba59692c0bf571", - "reference": "e27e92d939e2e3636f0a1f0afaba59692c0bf571", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/0f5895aab2b6002d00b6831b60983523dea30bff", + "reference": "0f5895aab2b6002d00b6831b60983523dea30bff", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpmyadmin/motranslator": "<3.0" + }, + "require-dev": { + "phpbench/phpbench": "^1.1", + "phpmyadmin/coding-standard": "^3.0", + "phpmyadmin/motranslator": "^4.0 || ^5.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.9.12", + "phpstan/phpstan-phpunit": "^1.3.3", + "phpunit/php-code-coverage": "*", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.11", + "zumba/json-serializer": "^3.0" + }, + "suggest": { + "ext-mbstring": "For best performance", + "phpmyadmin/motranslator": "Translate messages to your favorite locale" + }, + "bin": [ + "bin/highlight-query", + "bin/lint-query", + "bin/tokenize-query" + ], + "type": "library", + "autoload": { + "psr-4": { + "PhpMyAdmin\\SqlParser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "The phpMyAdmin Team", + "email": "developers@phpmyadmin.net", + "homepage": "https://www.phpmyadmin.net/team/" + } + ], + "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", + "homepage": "https://github.com/phpmyadmin/sql-parser", + "keywords": [ + "analysis", + "lexer", + "parser", + "query linter", + "sql", + "sql lexer", + "sql linter", + "sql parser", + "sql syntax highlighter", + "sql tokenizer" + ], + "support": { + "issues": "https://github.com/phpmyadmin/sql-parser/issues", + "source": "https://github.com/phpmyadmin/sql-parser" + }, + "funding": [ + { + "url": "https://www.phpmyadmin.net/donate/", + "type": "other" + } + ], + "time": "2023-01-25T10:43:40+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.18.1", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "22dcdfd725ddf99583bfe398fc624ad6c5004a0f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/22dcdfd725ddf99583bfe398fc624ad6c5004a0f", + "reference": "22dcdfd725ddf99583bfe398fc624ad6c5004a0f", "shasum": "" }, "require": { @@ -10597,22 +10851,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.16.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.18.1" }, - "time": "2023-02-07T18:11:17+00:00" + "time": "2023-04-07T11:51:11+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.11", + "version": "1.10.11", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "46e223dd68a620da18855c23046ddb00940b4014" + "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46e223dd68a620da18855c23046ddb00940b4014", - "reference": "46e223dd68a620da18855c23046ddb00940b4014", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8aa62e6ea8b58ffb650e02940e55a788cbc3fe21", + "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21", "shasum": "" }, "require": { @@ -10641,8 +10895,11 @@ "static analysis" ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.11" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -10658,36 +10915,34 @@ "type": "tidelift" } ], - "time": "2022-10-24T15:45:13+00:00" + "time": "2023-04-04T19:17:42+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "1.0.0", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682" + "reference": "a22b36b955a2e9a3d39fe533b6c1bb5359f9c319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", - "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/a22b36b955a2e9a3d39fe533b6c1bb5359f9c319", + "reference": "a22b36b955a2e9a3d39fe533b6c1bb5359f9c319", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^1.0" + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.10" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-php-parser": "^1.1", "phpstan/phpstan-phpunit": "^1.0", "phpunit/phpunit": "^9.5" }, "type": "phpstan-extension", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, "phpstan": { "includes": [ "rules.neon" @@ -10706,27 +10961,27 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.0.0" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.1.3" }, - "time": "2021-09-23T11:02:21+00:00" + "time": "2023-03-17T07:50:08+00:00" }, { "name": "phpstan/phpstan-mockery", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-mockery.git", - "reference": "245b17ccd00f04be3c6b9fc6645f63793b37b2ea" + "reference": "6aa86bd8e9c9a1be97baf0558d4a2ed1374736a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/245b17ccd00f04be3c6b9fc6645f63793b37b2ea", - "reference": "245b17ccd00f04be3c6b9fc6645f63793b37b2ea", + "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/6aa86bd8e9c9a1be97baf0558d4a2ed1374736a6", + "reference": "6aa86bd8e9c9a1be97baf0558d4a2ed1374736a6", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.5.0" + "phpstan/phpstan": "^1.10" }, "require-dev": { "mockery/mockery": "^1.2.4", @@ -10756,9 +11011,9 @@ "description": "PHPStan Mockery extension", "support": { "issues": "https://github.com/phpstan/phpstan-mockery/issues", - "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.0" + "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.1" }, - "time": "2022-05-09T13:12:35+00:00" + "time": "2023-02-18T13:54:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -12624,6 +12879,85 @@ ], "time": "2023-02-14T08:44:56+00:00" }, + { + "name": "symfony/polyfill-php73", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-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.27.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-11-03T14:55:06+00:00" + }, { "name": "symfony/polyfill-php81", "version": "v1.27.0", diff --git a/config/app.php b/config/app.php index c012bd357f..f898df2673 100644 --- a/config/app.php +++ b/config/app.php @@ -1,6 +1,6 @@ env('APP_NAME', 'LibreNMS'), + 'name' => env('APP_NAME', 'LibreNMS'), - /* + /* |-------------------------------------------------------------------------- | Application Environment |-------------------------------------------------------------------------- @@ -34,9 +36,9 @@ | */ - 'env' => env('APP_ENV', 'production'), + 'env' => env('APP_ENV', 'production'), - /* + /* |-------------------------------------------------------------------------- | Application Debug Mode |-------------------------------------------------------------------------- @@ -47,9 +49,9 @@ | */ - 'debug' => (bool) env('APP_DEBUG', false), + 'debug' => (bool) env('APP_DEBUG', false), - /* + /* |-------------------------------------------------------------------------- | Application URL |-------------------------------------------------------------------------- @@ -60,11 +62,11 @@ | */ - 'url' => env('APP_URL', 'http://localhost'), + 'url' => env('APP_URL', 'http://localhost'), - 'asset_url' => env('ASSET_URL', null), + 'asset_url' => env('ASSET_URL', null), - /* + /* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- @@ -75,9 +77,9 @@ | */ - 'timezone' => ini_get('date.timezone') ?: 'UTC', // use existing timezone + 'timezone' => ini_get('date.timezone') ?: 'UTC', // use existing timezone - /* + /* |-------------------------------------------------------------------------- | Application Locale Configuration |-------------------------------------------------------------------------- @@ -88,9 +90,9 @@ | */ - 'locale' => env('APP_LOCALE', 'en'), + 'locale' => env('APP_LOCALE', 'en'), - /* + /* |-------------------------------------------------------------------------- | Application Fallback Locale |-------------------------------------------------------------------------- @@ -101,9 +103,9 @@ | */ - 'fallback_locale' => 'en', + 'fallback_locale' => 'en', - /* + /* |-------------------------------------------------------------------------- | Faker Locale |-------------------------------------------------------------------------- @@ -114,9 +116,9 @@ | */ - 'faker_locale' => 'en_US', + 'faker_locale' => 'en_US', - /* + /* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- @@ -127,71 +129,89 @@ | */ - 'key' => env('APP_KEY'), + 'key' => env('APP_KEY'), - 'cipher' => 'AES-256-CBC', + 'cipher' => 'AES-256-CBC', - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ + /* + |-------------------------------------------------------------------------- + | 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" + | + */ - 'providers' => [ + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], - /* + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* * Laravel Framework Service Providers... */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, - /* + /* * Package Service Providers... */ - /* + /* * LibreNMS Service Providers... */ - App\Providers\ConfigServiceProvider::class, - App\Providers\ErrorReportingProvider::class, // This should always be after the config is loaded - App\Providers\AppServiceProvider::class, - App\Providers\CliServiceProvider::class, - App\Providers\AuthServiceProvider::class, - // App\Providers\BroadcastServiceProvider::class, - App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - App\Providers\ComposerServiceProvider::class, - App\Providers\DatastoreServiceProvider::class, - App\Providers\SnmptrapProvider::class, - App\Providers\PluginProvider::class, - ], + App\Providers\ConfigServiceProvider::class, + App\Providers\ErrorReportingProvider::class, // This should always be after the config is loaded + App\Providers\AppServiceProvider::class, + App\Providers\CliServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + App\Providers\ComposerServiceProvider::class, + App\Providers\DatastoreServiceProvider::class, + App\Providers\SnmptrapProvider::class, + App\Providers\PluginProvider::class, + ], - /* + /* |-------------------------------------------------------------------------- | Class Aliases |-------------------------------------------------------------------------- @@ -202,56 +222,18 @@ | */ - 'aliases' => [ + 'aliases' => Facade::defaultAliases()->merge([ + 'Debugbar' => Barryvdh\Debugbar\Facades\Debugbar::class, + 'Flare' => Spatie\LaravelIgnition\Facades\Flare::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, - '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, - 'Date' => Illuminate\Support\Facades\Date::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, - 'RateLimiter' => Illuminate\Support\Facades\RateLimiter::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, - 'Debugbar' => Barryvdh\Debugbar\Facades\Debugbar::class, - 'Flare' => Facade\Ignition\Facades\Flare::class, + // LibreNMS + 'DeviceCache' => \App\Facades\DeviceCache::class, + 'Permissions' => \App\Facades\Permissions::class, + 'PluginManager' => \App\Facades\PluginManager::class, + 'Rrd' => \App\Facades\Rrd::class, + 'SnmpQuery' => \App\Facades\FacadeAccessorSnmp::class, + ])->toArray(), - // LibreNMS - 'Permissions' => \App\Facades\Permissions::class, - 'PluginManager' => \App\Facades\PluginManager::class, - 'DeviceCache' => \App\Facades\DeviceCache::class, - 'Rrd' => \App\Facades\Rrd::class, - 'SnmpQuery' => \App\Facades\FacadeAccessorSnmp::class, - ], - - 'charset' => env('CHARSET', ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'), - ]; + 'charset' => env('CHARSET', ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'), +]; diff --git a/config/auth.php b/config/auth.php index 40041d00be..48b1218528 100644 --- a/config/auth.php +++ b/config/auth.php @@ -1,6 +1,6 @@ [ - 'guard' => 'web', - 'passwords' => 'users', - ], + 'defaults' => [ + 'guard' => 'web', + 'passwords' => 'users', + ], - /* + /* |-------------------------------------------------------------------------- | Authentication Guards |-------------------------------------------------------------------------- @@ -43,26 +43,26 @@ | */ - 'guards' => [ - 'web' => [ - 'driver' => 'session', - 'provider' => 'legacy', - ], + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'legacy', + ], - 'api' => [ - 'driver' => 'token', - 'provider' => 'users', - 'hash' => false, - ], + 'api' => [ + 'driver' => 'token', + 'provider' => 'users', + 'hash' => false, + ], - 'token' => [ - 'driver' => 'token_driver', - 'provider' => 'token_provider', - 'hash' => false, - ], - ], + 'token' => [ + 'driver' => 'token_driver', + 'provider' => 'token_provider', + 'hash' => false, + ], + ], - /* + /* |-------------------------------------------------------------------------- | User Providers |-------------------------------------------------------------------------- @@ -79,48 +79,48 @@ | */ - 'providers' => [ - 'users' => [ - 'driver' => 'eloquent', - 'model' => App\Models\User::class, - ], + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], - 'legacy' => [ - 'driver' => 'legacy', - 'model' => App\Models\User::class, - ], + 'legacy' => [ + 'driver' => 'legacy', + 'model' => App\Models\User::class, + ], - // 'users' => [ - // 'driver' => 'database', - // 'table' => 'users', - // ], - ], + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], - /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | 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 - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | 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 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. + | + */ - 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', - 'expire' => 60, - 'throttle' => 60, - ], - ], + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + 'throttle' => 60, + ], + ], - /* + /* |-------------------------------------------------------------------------- | Password Confirmation Timeout |-------------------------------------------------------------------------- @@ -131,6 +131,6 @@ | */ - 'password_timeout' => 10800, + 'password_timeout' => 10800, - ]; +]; diff --git a/config/broadcasting.php b/config/broadcasting.php index 0d4d6f62bb..1abfc3b574 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -1,6 +1,6 @@ env('BROADCAST_DRIVER', 'null'), + 'default' => env('BROADCAST_DRIVER', 'null'), - /* + /* |-------------------------------------------------------------------------- | Broadcast Connections |-------------------------------------------------------------------------- @@ -36,37 +36,43 @@ | */ - 'connections' => [ + 'connections' => [ - 'pusher' => [ - 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY'), - 'secret' => env('PUSHER_APP_SECRET'), - 'app_id' => env('PUSHER_APP_ID'), - 'options' => [ - 'cluster' => env('PUSHER_APP_CLUSTER'), - 'useTLS' => true, - ], - ], + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'host' => env('PUSHER_HOST', 'api-' . env('PUSHER_APP_CLUSTER', 'mt1') . '.pusher.com') ?: '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 + ], + ], - 'ably' => [ - 'driver' => 'ably', - 'key' => env('ABLY_KEY'), - ], + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], - 'log' => [ - 'driver' => 'log', - ], + 'log' => [ + 'driver' => 'log', + ], - 'null' => [ - 'driver' => 'null', - ], + 'null' => [ + 'driver' => 'null', + ], - ], + ], - ]; +]; diff --git a/config/cache.php b/config/cache.php index 6cd55eff7e..533b1af941 100644 --- a/config/cache.php +++ b/config/cache.php @@ -1,6 +1,6 @@ env('CACHE_DRIVER', 'database'), + 'default' => env('CACHE_DRIVER', 'database'), - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - | Supported drivers: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb", "octane", "null" - | - */ + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ - 'stores' => [ + 'stores' => [ - 'apc' => [ - 'driver' => 'apc', - ], + 'apc' => [ + 'driver' => 'apc', + ], - 'array' => [ - 'driver' => 'array', - 'serialize' => false, - ], + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - 'lock_connection' => null, - ], + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], - 'file' => [ - 'driver' => 'file', - 'path' => storage_path('framework/cache/data'), - ], + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], - 'memcached' => [ - 'driver' => 'memcached', - 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), - 'sasl' => [ - env('MEMCACHED_USERNAME'), - env('MEMCACHED_PASSWORD'), - ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], - 'servers' => [ - [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), - 'weight' => 100, - ], - ], - ], + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'cache', - 'lock_connection' => 'default', - ], + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], - 'dynamodb' => [ - 'driver' => 'dynamodb', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), - 'endpoint' => env('DYNAMODB_ENDPOINT'), - ], + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], - 'octane' => [ - 'driver' => 'octane', - ], + 'octane' => [ + 'driver' => 'octane', + ], - ], + ], - /* - |-------------------------------------------------------------------------- - | 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. - | - */ + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | 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/cors.php b/config/cors.php index 19571ad6aa..ccafcfb71d 100644 --- a/config/cors.php +++ b/config/cors.php @@ -1,5 +1,13 @@ [], - /* - * Matches the request method. `[*]` allows all methods. - */ 'allowed_methods' => ['*'], - /* - * Matches the request origin. `[*]` allows all origins. Wildcards can be used, eg `*.mydomain.com` - */ 'allowed_origins' => [], - /* - * Patterns that can be used with `preg_match` to match the origin. - */ 'allowed_origins_patterns' => [], - /* - * Sets the Access-Control-Allow-Headers response header. `[*]` allows all headers. - */ 'allowed_headers' => ['*'], - /* - * Sets the Access-Control-Expose-Headers response header with these headers. - */ 'exposed_headers' => [], - /* - * Sets the Access-Control-Max-Age response header when > 0. - */ 'max_age' => 0, - /* - * Sets the Access-Control-Allow-Credentials header. - */ 'supports_credentials' => false, + ]; diff --git a/config/database.php b/config/database.php index 5e8dcf2444..0c3b12b293 100644 --- a/config/database.php +++ b/config/database.php @@ -1,6 +1,6 @@ env('DB_CONNECTION', env('DBTEST') ? 'testing' : 'mysql'), + 'default' => env('DB_CONNECTION', env('DBTEST') ? 'testing' : 'mysql'), - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ - 'connections' => [ + 'connections' => [ - 'sqlite' => [ - 'driver' => 'sqlite', - 'url' => env('DATABASE_URL'), - 'database' => env('DB_DATABASE', storage_path('librenms.sqlite')), - 'prefix' => '', - 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), - ], + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', storage_path('librenms.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], - 'mysql' => [ - 'driver' => 'mysql', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'librenms'), - 'username' => env('DB_USERNAME', 'librenms'), - 'password' => env('DB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', - 'prefix_indexes' => true, - 'strict' => true, - 'engine' => null, - 'sslmode' => env('DB_SSLMODE', 'disabled'), - 'options' => extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), - ]) : [], - ], + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'librenms'), + 'username' => env('DB_USERNAME', 'librenms'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'sslmode' => env('DB_SSLMODE', 'disabled'), + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], - 'mysql_cluster' => [ - 'read' => [ - 'host' => [ - env('DB_HOST', 'localhost'), - env('DB_HOST_R2', ''), - env('DB_HOST_R3', ''), - env('DB_HOST_R4', ''), - env('DB_HOST_R5', ''), - env('DB_HOST_R6', ''), - env('DB_HOST_R7', ''), - env('DB_HOST_R8', ''), - env('DB_HOST_R9', ''), - ], - ], - 'write' => [ - 'host' => [ - env('DB_HOST', 'localhost'), - env('DB_HOST_W2', ''), - env('DB_HOST_W3', ''), - env('DB_HOST_W4', ''), - env('DB_HOST_W5', ''), - env('DB_HOST_W6', ''), - env('DB_HOST_W7', ''), - env('DB_HOST_W8', ''), - env('DB_HOST_W9', ''), - ], - ], - 'sticky' => env('DB_STICKY', null), - 'driver' => 'mysql', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'librenms'), - 'username' => env('DB_USERNAME', 'librenms'), - 'password' => env('DB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', - 'prefix_indexes' => true, - 'strict' => true, - 'engine' => null, - 'options' => extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), - ]) : [], - ], + 'mysql_cluster' => [ + 'read' => [ + 'host' => [ + env('DB_HOST', 'localhost'), + env('DB_HOST_R2', ''), + env('DB_HOST_R3', ''), + env('DB_HOST_R4', ''), + env('DB_HOST_R5', ''), + env('DB_HOST_R6', ''), + env('DB_HOST_R7', ''), + env('DB_HOST_R8', ''), + env('DB_HOST_R9', ''), + ], + ], + 'write' => [ + 'host' => [ + env('DB_HOST', 'localhost'), + env('DB_HOST_W2', ''), + env('DB_HOST_W3', ''), + env('DB_HOST_W4', ''), + env('DB_HOST_W5', ''), + env('DB_HOST_W6', ''), + env('DB_HOST_W7', ''), + env('DB_HOST_W8', ''), + env('DB_HOST_W9', ''), + ], + ], + 'sticky' => env('DB_STICKY', null), + 'driver' => 'mysql', + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'librenms'), + 'username' => env('DB_USERNAME', 'librenms'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], - 'testing' => [ - 'driver' => env('DB_TEST_DRIVER', 'mysql'), - 'host' => env('DB_TEST_HOST', 'localhost'), - 'port' => env('DB_TEST_PORT', '3306'), - 'database' => env('DB_TEST_DATABASE', 'librenms_phpunit_78hunjuybybh'), - 'username' => env('DB_TEST_USERNAME', 'root'), - 'password' => env('DB_TEST_PASSWORD', ''), - 'unix_socket' => env('DB_TEST_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', - 'strict' => true, - 'engine' => null, - ], + 'testing' => [ + 'driver' => env('DB_TEST_DRIVER', 'mysql'), + 'host' => env('DB_TEST_HOST', 'localhost'), + 'port' => env('DB_TEST_PORT', '3306'), + 'database' => env('DB_TEST_DATABASE', 'librenms_phpunit_78hunjuybybh'), + 'username' => env('DB_TEST_USERNAME', 'root'), + 'password' => env('DB_TEST_PASSWORD', ''), + 'unix_socket' => env('DB_TEST_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'strict' => true, + 'engine' => null, + ], - 'pgsql' => [ - 'driver' => 'pgsql', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', '127.0.0.1'), - 'port' => env('DB_PORT', '5432'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - 'schema' => 'public', - 'sslmode' => 'prefer', - ], + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - ], + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + ], - 'testing_memory' => [ - 'driver' => 'sqlite', - 'database' => ':memory:', - 'prefix' => '', - 'foreign_key_constraints' => true, - ], + 'testing_memory' => [ + 'driver' => 'sqlite', + 'database' => ':memory:', + 'prefix' => '', + 'foreign_key_constraints' => true, + ], - 'testing_persistent' => [ - 'driver' => 'sqlite', - 'database' => storage_path('testing.sqlite'), - 'prefix' => '', - 'foreign_key_constraints' => true, - ], + 'testing_persistent' => [ + 'driver' => 'sqlite', + 'database' => storage_path('testing.sqlite'), + 'prefix' => '', + 'foreign_key_constraints' => true, + ], - ], + ], - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ - 'migrations' => 'migrations', + 'migrations' => 'migrations', - /* + /* |-------------------------------------------------------------------------- | Redis Databases |-------------------------------------------------------------------------- @@ -201,32 +201,32 @@ | */ - 'redis' => [ + 'redis' => [ - 'client' => env('REDIS_CLIENT', 'predis'), + 'client' => env('REDIS_CLIENT', 'predis'), - 'options' => [ - 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), - ], + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), + ], - 'default' => [ - 'scheme' => env('REDIS_SCHEME', 'tcp'), - 'url' => env('REDIS_URL'), - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', '6379'), - 'database' => env('REDIS_DB', '0'), - ], + 'default' => [ + 'scheme' => env('REDIS_SCHEME', 'tcp'), + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], - 'cache' => [ - 'url' => env('REDIS_URL'), - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', '6379'), - 'database' => env('REDIS_CACHE_DB', '1'), - ], + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], - ], + ], - ]; +]; diff --git a/config/filesystems.php b/config/filesystems.php index eb8a7aaa54..cf10d1d08b 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -1,6 +1,6 @@ env('FILESYSTEM_DRIVER', 'local'), + 'default' => env('FILESYSTEM_DISK', 'local'), - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | 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. - | - | Supported Drivers: "local", "ftp", "sftp", "s3" - | - */ + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | 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 set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ - 'disks' => [ + 'disks' => [ - 'local' => [ - 'driver' => 'local', - 'root' => storage_path('app'), - ], + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], - 'base' => [ - 'driver' => 'local', - 'root' => base_path(), - ], + 'base' => [ + 'driver' => 'local', + 'root' => base_path(), + ], - 'public' => [ - 'driver' => 'local', - 'root' => storage_path('app/public'), - 'url' => env('APP_URL') . '/storage', - 'visibility' => 'public', - ], + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL') . '/storage', + 'visibility' => 'public', + 'throw' => false, + ], - 's3' => [ - 'driver' => 's3', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION'), - 'bucket' => env('AWS_BUCKET'), - 'url' => env('AWS_URL'), - 'endpoint' => env('AWS_ENDPOINT'), - 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), - ], + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + '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, + ], - ], + ], - /* + /* |-------------------------------------------------------------------------- | Symbolic Links |-------------------------------------------------------------------------- @@ -79,8 +82,8 @@ | */ - 'links' => [ - public_path('storage') => storage_path('app/public'), - ], + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], - ]; +]; diff --git a/config/flare.php b/config/flare.php index 88bc64b46f..861cdc8864 100644 --- a/config/flare.php +++ b/config/flare.php @@ -1,6 +1,6 @@ env('FLARE_KEY', 'quYFBTFNKHLBqFCoeo5yDVOQNbs6muV1'), + 'key' => env('FLARE_KEY', 'quYFBTFNKHLBqFCoeo5yDVOQNbs6muV1'), - /* + /* |-------------------------------------------------------------------------- - | Reporting Options + | Middleware |-------------------------------------------------------------------------- | - | These options determine which information will be transmitted to Flare. + | These middleware will modify the contents of the report sent to Flare. | */ - 'reporting' => [ - 'anonymize_ips' => true, - 'collect_git_information' => false, - 'report_queries' => true, - 'maximum_number_of_collected_queries' => 50, - 'report_query_bindings' => true, - 'report_view_data' => true, - 'grouping_type' => null, - 'report_logs' => false, - 'maximum_number_of_collected_logs' => 50, - 'censor_request_body_fields' => ['username', 'password', 'sysContact', 'community', 'authname', 'authpass', 'cryptopass'], - ], + 'flare_middleware' => [ + RemoveRequestIp::class, + //AddGitInformation::class, + AddNotifierName::class, + AddEnvironmentInformation::class, + AddExceptionInformation::class, + AddDumps::class, + /* + AddLogs::class => [ + 'maximum_number_of_collected_logs' => 200, + ], + */ + AddQueries::class => [ + 'maximum_number_of_collected_queries' => 50, + 'report_query_bindings' => true, + ], + AddJobs::class => [ + 'max_chained_job_reporting_depth' => 5, + ], + CensorRequestBodyFields::class => [ + 'censor_fields' => [ + 'password', + 'password_confirmation', + // LibreNMS + 'username', + 'sysContact', + 'community', + 'authname', + 'authpass', + 'cryptopass', + ], + ], + CensorRequestHeaders::class => [ + 'headers' => [ + 'API-KEY', + ], + ], + ], - /* + /* |-------------------------------------------------------------------------- - | Reporting Log statements + | Reporting log statements |-------------------------------------------------------------------------- | | If this setting is `false` log statements won't be sent as events to Flare, @@ -55,16 +93,5 @@ | */ - 'send_logs_as_events' => false, - - /* - |-------------------------------------------------------------------------- - | Censor request body fields - |-------------------------------------------------------------------------- - | - | These fields will be censored from your request when sent to Flare. - | - */ - - 'censor_request_body_fields' => ['username', 'password', 'sysContact', 'community', 'authname', 'authpass', 'cryptopass'], - ]; + 'send_logs_as_events' => false, +]; diff --git a/config/hashing.php b/config/hashing.php index 14ca2fbb30..639c72fe75 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -1,6 +1,6 @@ 'bcrypt', + 'driver' => 'bcrypt', - /* + /* |-------------------------------------------------------------------------- | Bcrypt Options |-------------------------------------------------------------------------- @@ -36,11 +36,11 @@ | */ - 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), - ], + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], - /* + /* |-------------------------------------------------------------------------- | Argon Options |-------------------------------------------------------------------------- @@ -51,10 +51,10 @@ | */ - 'argon' => [ - 'memory' => 1024, - 'threads' => 2, - 'time' => 2, - ], + 'argon' => [ + 'memory' => 1024, + 'threads' => 2, + 'time' => 2, + ], - ]; +]; diff --git a/config/ignition.php b/config/ignition.php index db57d26f5e..09d7db3865 100644 --- a/config/ignition.php +++ b/config/ignition.php @@ -1,126 +1,241 @@ env('IGNITION_EDITOR', 'phpstorm'), /* - |-------------------------------------------------------------------------- - | Theme - |-------------------------------------------------------------------------- - | - | Here you may specify which theme Ignition should use. - | - | Supported: "light", "dark", "auto" - | - */ + |-------------------------------------------------------------------------- + | Theme + |-------------------------------------------------------------------------- + | + | Here you may specify which theme Ignition should use. + | + | Supported: "light", "dark", "auto" + | + */ 'theme' => env('IGNITION_THEME', 'auto'), /* - |-------------------------------------------------------------------------- - | Sharing - |-------------------------------------------------------------------------- - | - | You can share local errors with colleagues or others around the world. - | Sharing is completely free and doesn't require an account on Flare. - | - | If necessary, you can completely disable sharing below. - | - */ + |-------------------------------------------------------------------------- + | Sharing + |-------------------------------------------------------------------------- + | + | You can share local errors with colleagues or others around the world. + | Sharing is completely free and doesn't require an account on Flare. + | + | If necessary, you can completely disable sharing below. + | + */ 'enable_share_button' => env('IGNITION_SHARING_ENABLED', true), /* - |-------------------------------------------------------------------------- - | Register Ignition commands - |-------------------------------------------------------------------------- - | - | Ignition comes with an additional make command that lets you create - | new solution classes more easily. To keep your default Laravel - | installation clean, this command is not registered by default. - | - | You can enable the command registration below. - | - */ + |-------------------------------------------------------------------------- + | Register Ignition commands + |-------------------------------------------------------------------------- + | + | Ignition comes with an additional make command that lets you create + | new solution classes more easily. To keep your default Laravel + | installation clean, this command is not registered by default. + | + | You can enable the command registration below. + | + */ + 'register_commands' => env('REGISTER_IGNITION_COMMANDS', false), /* - |-------------------------------------------------------------------------- - | Ignored Solution Providers - |-------------------------------------------------------------------------- - | - | You may specify a list of solution providers (as fully qualified class - | names) that shouldn't be loaded. Ignition will ignore these classes - | and possible solutions provided by them will never be displayed. - | - */ + |-------------------------------------------------------------------------- + | Solution Providers + |-------------------------------------------------------------------------- + | + | You may specify a list of solution providers (as fully qualified class + | names) that shouldn't be loaded. Ignition will ignore these classes + | and possible solutions provided by them will never be displayed. + | + */ - 'ignored_solution_providers' => [ - \Facade\Ignition\SolutionProviders\MissingPackageSolutionProvider::class, + 'solution_providers' => [ ], /* - |-------------------------------------------------------------------------- - | Runnable Solutions - |-------------------------------------------------------------------------- - | - | Some solutions that Ignition displays are runnable and can perform - | various tasks. Runnable solutions are enabled when your app has - | debug mode enabled. You may also fully disable this feature. - | - */ + |-------------------------------------------------------------------------- + | Ignored Solution Providers + |-------------------------------------------------------------------------- + | + | You may specify a list of solution providers (as fully qualified class + | names) that shouldn't be loaded. Ignition will ignore these classes + | and possible solutions provided by them will never be displayed. + | + */ + + 'ignored_solution_providers' => [ + // from spatie/ignition + BadMethodCallSolutionProvider::class, + MergeConflictSolutionProvider::class, + UndefinedPropertySolutionProvider::class, + + // from spatie/laravel-ignition + IncorrectValetDbCredentialsSolutionProvider::class, + MissingAppKeySolutionProvider::class, + DefaultDbNameSolutionProvider::class, + TableNotFoundSolutionProvider::class, + MissingImportSolutionProvider::class, + InvalidRouteActionSolutionProvider::class, + ViewNotFoundSolutionProvider::class, + RunningLaravelDuskInProductionProvider::class, + MissingColumnSolutionProvider::class, + UnknownValidationSolutionProvider::class, + MissingMixManifestSolutionProvider::class, + MissingViteManifestSolutionProvider::class, + MissingLivewireComponentSolutionProvider::class, + UndefinedViewVariableSolutionProvider::class, + GenericLaravelExceptionSolutionProvider::class, + ], + + /* + |-------------------------------------------------------------------------- + | Runnable Solutions + |-------------------------------------------------------------------------- + | + | Some solutions that Ignition displays are runnable and can perform + | various tasks. By default, runnable solutions are only enabled when your + | app has debug mode enabled and the environment is `local` or + | `development`. + | + | Using the `IGNITION_ENABLE_RUNNABLE_SOLUTIONS` environment variable, you + | can override this behaviour and enable or disable runnable solutions + | regardless of the application's environment. + | + | Default: env('IGNITION_ENABLE_RUNNABLE_SOLUTIONS') + | + */ 'enable_runnable_solutions' => env('IGNITION_ENABLE_RUNNABLE_SOLUTIONS', false), /* - |-------------------------------------------------------------------------- - | Remote Path Mapping - |-------------------------------------------------------------------------- - | - | If you are using a remote dev server, like Laravel Homestead, Docker, or - | even a remote VPS, it will be necessary to specify your path mapping. - | - | Leaving one, or both of these, empty or null will not trigger the remote - | URL changes and Ignition will treat your editor links as local files. - | - | "remote_sites_path" is an absolute base path for your sites or projects - | in Homestead, Vagrant, Docker, or another remote development server. - | - | Example value: "/home/vagrant/Code" - | - | "local_sites_path" is an absolute base path for your sites or projects - | on your local computer where your IDE or code editor is running on. - | - | Example values: "/Users//Code", "C:\Users\\Documents\Code" - | - */ + |-------------------------------------------------------------------------- + | Remote Path Mapping + |-------------------------------------------------------------------------- + | + | If you are using a remote dev server, like Laravel Homestead, Docker, or + | even a remote VPS, it will be necessary to specify your path mapping. + | + | Leaving one, or both of these, empty or null will not trigger the remote + | URL changes and Ignition will treat your editor links as local files. + | + | "remote_sites_path" is an absolute base path for your sites or projects + | in Homestead, Vagrant, Docker, or another remote development server. + | + | Example value: "/home/vagrant/Code" + | + | "local_sites_path" is an absolute base path for your sites or projects + | on your local computer where your IDE or code editor is running on. + | + | Example values: "/Users//Code", "C:\Users\\Documents\Code" + | + */ - 'remote_sites_path' => env('IGNITION_REMOTE_SITES_PATH', ''), + 'remote_sites_path' => env('IGNITION_REMOTE_SITES_PATH', base_path()), 'local_sites_path' => env('IGNITION_LOCAL_SITES_PATH', ''), /* - |-------------------------------------------------------------------------- - | Housekeeping Endpoint Prefix - |-------------------------------------------------------------------------- - | - | Ignition registers a couple of routes when it is enabled. Below you may - | specify a route prefix that will be used to host all internal links. - | - */ + |-------------------------------------------------------------------------- + | Housekeeping Endpoint Prefix + |-------------------------------------------------------------------------- + | + | Ignition registers a couple of routes when it is enabled. Below you may + | specify a route prefix that will be used to host all internal links. + | + */ + 'housekeeping_endpoint_prefix' => '_ignition', + /* + |-------------------------------------------------------------------------- + | Settings File + |-------------------------------------------------------------------------- + | + | Ignition allows you to save your settings to a specific global file. + | + | If no path is specified, a file with settings will be saved to the user's + | home directory. The directory depends on the OS and its settings but it's + | typically `~/.ignition.json`. In this case, the settings will be applied + | to all of your projects where Ignition is used and the path is not + | specified. + | + | However, if you want to store your settings on a project basis, or you + | want to keep them in another directory, you can specify a path where + | the settings file will be saved. The path should be an existing directory + | with correct write access. + | For example, create a new `ignition` folder in the storage directory and + | use `storage_path('ignition')` as the `settings_file_path`. + | + | Default value: '' (empty string) + */ + + 'settings_file_path' => '', + + /* + |-------------------------------------------------------------------------- + | Recorders + |-------------------------------------------------------------------------- + | + | Ignition registers a couple of recorders when it is enabled. Below you may + | specify a recorders will be used to record specific events. + | + */ + + 'recorders' => [ + DumpRecorder::class, + JobRecorder::class, + LogRecorder::class, + QueryRecorder::class, + ], ]; diff --git a/config/logging.php b/config/logging.php index 7d3b46ac4a..ec9300667d 100644 --- a/config/logging.php +++ b/config/logging.php @@ -1,6 +1,6 @@ env('LOG_CHANNEL', 'stack'), + 'default' => env('LOG_CHANNEL', 'stack'), - /* - |-------------------------------------------------------------------------- - | Log Channels - |-------------------------------------------------------------------------- - | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "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. + | + */ - 'channels' => [ - 'stack' => [ - 'driver' => 'stack', - 'channels' => ['single', 'flare'], - 'ignore_exceptions' => false, - ], + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], - 'console' => [ - 'driver' => 'stack', - 'channels' => ['single', 'stdout', 'flare'], - 'ignore_exceptions' => false, - ], + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ - 'console_debug' => [ - 'driver' => 'stack', - 'channels' => ['single', 'stdout_debug'], - 'ignore_exceptions' => false, - ], + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single', 'flare'], + 'ignore_exceptions' => false, + ], - 'single' => [ - 'driver' => 'single', - 'path' => env('APP_LOG', \LibreNMS\Config::get('log_file', base_path('logs/librenms.log'))), - 'formatter' => \App\Logging\NoColorFormatter::class, - 'level' => env('LOG_LEVEL', 'error'), - ], + 'console' => [ + 'driver' => 'stack', + 'channels' => ['single', 'stdout', 'flare'], + 'ignore_exceptions' => false, + ], - 'daily' => [ - 'driver' => 'daily', - 'path' => env('APP_LOG', \LibreNMS\Config::get('log_file', base_path('logs/librenms.log'))), - 'formatter' => \App\Logging\NoColorFormatter::class, - 'level' => env('LOG_LEVEL', 'error'), - 'days' => 14, - ], + 'console_debug' => [ + 'driver' => 'stack', + 'channels' => ['single', 'stdout_debug'], + 'ignore_exceptions' => false, + ], - 'slack' => [ - 'driver' => 'slack', - 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Laravel Log', - 'emoji' => ':boom:', - 'level' => env('LOG_LEVEL', 'critical'), - ], + 'single' => [ + 'driver' => 'single', + 'path' => env('APP_LOG', \LibreNMS\Config::get('log_file', base_path('logs/librenms.log'))), + 'formatter' => \App\Logging\NoColorFormatter::class, + 'level' => env('LOG_LEVEL', 'error'), + ], - 'papertrail' => [ - 'driver' => 'monolog', - 'level' => env('LOG_LEVEL', 'debug'), - 'handler' => SyslogUdpHandler::class, - 'handler_with' => [ - 'host' => env('PAPERTRAIL_URL'), - 'port' => env('PAPERTRAIL_PORT'), - ], - ], + 'daily' => [ + 'driver' => 'daily', + 'path' => env('APP_LOG', \LibreNMS\Config::get('log_file', base_path('logs/librenms.log'))), + 'formatter' => \App\Logging\NoColorFormatter::class, + 'level' => env('LOG_LEVEL', 'error'), + 'days' => 14, + ], - 'stderr' => [ - 'driver' => 'monolog', - 'handler' => StreamHandler::class, - 'formatter' => \App\Logging\CliColorFormatter::class, - 'with' => [ - 'stream' => 'php://stderr', - ], - 'level' => 'debug', - ], + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + ], - 'stdout_debug' => [ - 'driver' => 'monolog', - 'handler' => StreamHandler::class, - 'formatter' => \App\Logging\CliColorFormatter::class, - 'with' => [ - 'stream' => 'php://output', - ], - 'level' => 'debug', - ], + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + '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'), + ], + ], - 'stdout' => [ - 'driver' => 'monolog', - 'handler' => StreamHandler::class, - 'formatter' => \App\Logging\CliColorFormatter::class, - 'with' => [ - 'stream' => 'php://output', - ], - 'level' => 'info', - ], + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER', \App\Logging\CliColorFormatter::class), + 'with' => [ + 'stream' => 'php://stderr', + ], + ], - 'syslog' => [ - 'driver' => 'syslog', - 'level' => env('LOG_LEVEL', 'debug'), - ], + 'stdout_debug' => [ + 'driver' => 'monolog', + 'handler' => StreamHandler::class, + 'formatter' => \App\Logging\CliColorFormatter::class, + 'with' => [ + 'stream' => 'php://output', + ], + 'level' => 'debug', + ], - 'errorlog' => [ - 'driver' => 'errorlog', - 'level' => env('LOG_LEVEL', 'debug'), - ], + 'stdout' => [ + 'driver' => 'monolog', + 'handler' => StreamHandler::class, + 'formatter' => \App\Logging\CliColorFormatter::class, + 'with' => [ + 'stream' => 'php://output', + ], + 'level' => 'info', + ], - 'null' => [ - 'driver' => 'monolog', - 'handler' => NullHandler::class, - ], + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + ], - 'emergency' => [ - 'path' => storage_path('logs/laravel.log'), - ], + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + ], - 'flare' => [ - 'driver' => 'flare', - ], - ], + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], - ]; + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + + 'flare' => [ + 'driver' => 'flare', + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php index 4c4019d4bc..361fb80eea 100644 --- a/config/mail.php +++ b/config/mail.php @@ -37,7 +37,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" | */ @@ -50,7 +50,7 @@ return [ 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, - 'auth_mode' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), ], 'ses' => [ @@ -67,7 +67,7 @@ return [ 'sendmail' => [ 'transport' => 'sendmail', - 'path' => '/usr/sbin/sendmail -bs', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), ], 'log' => [ diff --git a/config/queue.php b/config/queue.php index 2c93339529..e5263874c0 100644 --- a/config/queue.php +++ b/config/queue.php @@ -1,6 +1,6 @@ env('QUEUE_CONNECTION', 'sync'), + 'default' => env('QUEUE_CONNECTION', 'sync'), - /* + /* |-------------------------------------------------------------------------- | Queue Connections |-------------------------------------------------------------------------- @@ -36,52 +36,52 @@ | */ - 'connections' => [ + 'connections' => [ - 'sync' => [ - 'driver' => 'sync', - ], + 'sync' => [ + 'driver' => 'sync', + ], - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, - 'after_commit' => false, - ], + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, - 'block_for' => 0, - 'after_commit' => false, - ], + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], - 'sqs' => [ - 'driver' => 'sqs', - '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', 'default'), - 'suffix' => env('SQS_SUFFIX'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - 'after_commit' => false, - ], + 'sqs' => [ + 'driver' => 'sqs', + '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', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => env('REDIS_QUEUE', 'default'), - 'retry_after' => 90, - 'block_for' => null, - 'after_commit' => false, - ], + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], - ], + ], - /* + /* |-------------------------------------------------------------------------- | Failed Queue Jobs |-------------------------------------------------------------------------- @@ -92,10 +92,10 @@ | */ - 'failed' => [ - 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), - 'database' => env('DB_CONNECTION', 'mysql'), - 'table' => 'failed_jobs', - ], + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], - ]; +]; diff --git a/config/services.php b/config/services.php index d8c8d6364c..46c3a7356d 100644 --- a/config/services.php +++ b/config/services.php @@ -1,16 +1,8 @@ [ - 'domain' => env('MAILGUN_DOMAIN'), - 'secret' => env('MAILGUN_SECRET'), - 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), - ], + 'mailgun' => [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], - 'postmark' => [ - 'token' => env('POSTMARK_TOKEN'), - ], + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], - 'ses' => [ - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - ], + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], - ]; +]; diff --git a/config/session.php b/config/session.php index 1d8ef58133..c2a09d1f11 100644 --- a/config/session.php +++ b/config/session.php @@ -80,7 +80,7 @@ return [ | */ - 'connection' => env('SESSION_CONNECTION', null), + 'connection' => env('SESSION_CONNECTION'), /* |-------------------------------------------------------------------------- @@ -108,7 +108,7 @@ return [ | */ - 'store' => env('SESSION_STORE', null), + 'store' => env('SESSION_STORE'), /* |-------------------------------------------------------------------------- @@ -163,7 +163,7 @@ return [ | */ - 'domain' => env('SESSION_DOMAIN', null), + 'domain' => env('SESSION_DOMAIN'), /* |-------------------------------------------------------------------------- diff --git a/config/vue-i18n-generator.php b/config/vue-i18n-generator.php index b3bb089549..ea7447597c 100644 --- a/config/vue-i18n-generator.php +++ b/config/vue-i18n-generator.php @@ -11,7 +11,7 @@ return [ | */ - 'langPath' => '/resources/lang', + 'langPath' => '/lang', /* |-------------------------------------------------------------------------- diff --git a/database/factories/AlertScheduleFactory.php b/database/factories/AlertScheduleFactory.php index 5026957fef..cc39710d84 100644 --- a/database/factories/AlertScheduleFactory.php +++ b/database/factories/AlertScheduleFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class AlertScheduleFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = AlertSchedule::class; - /** * Define the model's default state. * diff --git a/database/factories/AlertTransportFactory.php b/database/factories/AlertTransportFactory.php index b60a92bda9..279ba5ced0 100644 --- a/database/factories/AlertTransportFactory.php +++ b/database/factories/AlertTransportFactory.php @@ -2,14 +2,11 @@ namespace Database\Factories; -use App\Models\AlertTransport; use Illuminate\Database\Eloquent\Factories\Factory; use LibreNMS\Alert\Transport; class AlertTransportFactory extends Factory { - protected $model = AlertTransport::class; - public function definition(): array { return [ diff --git a/database/factories/BgpPeerFactory.php b/database/factories/BgpPeerFactory.php index c0aeee19ab..4ad1742617 100644 --- a/database/factories/BgpPeerFactory.php +++ b/database/factories/BgpPeerFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class BgpPeerFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = BgpPeer::class; - /** * Define the model's default state. * diff --git a/database/factories/BillFactory.php b/database/factories/BillFactory.php index e3d23b0b67..b591ffdc2e 100644 --- a/database/factories/BillFactory.php +++ b/database/factories/BillFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class BillFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Bill::class; - /** * Define the model's default state. * diff --git a/database/factories/ComponentFactory.php b/database/factories/ComponentFactory.php index 613a3b0b57..3b547963c0 100644 --- a/database/factories/ComponentFactory.php +++ b/database/factories/ComponentFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class ComponentFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Component::class; - /** * Define the model's default state. * diff --git a/database/factories/DeviceFactory.php b/database/factories/DeviceFactory.php index 44307f6b4d..721a1cc4bc 100644 --- a/database/factories/DeviceFactory.php +++ b/database/factories/DeviceFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class DeviceFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Device::class; - /** * Define the model's default state. * diff --git a/database/factories/DeviceGroupFactory.php b/database/factories/DeviceGroupFactory.php index a845d1ae86..58dbd1b72b 100644 --- a/database/factories/DeviceGroupFactory.php +++ b/database/factories/DeviceGroupFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class DeviceGroupFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = DeviceGroup::class; - /** * Define the model's default state. * diff --git a/database/factories/Ipv4AddressFactory.php b/database/factories/Ipv4AddressFactory.php index 13da621b2f..68ce90d39c 100644 --- a/database/factories/Ipv4AddressFactory.php +++ b/database/factories/Ipv4AddressFactory.php @@ -11,13 +11,6 @@ use LibreNMS\Util\IPv4; /** @extends Factory */ class Ipv4AddressFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Ipv4Address::class; - /** * Define the model's default state. * diff --git a/database/factories/Ipv4NetworkFactory.php b/database/factories/Ipv4NetworkFactory.php index 922920efce..1f18e381c8 100644 --- a/database/factories/Ipv4NetworkFactory.php +++ b/database/factories/Ipv4NetworkFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class Ipv4NetworkFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Ipv4Network::class; - /** * Define the model's default state. * diff --git a/database/factories/LocationFactory.php b/database/factories/LocationFactory.php index 1f9ab29ba9..3ac9302579 100644 --- a/database/factories/LocationFactory.php +++ b/database/factories/LocationFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class LocationFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Location::class; - /** * Define the model's default state. * diff --git a/database/factories/OspfNbrFactory.php b/database/factories/OspfNbrFactory.php index 6bbc33c971..5694d377ab 100644 --- a/database/factories/OspfNbrFactory.php +++ b/database/factories/OspfNbrFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class OspfNbrFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = OspfNbr::class; - /** * Define the model's default state. * diff --git a/database/factories/OspfPortFactory.php b/database/factories/OspfPortFactory.php index 3412464365..33260a3f9a 100644 --- a/database/factories/OspfPortFactory.php +++ b/database/factories/OspfPortFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class OspfPortFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = OspfPort::class; - /** * Define the model's default state. * diff --git a/database/factories/PortFactory.php b/database/factories/PortFactory.php index a7f1628e43..8d68a2fe4e 100644 --- a/database/factories/PortFactory.php +++ b/database/factories/PortFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class PortFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Port::class; - /** * Define the model's default state. * diff --git a/database/factories/SensorFactory.php b/database/factories/SensorFactory.php index 6d15fdfb3e..4a6d5a7718 100644 --- a/database/factories/SensorFactory.php +++ b/database/factories/SensorFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class SensorFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Sensor::class; - /** * Define the model's default state. * diff --git a/database/factories/SyslogFactory.php b/database/factories/SyslogFactory.php index 8ac282824e..151305f864 100644 --- a/database/factories/SyslogFactory.php +++ b/database/factories/SyslogFactory.php @@ -10,13 +10,6 @@ use LibreNMS\Enum\SyslogSeverity; /** @extends Factory */ class SyslogFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Syslog::class; - /** * Define the model's default state. * diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 3d4fc8b18b..bdc9d98878 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -8,13 +8,6 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** @extends Factory */ class UserFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = User::class; - /** * Define the model's default state. * diff --git a/database/factories/VminfoFactory.php b/database/factories/VminfoFactory.php index bbdcbace89..04fc857a14 100644 --- a/database/factories/VminfoFactory.php +++ b/database/factories/VminfoFactory.php @@ -9,13 +9,6 @@ use LibreNMS\Enum\PowerState; /** @extends Factory */ class VminfoFactory extends Factory { - /** - * The name of the factory's corresponding model. - * - * @var string - */ - protected $model = Vminfo::class; - /** * Define the model's default state. * diff --git a/database/migrations/2019_07_09_150217_update_users_widgets_settings.php b/database/migrations/2019_07_09_150217_update_users_widgets_settings.php index 7e7ac07f30..c1c084be43 100644 --- a/database/migrations/2019_07_09_150217_update_users_widgets_settings.php +++ b/database/migrations/2019_07_09_150217_update_users_widgets_settings.php @@ -12,6 +12,7 @@ class UpdateUsersWidgetsSettings extends Migration */ public function up() { + /** @phpstan-ignore-next-line */ $widgets = UserWidget::where('widget_id', 1)->get(); foreach ($widgets as $widget) { $settings = $widget->settings; @@ -31,6 +32,7 @@ class UpdateUsersWidgetsSettings extends Migration */ public function down() { + /** @phpstan-ignore-next-line */ $widgets = UserWidget::where('widget_id', 1)->get(); foreach ($widgets as $widget) { $settings = $widget->settings; diff --git a/doc/Developing/os/Health-Information.md b/doc/Developing/os/Health-Information.md index 35eb967f1b..4d9fca2187 100644 --- a/doc/Developing/os/Health-Information.md +++ b/doc/Developing/os/Health-Information.md @@ -304,7 +304,7 @@ entry for the sensor class. - `includes/html/pages/device/overview.inc.php`: add `require 'overview/sensors/$class.inc.php'` in the desired order for the device overview page. - `includes/html/pages/health.inc.php`: add a $type_text[] entry for the sensor class. -- `resources/lang/en/sensors.php`: add human-readable names and units for the sensor class +- `lang/en/sensors.php`: add human-readable names and units for the sensor class in English, feel free to do so for other languages as well. Create and populate new files for the sensor class in the following places: @@ -316,7 +316,7 @@ files are stored. Not used for yaml discovery. - `includes/html/pages/device/overview.inc.php`: add `require 'overview/sensors/$class.inc.php'` in the desired order for the device overview page. - `includes/html/pages/health.inc.php`: add a $type_text[] entry for the sensor class. -- `resources/lang/en/sensors.php`: add human-readable names and units for the sensor class in English, feel +- `lang/en/sensors.php`: add human-readable names and units for the sensor class in English, feel free to do so for other languages as well. Create and populate new files for the sensor class in the following places: diff --git a/includes/html/pages/device/edit/modules.inc.php b/includes/html/pages/device/edit/modules.inc.php index 8a748eb069..d9a9579a12 100644 --- a/includes/html/pages/device/edit/modules.inc.php +++ b/includes/html/pages/device/edit/modules.inc.php @@ -21,7 +21,7 @@ use LibreNMS\Config; $language = \config('app.locale'); -$settings = (include Config::get('install_dir') . '/resources/lang/' . $language . '/settings.php')['settings']; +$settings = (include Config::get('install_dir') . '/lang/' . $language . '/settings.php')['settings']; $attribs = get_dev_attribs($device['device_id']); $poller_module_names = $settings['poller_modules']; diff --git a/resources/lang/de.json b/lang/de.json similarity index 100% rename from resources/lang/de.json rename to lang/de.json diff --git a/resources/lang/de/auth.php b/lang/de/auth.php similarity index 100% rename from resources/lang/de/auth.php rename to lang/de/auth.php diff --git a/resources/lang/de/commands.php b/lang/de/commands.php similarity index 100% rename from resources/lang/de/commands.php rename to lang/de/commands.php diff --git a/resources/lang/de/pagination.php b/lang/de/pagination.php similarity index 100% rename from resources/lang/de/pagination.php rename to lang/de/pagination.php diff --git a/resources/lang/de/passwords.php b/lang/de/passwords.php similarity index 100% rename from resources/lang/de/passwords.php rename to lang/de/passwords.php diff --git a/resources/lang/de/preferences.php b/lang/de/preferences.php similarity index 100% rename from resources/lang/de/preferences.php rename to lang/de/preferences.php diff --git a/resources/lang/de/sensors.php b/lang/de/sensors.php similarity index 100% rename from resources/lang/de/sensors.php rename to lang/de/sensors.php diff --git a/resources/lang/de/settings.php b/lang/de/settings.php similarity index 100% rename from resources/lang/de/settings.php rename to lang/de/settings.php diff --git a/resources/lang/de/syslog.php b/lang/de/syslog.php similarity index 100% rename from resources/lang/de/syslog.php rename to lang/de/syslog.php diff --git a/resources/lang/de/validation.php b/lang/de/validation.php similarity index 100% rename from resources/lang/de/validation.php rename to lang/de/validation.php diff --git a/resources/lang/de/wireless.php b/lang/de/wireless.php similarity index 100% rename from resources/lang/de/wireless.php rename to lang/de/wireless.php diff --git a/resources/lang/en/auth.php b/lang/en/auth.php similarity index 92% rename from resources/lang/en/auth.php rename to lang/en/auth.php index 319ab33c4e..102d2be816 100644 --- a/resources/lang/en/auth.php +++ b/lang/en/auth.php @@ -15,6 +15,7 @@ return [ 'title' => 'Auth', 'failed' => 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 'disabled' => 'Your Account is disabled, please contact Admin.', ]; diff --git a/resources/lang/en/bgp.php b/lang/en/bgp.php similarity index 100% rename from resources/lang/en/bgp.php rename to lang/en/bgp.php diff --git a/resources/lang/en/commands.php b/lang/en/commands.php similarity index 100% rename from resources/lang/en/commands.php rename to lang/en/commands.php diff --git a/resources/lang/en/components.php b/lang/en/components.php similarity index 100% rename from resources/lang/en/components.php rename to lang/en/components.php diff --git a/resources/lang/en/device.php b/lang/en/device.php similarity index 100% rename from resources/lang/en/device.php rename to lang/en/device.php diff --git a/resources/lang/en/exceptions.php b/lang/en/exceptions.php similarity index 100% rename from resources/lang/en/exceptions.php rename to lang/en/exceptions.php diff --git a/resources/lang/en/install.php b/lang/en/install.php similarity index 100% rename from resources/lang/en/install.php rename to lang/en/install.php diff --git a/resources/lang/en/modules.php b/lang/en/modules.php similarity index 100% rename from resources/lang/en/modules.php rename to lang/en/modules.php diff --git a/resources/lang/en/pagination.php b/lang/en/pagination.php similarity index 100% rename from resources/lang/en/pagination.php rename to lang/en/pagination.php diff --git a/resources/lang/en/passwords.php b/lang/en/passwords.php similarity index 100% rename from resources/lang/en/passwords.php rename to lang/en/passwords.php diff --git a/resources/lang/en/plugins.php b/lang/en/plugins.php similarity index 100% rename from resources/lang/en/plugins.php rename to lang/en/plugins.php diff --git a/resources/lang/en/poller.php b/lang/en/poller.php similarity index 100% rename from resources/lang/en/poller.php rename to lang/en/poller.php diff --git a/resources/lang/en/port.php b/lang/en/port.php similarity index 100% rename from resources/lang/en/port.php rename to lang/en/port.php diff --git a/resources/lang/en/preferences.php b/lang/en/preferences.php similarity index 100% rename from resources/lang/en/preferences.php rename to lang/en/preferences.php diff --git a/resources/lang/en/sensors.php b/lang/en/sensors.php similarity index 100% rename from resources/lang/en/sensors.php rename to lang/en/sensors.php diff --git a/resources/lang/en/settings.php b/lang/en/settings.php similarity index 100% rename from resources/lang/en/settings.php rename to lang/en/settings.php diff --git a/resources/lang/en/smokeping.php b/lang/en/smokeping.php similarity index 100% rename from resources/lang/en/smokeping.php rename to lang/en/smokeping.php diff --git a/resources/lang/en/stp.php b/lang/en/stp.php similarity index 100% rename from resources/lang/en/stp.php rename to lang/en/stp.php diff --git a/resources/lang/en/syslog.php b/lang/en/syslog.php similarity index 100% rename from resources/lang/en/syslog.php rename to lang/en/syslog.php diff --git a/resources/lang/en/validation.php b/lang/en/validation.php similarity index 90% rename from resources/lang/en/validation.php rename to lang/en/validation.php index 4683c69567..9e5da170c2 100644 --- a/resources/lang/en/validation.php +++ b/lang/en/validation.php @@ -21,15 +21,14 @@ return [ 'alpha' => 'The :attribute must only contain letters.', 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', 'alpha_num' => 'The :attribute must only contain letters and numbers.', - 'alpha_space' => 'The :attribute may only contain letters, numbers, underscores and spaces.', 'array' => 'The :attribute must be an array.', 'before' => 'The :attribute must be a date before :date.', 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', 'between' => [ - 'numeric' => 'The :attribute must be between :min and :max.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'string' => 'The :attribute must be between :min and :max characters.', 'array' => 'The :attribute must have between :min and :max items.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute must be between :min and :max.', + 'string' => 'The :attribute must be between :min and :max characters.', ], 'boolean' => 'The :attribute field must be true or false.', 'confirmed' => 'The :attribute confirmation does not match.', @@ -37,89 +36,102 @@ return [ 'date' => 'The :attribute is not a valid date.', 'date_equals' => 'The :attribute must be a date equal to :date.', 'date_format' => 'The :attribute does not match the format :format.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', 'different' => 'The :attribute and :other must be different.', 'digits' => 'The :attribute must be :digits digits.', 'digits_between' => 'The :attribute must be between :min and :max digits.', 'dimensions' => 'The :attribute has invalid image dimensions.', 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_end_with' => 'The :attribute may not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute may not start with one of the following: :values.', 'email' => 'The :attribute must be a valid email address.', 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', 'exists' => 'The selected :attribute is invalid.', 'file' => 'The :attribute must be a file.', 'filled' => 'The :attribute field must have a value.', 'gt' => [ - 'numeric' => 'The :attribute must be greater than :value.', - 'file' => 'The :attribute must be greater than :value kilobytes.', - 'string' => 'The :attribute must be greater than :value characters.', 'array' => 'The :attribute must have more than :value items.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'numeric' => 'The :attribute must be greater than :value.', + 'string' => 'The :attribute must be greater than :value characters.', ], 'gte' => [ - 'numeric' => 'The :attribute must be greater than or equal :value.', - 'file' => 'The :attribute must be greater than or equal :value kilobytes.', - 'string' => 'The :attribute must be greater than or equal :value characters.', 'array' => 'The :attribute must have :value items or more.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', ], 'image' => 'The :attribute must be an image.', 'in' => 'The selected :attribute is invalid.', 'in_array' => 'The :attribute field does not exist in :other.', 'integer' => 'The :attribute must be an integer.', 'ip' => 'The :attribute must be a valid IP address.', - 'ip_or_hostname' => 'The :attribute must a valid IP address/network or hostname.', 'ipv4' => 'The :attribute must be a valid IPv4 address.', 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'is_regex' => 'The :attribute is not a valid regular expression', 'json' => 'The :attribute must be a valid JSON string.', - 'keys_in' => 'The :attribute contains invalid keys: :extra. Valid keys: :values', 'lt' => [ - 'numeric' => 'The :attribute must be less than :value.', - 'file' => 'The :attribute must be less than :value kilobytes.', - 'string' => 'The :attribute must be less than :value characters.', 'array' => 'The :attribute must have less than :value items.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'numeric' => 'The :attribute must be less than :value.', + 'string' => 'The :attribute must be less than :value characters.', ], 'lte' => [ - 'numeric' => 'The :attribute must be less than or equal :value.', - 'file' => 'The :attribute must be less than or equal :value kilobytes.', - 'string' => 'The :attribute must be less than or equal :value characters.', 'array' => 'The :attribute must not have more than :value items.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'string' => 'The :attribute must be less than or equal to :value characters.', ], + 'mac_address' => 'The :attribute must be a valid MAC address.', 'max' => [ - 'numeric' => 'The :attribute must not be greater than :max.', - 'file' => 'The :attribute must not be greater than :max kilobytes.', - 'string' => 'The :attribute must not be greater than :max characters.', 'array' => 'The :attribute must not have more than :max items.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute must not be greater than :max.', + 'string' => 'The :attribute must not be greater than :max characters.', ], + 'max_digits' => 'The :attribute must not have more than :max digits.', 'mimes' => 'The :attribute must be a file of type: :values.', 'mimetypes' => 'The :attribute must be a file of type: :values.', 'min' => [ - 'numeric' => 'The :attribute must be at least :min.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'string' => 'The :attribute must be at least :min characters.', 'array' => 'The :attribute must have at least :min items.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'numeric' => 'The :attribute must be at least :min.', + 'string' => 'The :attribute must be at least :min characters.', ], + 'min_digits' => 'The :attribute must have at least :min digits.', 'multiple_of' => 'The :attribute must be a multiple of :value.', 'not_in' => 'The selected :attribute is invalid.', 'not_regex' => 'The :attribute format is invalid.', 'numeric' => 'The :attribute must be a number.', - 'password' => 'The password is incorrect.', + 'password' => [ + 'letters' => 'The :attribute must contain at least one letter.', + 'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute must contain at least one number.', + 'symbols' => 'The :attribute must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', 'regex' => 'The :attribute format is invalid.', 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', 'required_unless' => 'The :attribute field is required unless :other is in :values.', 'required_with' => 'The :attribute field is required when :values is present.', 'required_with_all' => 'The :attribute field is required when :values are present.', 'required_without' => 'The :attribute field is required when :values is not present.', 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'prohibited' => 'The :attribute field is prohibited.', - 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', - 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', - 'prohibits' => 'The :attribute field prohibits :other from being present.', 'same' => 'The :attribute and :other must match.', 'size' => [ - 'numeric' => 'The :attribute must be :size.', - 'file' => 'The :attribute must be :size kilobytes.', - 'string' => 'The :attribute must be :size characters.', 'array' => 'The :attribute must contain :size items.', + 'file' => 'The :attribute must be :size kilobytes.', + 'numeric' => 'The :attribute must be :size.', + 'string' => 'The :attribute must be :size characters.', ], 'starts_with' => 'The :attribute must start with one of the following: :values.', 'string' => 'The :attribute must be a string.', @@ -129,6 +141,12 @@ return [ 'url' => 'The :attribute must be a valid URL.', 'uuid' => 'The :attribute must be a valid UUID.', + // Librenms specific + 'alpha_space' => 'The :attribute may only contain letters, numbers, underscores and spaces.', + 'ip_or_hostname' => 'The :attribute must a valid IP address/network or hostname.', + 'is_regex' => 'The :attribute is not a valid regular expression', + 'keys_in' => 'The :attribute contains invalid keys: :extra. Valid keys: :values', + /* |-------------------------------------------------------------------------- | Custom Validation Language Lines diff --git a/resources/lang/en/widgets.php b/lang/en/widgets.php similarity index 100% rename from resources/lang/en/widgets.php rename to lang/en/widgets.php diff --git a/resources/lang/en/wireless.php b/lang/en/wireless.php similarity index 100% rename from resources/lang/en/wireless.php rename to lang/en/wireless.php diff --git a/resources/lang/fr.json b/lang/fr.json similarity index 100% rename from resources/lang/fr.json rename to lang/fr.json diff --git a/resources/lang/fr/auth.php b/lang/fr/auth.php similarity index 100% rename from resources/lang/fr/auth.php rename to lang/fr/auth.php diff --git a/resources/lang/fr/commands.php b/lang/fr/commands.php similarity index 100% rename from resources/lang/fr/commands.php rename to lang/fr/commands.php diff --git a/resources/lang/fr/pagination.php b/lang/fr/pagination.php similarity index 100% rename from resources/lang/fr/pagination.php rename to lang/fr/pagination.php diff --git a/resources/lang/fr/passwords.php b/lang/fr/passwords.php similarity index 100% rename from resources/lang/fr/passwords.php rename to lang/fr/passwords.php diff --git a/resources/lang/fr/preferences.php b/lang/fr/preferences.php similarity index 100% rename from resources/lang/fr/preferences.php rename to lang/fr/preferences.php diff --git a/resources/lang/fr/sensors.php b/lang/fr/sensors.php similarity index 100% rename from resources/lang/fr/sensors.php rename to lang/fr/sensors.php diff --git a/resources/lang/fr/settings.php b/lang/fr/settings.php similarity index 100% rename from resources/lang/fr/settings.php rename to lang/fr/settings.php diff --git a/resources/lang/fr/validation.php b/lang/fr/validation.php similarity index 100% rename from resources/lang/fr/validation.php rename to lang/fr/validation.php diff --git a/resources/lang/fr/wireless.php b/lang/fr/wireless.php similarity index 100% rename from resources/lang/fr/wireless.php rename to lang/fr/wireless.php diff --git a/resources/lang/it.json b/lang/it.json similarity index 100% rename from resources/lang/it.json rename to lang/it.json diff --git a/resources/lang/it/auth.php b/lang/it/auth.php similarity index 100% rename from resources/lang/it/auth.php rename to lang/it/auth.php diff --git a/resources/lang/it/bgp.php b/lang/it/bgp.php similarity index 100% rename from resources/lang/it/bgp.php rename to lang/it/bgp.php diff --git a/resources/lang/it/commands.php b/lang/it/commands.php similarity index 100% rename from resources/lang/it/commands.php rename to lang/it/commands.php diff --git a/resources/lang/it/components.php b/lang/it/components.php similarity index 100% rename from resources/lang/it/components.php rename to lang/it/components.php diff --git a/resources/lang/it/device.php b/lang/it/device.php similarity index 100% rename from resources/lang/it/device.php rename to lang/it/device.php diff --git a/resources/lang/it/exceptions.php b/lang/it/exceptions.php similarity index 100% rename from resources/lang/it/exceptions.php rename to lang/it/exceptions.php diff --git a/resources/lang/it/install.php b/lang/it/install.php similarity index 100% rename from resources/lang/it/install.php rename to lang/it/install.php diff --git a/resources/lang/it/pagination.php b/lang/it/pagination.php similarity index 100% rename from resources/lang/it/pagination.php rename to lang/it/pagination.php diff --git a/resources/lang/it/passwords.php b/lang/it/passwords.php similarity index 100% rename from resources/lang/it/passwords.php rename to lang/it/passwords.php diff --git a/resources/lang/it/plugins.php b/lang/it/plugins.php similarity index 100% rename from resources/lang/it/plugins.php rename to lang/it/plugins.php diff --git a/resources/lang/it/poller.php b/lang/it/poller.php similarity index 100% rename from resources/lang/it/poller.php rename to lang/it/poller.php diff --git a/resources/lang/it/port.php b/lang/it/port.php similarity index 100% rename from resources/lang/it/port.php rename to lang/it/port.php diff --git a/resources/lang/it/preferences.php b/lang/it/preferences.php similarity index 100% rename from resources/lang/it/preferences.php rename to lang/it/preferences.php diff --git a/resources/lang/it/sensors.php b/lang/it/sensors.php similarity index 100% rename from resources/lang/it/sensors.php rename to lang/it/sensors.php diff --git a/resources/lang/it/settings.php b/lang/it/settings.php similarity index 100% rename from resources/lang/it/settings.php rename to lang/it/settings.php diff --git a/resources/lang/it/smokeping.php b/lang/it/smokeping.php similarity index 100% rename from resources/lang/it/smokeping.php rename to lang/it/smokeping.php diff --git a/resources/lang/it/stp.php b/lang/it/stp.php similarity index 100% rename from resources/lang/it/stp.php rename to lang/it/stp.php diff --git a/resources/lang/it/validation.php b/lang/it/validation.php similarity index 100% rename from resources/lang/it/validation.php rename to lang/it/validation.php diff --git a/resources/lang/it/wireless.php b/lang/it/wireless.php similarity index 100% rename from resources/lang/it/wireless.php rename to lang/it/wireless.php diff --git a/resources/lang/ru.json b/lang/ru.json similarity index 100% rename from resources/lang/ru.json rename to lang/ru.json diff --git a/resources/lang/ru/auth.php b/lang/ru/auth.php similarity index 100% rename from resources/lang/ru/auth.php rename to lang/ru/auth.php diff --git a/resources/lang/ru/commands.php b/lang/ru/commands.php similarity index 100% rename from resources/lang/ru/commands.php rename to lang/ru/commands.php diff --git a/resources/lang/ru/pagination.php b/lang/ru/pagination.php similarity index 100% rename from resources/lang/ru/pagination.php rename to lang/ru/pagination.php diff --git a/resources/lang/ru/passwords.php b/lang/ru/passwords.php similarity index 100% rename from resources/lang/ru/passwords.php rename to lang/ru/passwords.php diff --git a/resources/lang/ru/preferences.php b/lang/ru/preferences.php similarity index 100% rename from resources/lang/ru/preferences.php rename to lang/ru/preferences.php diff --git a/resources/lang/ru/validation.php b/lang/ru/validation.php similarity index 100% rename from resources/lang/ru/validation.php rename to lang/ru/validation.php diff --git a/resources/lang/sr.json b/lang/sr.json similarity index 100% rename from resources/lang/sr.json rename to lang/sr.json diff --git a/resources/lang/sr/auth.php b/lang/sr/auth.php similarity index 100% rename from resources/lang/sr/auth.php rename to lang/sr/auth.php diff --git a/resources/lang/sr/components.php b/lang/sr/components.php similarity index 100% rename from resources/lang/sr/components.php rename to lang/sr/components.php diff --git a/resources/lang/sr/device.php b/lang/sr/device.php similarity index 100% rename from resources/lang/sr/device.php rename to lang/sr/device.php diff --git a/resources/lang/sr/exceptions.php b/lang/sr/exceptions.php similarity index 100% rename from resources/lang/sr/exceptions.php rename to lang/sr/exceptions.php diff --git a/resources/lang/sr/pagination.php b/lang/sr/pagination.php similarity index 100% rename from resources/lang/sr/pagination.php rename to lang/sr/pagination.php diff --git a/resources/lang/sr/passwords.php b/lang/sr/passwords.php similarity index 100% rename from resources/lang/sr/passwords.php rename to lang/sr/passwords.php diff --git a/resources/lang/sr/plugins.php b/lang/sr/plugins.php similarity index 100% rename from resources/lang/sr/plugins.php rename to lang/sr/plugins.php diff --git a/resources/lang/sr/port.php b/lang/sr/port.php similarity index 100% rename from resources/lang/sr/port.php rename to lang/sr/port.php diff --git a/resources/lang/sr/preferences.php b/lang/sr/preferences.php similarity index 100% rename from resources/lang/sr/preferences.php rename to lang/sr/preferences.php diff --git a/resources/lang/sr/sensors.php b/lang/sr/sensors.php similarity index 100% rename from resources/lang/sr/sensors.php rename to lang/sr/sensors.php diff --git a/resources/lang/sr/widgets.php b/lang/sr/widgets.php similarity index 100% rename from resources/lang/sr/widgets.php rename to lang/sr/widgets.php diff --git a/resources/lang/sr/wireless.php b/lang/sr/wireless.php similarity index 100% rename from resources/lang/sr/wireless.php rename to lang/sr/wireless.php diff --git a/resources/lang/uk.json b/lang/uk.json similarity index 100% rename from resources/lang/uk.json rename to lang/uk.json diff --git a/resources/lang/uk/auth.php b/lang/uk/auth.php similarity index 100% rename from resources/lang/uk/auth.php rename to lang/uk/auth.php diff --git a/resources/lang/uk/commands.php b/lang/uk/commands.php similarity index 100% rename from resources/lang/uk/commands.php rename to lang/uk/commands.php diff --git a/resources/lang/uk/components.php b/lang/uk/components.php similarity index 100% rename from resources/lang/uk/components.php rename to lang/uk/components.php diff --git a/resources/lang/uk/device.php b/lang/uk/device.php similarity index 100% rename from resources/lang/uk/device.php rename to lang/uk/device.php diff --git a/resources/lang/uk/exceptions.php b/lang/uk/exceptions.php similarity index 100% rename from resources/lang/uk/exceptions.php rename to lang/uk/exceptions.php diff --git a/resources/lang/uk/install.php b/lang/uk/install.php similarity index 100% rename from resources/lang/uk/install.php rename to lang/uk/install.php diff --git a/resources/lang/uk/modules.php b/lang/uk/modules.php similarity index 100% rename from resources/lang/uk/modules.php rename to lang/uk/modules.php diff --git a/resources/lang/uk/pagination.php b/lang/uk/pagination.php similarity index 100% rename from resources/lang/uk/pagination.php rename to lang/uk/pagination.php diff --git a/resources/lang/uk/passwords.php b/lang/uk/passwords.php similarity index 100% rename from resources/lang/uk/passwords.php rename to lang/uk/passwords.php diff --git a/resources/lang/uk/plugins.php b/lang/uk/plugins.php similarity index 100% rename from resources/lang/uk/plugins.php rename to lang/uk/plugins.php diff --git a/resources/lang/uk/poller.php b/lang/uk/poller.php similarity index 100% rename from resources/lang/uk/poller.php rename to lang/uk/poller.php diff --git a/resources/lang/uk/port.php b/lang/uk/port.php similarity index 100% rename from resources/lang/uk/port.php rename to lang/uk/port.php diff --git a/resources/lang/uk/preferences.php b/lang/uk/preferences.php similarity index 100% rename from resources/lang/uk/preferences.php rename to lang/uk/preferences.php diff --git a/resources/lang/uk/sensors.php b/lang/uk/sensors.php similarity index 100% rename from resources/lang/uk/sensors.php rename to lang/uk/sensors.php diff --git a/resources/lang/uk/settings.php b/lang/uk/settings.php similarity index 100% rename from resources/lang/uk/settings.php rename to lang/uk/settings.php diff --git a/resources/lang/uk/smokeping.php b/lang/uk/smokeping.php similarity index 100% rename from resources/lang/uk/smokeping.php rename to lang/uk/smokeping.php diff --git a/resources/lang/uk/stp.php b/lang/uk/stp.php similarity index 100% rename from resources/lang/uk/stp.php rename to lang/uk/stp.php diff --git a/resources/lang/uk/syslog.php b/lang/uk/syslog.php similarity index 100% rename from resources/lang/uk/syslog.php rename to lang/uk/syslog.php diff --git a/resources/lang/uk/validation.php b/lang/uk/validation.php similarity index 100% rename from resources/lang/uk/validation.php rename to lang/uk/validation.php diff --git a/resources/lang/uk/wireless.php b/lang/uk/wireless.php similarity index 100% rename from resources/lang/uk/wireless.php rename to lang/uk/wireless.php diff --git a/resources/lang/zh-CN.json b/lang/zh-CN.json similarity index 100% rename from resources/lang/zh-CN.json rename to lang/zh-CN.json diff --git a/resources/lang/zh-CN/auth.php b/lang/zh-CN/auth.php similarity index 100% rename from resources/lang/zh-CN/auth.php rename to lang/zh-CN/auth.php diff --git a/resources/lang/zh-CN/commands.php b/lang/zh-CN/commands.php similarity index 100% rename from resources/lang/zh-CN/commands.php rename to lang/zh-CN/commands.php diff --git a/resources/lang/zh-CN/pagination.php b/lang/zh-CN/pagination.php similarity index 100% rename from resources/lang/zh-CN/pagination.php rename to lang/zh-CN/pagination.php diff --git a/resources/lang/zh-CN/passwords.php b/lang/zh-CN/passwords.php similarity index 100% rename from resources/lang/zh-CN/passwords.php rename to lang/zh-CN/passwords.php diff --git a/resources/lang/zh-CN/preferences.php b/lang/zh-CN/preferences.php similarity index 100% rename from resources/lang/zh-CN/preferences.php rename to lang/zh-CN/preferences.php diff --git a/resources/lang/zh-CN/sensors.php b/lang/zh-CN/sensors.php similarity index 100% rename from resources/lang/zh-CN/sensors.php rename to lang/zh-CN/sensors.php diff --git a/resources/lang/zh-CN/settings.php b/lang/zh-CN/settings.php similarity index 100% rename from resources/lang/zh-CN/settings.php rename to lang/zh-CN/settings.php diff --git a/resources/lang/zh-CN/syslog.php b/lang/zh-CN/syslog.php similarity index 100% rename from resources/lang/zh-CN/syslog.php rename to lang/zh-CN/syslog.php diff --git a/resources/lang/zh-CN/validation.php b/lang/zh-CN/validation.php similarity index 100% rename from resources/lang/zh-CN/validation.php rename to lang/zh-CN/validation.php diff --git a/resources/lang/zh-CN/wireless.php b/lang/zh-CN/wireless.php similarity index 100% rename from resources/lang/zh-CN/wireless.php rename to lang/zh-CN/wireless.php diff --git a/resources/lang/zh-TW.json b/lang/zh-TW.json similarity index 100% rename from resources/lang/zh-TW.json rename to lang/zh-TW.json diff --git a/resources/lang/zh-TW/auth.php b/lang/zh-TW/auth.php similarity index 100% rename from resources/lang/zh-TW/auth.php rename to lang/zh-TW/auth.php diff --git a/resources/lang/zh-TW/commands.php b/lang/zh-TW/commands.php similarity index 100% rename from resources/lang/zh-TW/commands.php rename to lang/zh-TW/commands.php diff --git a/resources/lang/zh-TW/device.php b/lang/zh-TW/device.php similarity index 100% rename from resources/lang/zh-TW/device.php rename to lang/zh-TW/device.php diff --git a/resources/lang/zh-TW/pagination.php b/lang/zh-TW/pagination.php similarity index 100% rename from resources/lang/zh-TW/pagination.php rename to lang/zh-TW/pagination.php diff --git a/resources/lang/zh-TW/passwords.php b/lang/zh-TW/passwords.php similarity index 100% rename from resources/lang/zh-TW/passwords.php rename to lang/zh-TW/passwords.php diff --git a/resources/lang/zh-TW/poller.php b/lang/zh-TW/poller.php similarity index 100% rename from resources/lang/zh-TW/poller.php rename to lang/zh-TW/poller.php diff --git a/resources/lang/zh-TW/port.php b/lang/zh-TW/port.php similarity index 100% rename from resources/lang/zh-TW/port.php rename to lang/zh-TW/port.php diff --git a/resources/lang/zh-TW/preferences.php b/lang/zh-TW/preferences.php similarity index 100% rename from resources/lang/zh-TW/preferences.php rename to lang/zh-TW/preferences.php diff --git a/resources/lang/zh-TW/sensors.php b/lang/zh-TW/sensors.php similarity index 100% rename from resources/lang/zh-TW/sensors.php rename to lang/zh-TW/sensors.php diff --git a/resources/lang/zh-TW/settings.php b/lang/zh-TW/settings.php similarity index 100% rename from resources/lang/zh-TW/settings.php rename to lang/zh-TW/settings.php diff --git a/resources/lang/zh-TW/smokeping.php b/lang/zh-TW/smokeping.php similarity index 100% rename from resources/lang/zh-TW/smokeping.php rename to lang/zh-TW/smokeping.php diff --git a/resources/lang/zh-TW/syslog.php b/lang/zh-TW/syslog.php similarity index 100% rename from resources/lang/zh-TW/syslog.php rename to lang/zh-TW/syslog.php diff --git a/resources/lang/zh-TW/validation.php b/lang/zh-TW/validation.php similarity index 100% rename from resources/lang/zh-TW/validation.php rename to lang/zh-TW/validation.php diff --git a/resources/lang/zh-TW/widgets.php b/lang/zh-TW/widgets.php similarity index 100% rename from resources/lang/zh-TW/widgets.php rename to lang/zh-TW/widgets.php diff --git a/resources/lang/zh-TW/wireless.php b/lang/zh-TW/wireless.php similarity index 100% rename from resources/lang/zh-TW/wireless.php rename to lang/zh-TW/wireless.php diff --git a/phpstan.neon b/phpstan.neon index 38b6c23589..faac9170eb 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -19,7 +19,9 @@ parameters: scanDirectories: - includes - level: 6 + level: 5 + # TODO: REMOVE ME! + reportUnmatchedIgnoredErrors: false checkMissingIterableValueType: false treatPhpDocTypesAsCertain: false @@ -33,6 +35,8 @@ parameters: checkAlwaysTrueInstanceof: true checkAlwaysTrueStrictComparison: true + checkGenericClassInNonGenericObjectType: false + ignoreErrors: - '#Unsafe usage of new static#' diff --git a/phpunit.xml b/phpunit.xml index 71c06f5bba..7573685a79 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -33,13 +33,13 @@ - - - - - - - + + + + + + + diff --git a/routes/api.php b/routes/api.php index 91914c0ee7..67fa67727d 100644 --- a/routes/api.php +++ b/routes/api.php @@ -11,7 +11,7 @@ | */ -Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function () { +Route::prefix('v0')->namespace('\App\Api\Controllers')->group(function () { Route::get('system', 'LegacyApiController@server_info')->name('server_info'); Route::get('', 'LegacyApiController@show_endpoints'); @@ -37,7 +37,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::get('services', 'LegacyApiController@list_services')->name('list_services'); Route::get('services/{hostname}', 'LegacyApiController@list_services')->name('list_services_device'); - Route::group(['prefix' => 'resources'], function () { + Route::prefix('resources')->group(function () { Route::get('links/{id}', 'LegacyApiController@get_link')->name('get_link'); Route::get('locations', 'LegacyApiController@list_locations')->name('list_locations'); Route::get('ip/addresses', 'LegacyApiController@list_ip_addresses')->name('list_ip_addresses'); @@ -46,7 +46,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::get('ip/networks/{id}/ip', 'LegacyApiController@get_network_ip_addresses')->name('get_network_ip_addresses'); }); - Route::group(['prefix' => 'logs'], function () { + Route::prefix('logs')->group(function () { Route::get('eventlog/{hostname?}', 'LegacyApiController@list_logs')->name('list_eventlog'); Route::get('syslog/{hostname?}', 'LegacyApiController@list_logs')->name('list_syslog'); Route::get('alertlog/{hostname?}', 'LegacyApiController@list_logs')->name('list_alertlog'); @@ -56,7 +56,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function // admin required Route::middleware(['can:admin'])->group(function () { - Route::group(['prefix' => 'devices'], function () { + Route::prefix('devices')->group(function () { Route::post('', 'LegacyApiController@add_device')->name('add_device'); Route::delete('{hostname}', 'LegacyApiController@del_device')->name('del_device'); Route::patch('{hostname}', 'LegacyApiController@update_device')->name('update_device_field'); @@ -67,7 +67,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::post('{hostname}/maintenance', 'LegacyApiController@maintenance_device')->name('maintenance_device'); }); - Route::group(['prefix' => 'devicegroups'], function () { + Route::prefix('devicegroups')->group(function () { Route::post('{name}/maintenance', 'LegacyApiController@maintenance_devicegroup')->name('maintenance_devicegroup'); }); @@ -98,7 +98,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function }); // restricted by access - Route::group(['prefix' => 'devices'], function () { + Route::prefix('devices')->group(function () { Route::get('{hostname}', 'LegacyApiController@get_device')->name('get_device'); Route::get('{hostname}/discover', 'LegacyApiController@trigger_device_discovery')->name('trigger_device_discovery'); Route::get('{hostname}/availability', 'LegacyApiController@device_availability')->name('device_availability'); @@ -124,7 +124,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::get('', 'LegacyApiController@list_devices')->name('list_devices'); }); - Route::group(['prefix' => 'ports'], function () { + Route::prefix('ports')->group(function () { Route::get('{portid}', 'LegacyApiController@get_port_info')->name('get_port_info'); Route::get('{portid}/ip', 'LegacyApiController@get_port_ip_addresses')->name('get_port_ip_info'); Route::get('search/{field}/{search?}', 'LegacyApiController@search_ports')->name('search_ports')->where('search', '.*'); @@ -132,7 +132,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::get('', 'LegacyApiController@get_all_ports')->name('get_all_ports'); }); - Route::group(['prefix' => 'bills'], function () { + Route::prefix('bills')->group(function () { Route::get('', 'LegacyApiController@list_bills')->name('list_bills'); Route::get('{bill_id}', 'LegacyApiController@list_bills')->name('get_bill'); Route::get('{bill_id}/graphs/{graph_type}', 'LegacyApiController@get_bill_graph')->name('get_bill_graph'); @@ -142,14 +142,14 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function Route::get('{bill_id}/history/{bill_hist_id}/graphdata/{graph_type}', 'LegacyApiController@get_bill_history_graphdata')->name('get_bill_history_graphdata'); }); - Route::group(['prefix' => 'routing'], function () { + Route::prefix('routing')->group(function () { Route::get('bgp/cbgp', 'LegacyApiController@list_cbgp')->name('list_cbgp'); Route::get('vrf', 'LegacyApiController@list_vrf')->name('list_vrf'); Route::get('mpls/services', 'LegacyApiController@list_mpls_services')->name('list_mpls_services'); Route::get('mpls/saps', 'LegacyApiController@list_mpls_saps')->name('list_mpls_saps'); }); - Route::group(['prefix' => 'resources'], function () { + Route::prefix('resources')->group(function () { Route::get('fdb', 'LegacyApiController@list_fdb')->name('list_fdb'); Route::get('fdb/{mac}', 'LegacyApiController@list_fdb')->name('list_fdb_mac'); Route::get('links', 'LegacyApiController@list_links')->name('list_links'); diff --git a/routes/web.php b/routes/web.php index b127300842..2e5a62aa28 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,23 +17,23 @@ use Illuminate\Support\Facades\Route; Auth::routes(['register' => false, 'reset' => false, 'verify' => false]); // Socialite -Route::prefix('auth')->name('socialite.')->group(function () { - Route::post('{provider}/redirect', [\App\Http\Controllers\Auth\SocialiteController::class, 'redirect'])->name('redirect'); - Route::match(['get', 'post'], '{provider}/callback', [\App\Http\Controllers\Auth\SocialiteController::class, 'callback'])->name('callback'); - Route::get('{provider}/metadata', [\App\Http\Controllers\Auth\SocialiteController::class, 'metadata'])->name('metadata'); +Route::prefix('auth:web')->name('socialite.')->group(function () { + Route::post('{provider}/redirect', [Auth\SocialiteController::class, 'redirect'])->name('redirect'); + Route::match(['get', 'post'], '{provider}/callback', [Auth\SocialiteController::class, 'callback'])->name('callback'); + Route::get('{provider}/metadata', [Auth\SocialiteController::class, 'metadata'])->name('metadata'); }); -Route::get('graph/{path?}', 'GraphController') +Route::get('graph/{path?}', GraphController::class) ->where('path', '.*') ->middleware(['web', \App\Http\Middleware\AuthenticateGraph::class])->name('graph'); // WebUI -Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { +Route::middleware(['auth'])->group(function () { // pages - Route::post('alert/{alert}/ack', [\App\Http\Controllers\AlertController::class, 'ack'])->name('alert.ack'); + Route::post('alert/{alert}/ack', [AlertController::class, 'ack'])->name('alert.ack'); Route::resource('device-groups', 'DeviceGroupController'); - Route::resource('port', 'PortController', ['only' => 'update']); - Route::group(['prefix' => 'poller'], function () { + Route::resource('port', 'PortController')->only('update'); + Route::prefix('poller')->group(function () { Route::get('', 'PollerController@pollerTab')->name('poller.index'); Route::get('log', 'PollerController@logTab')->name('poller.log'); Route::get('groups', 'PollerController@groupsTab')->name('poller.groups'); @@ -48,7 +48,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { Route::post('templates/remove/{template}', 'ServiceTemplateController@remove')->name('templates.remove'); }); Route::get('locations', 'LocationController@index'); - Route::resource('preferences', 'UserPreferencesController', ['only' => ['index', 'store']]); + Route::resource('preferences', 'UserPreferencesController')->only('index', 'store'); Route::resource('users', 'UserController'); Route::get('about', [\App\Http\Controllers\AboutController::class, 'index'])->name('about'); Route::delete('reporting', [\App\Http\Controllers\AboutController::class, 'clearReportingData'])->name('reporting.clear'); @@ -58,15 +58,15 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { Route::view('vminfo', 'vminfo'); // Device Tabs - Route::group(['prefix' => 'device/{device}', 'namespace' => 'Device\Tabs', 'as' => 'device.'], function () { + Route::prefix('device/{device}')->namespace('Device\Tabs')->name('device.')->group(function () { Route::put('notes', 'NotesController@update')->name('notes.update'); }); Route::match(['get', 'post'], 'device/{device}/{tab?}/{vars?}', 'DeviceController@index') - ->name('device')->where(['vars' => '.*']); + ->name('device')->where('vars', '.*'); // Maps - Route::group(['prefix' => 'maps', 'namespace' => 'Maps'], function () { + Route::prefix('maps')->namespace('Maps')->group(function () { Route::get('devicedependency', 'DeviceDependencyController@dependencyMap'); }); @@ -80,42 +80,42 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { Route::put('dashboard/widgets/{widget}', 'WidgetSettingsController@update')->name('dashboard.widget.settings'); // Push notifications - Route::group(['prefix' => 'push'], function () { - Route::get('token', [\App\Http\Controllers\PushNotificationController::class, 'token'])->name('push.token'); - Route::get('key', [\App\Http\Controllers\PushNotificationController::class, 'key'])->name('push.key'); - Route::post('register', [\App\Http\Controllers\PushNotificationController::class, 'register'])->name('push.register'); - Route::post('unregister', [\App\Http\Controllers\PushNotificationController::class, 'unregister'])->name('push.unregister'); + Route::prefix('push')->group(function () { + Route::get('token', [PushNotificationController::class, 'token'])->name('push.token'); + Route::get('key', [PushNotificationController::class, 'key'])->name('push.key'); + Route::post('register', [PushNotificationController::class, 'register'])->name('push.register'); + Route::post('unregister', [PushNotificationController::class, 'unregister'])->name('push.unregister'); }); // admin pages - Route::group(['middleware' => ['can:admin']], function () { + Route::middleware('can:admin')->group(function () { Route::get('settings/{tab?}/{section?}', 'SettingsController@index')->name('settings'); Route::put('settings/{name}', 'SettingsController@update')->name('settings.update'); Route::delete('settings/{name}', 'SettingsController@destroy')->name('settings.destroy'); - Route::post('alert/transports/{transport}/test', [\App\Http\Controllers\AlertTransportController::class, 'test'])->name('alert.transports.test'); + Route::post('alert/transports/{transport}/test', [AlertTransportController::class, 'test'])->name('alert.transports.test'); - Route::get('plugin/settings', 'PluginAdminController')->name('plugin.admin'); - Route::get('plugin/settings/{plugin:plugin_name}', 'PluginSettingsController')->name('plugin.settings'); + Route::get('plugin/settings', PluginAdminController::class)->name('plugin.admin'); + Route::get('plugin/settings/{plugin:plugin_name}', PluginSettingsController::class)->name('plugin.settings'); Route::post('plugin/settings/{plugin:plugin_name}', 'PluginSettingsController@update')->name('plugin.update'); Route::resource('port-groups', 'PortGroupController'); - Route::get('validate', [\App\Http\Controllers\ValidateController::class, 'index'])->name('validate'); - Route::get('validate/results', [\App\Http\Controllers\ValidateController::class, 'runValidation'])->name('validate.results'); - Route::post('validate/fix', [\App\Http\Controllers\ValidateController::class, 'runFixer'])->name('validate.fix'); + Route::get('validate', [ValidateController::class, 'index'])->name('validate'); + Route::get('validate/results', [ValidateController::class, 'runValidation'])->name('validate.results'); + Route::post('validate/fix', [ValidateController::class, 'runFixer'])->name('validate.fix'); }); Route::get('plugin', 'PluginLegacyController@redirect'); Route::redirect('plugin/view=admin', '/plugin/admin'); Route::get('plugin/p={pluginName}', 'PluginLegacyController@redirect'); - Route::any('plugin/v1/{plugin:plugin_name}/{other?}', 'PluginLegacyController')->where('other', '(.*)')->name('plugin.legacy'); - Route::get('plugin/{plugin:plugin_name}', 'PluginPageController')->name('plugin.page'); + Route::any('plugin/v1/{plugin:plugin_name}/{other?}', PluginLegacyController::class)->where('other', '(.*)')->name('plugin.legacy'); + Route::get('plugin/{plugin:plugin_name}', PluginPageController::class)->name('plugin.page'); // old route redirects Route::permanentRedirect('poll-log', 'poller/log'); // Two Factor Auth - Route::group(['prefix' => '2fa', 'namespace' => 'Auth'], function () { + Route::prefix('2fa')->namespace('Auth')->group(function () { Route::get('', 'TwoFactorController@showTwoFactorForm')->name('2fa.form'); Route::post('', 'TwoFactorController@verifyTwoFactor')->name('2fa.verify'); Route::post('add', 'TwoFactorController@create')->name('2fa.add'); @@ -127,15 +127,15 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { }); // Ajax routes - Route::group(['prefix' => 'ajax'], function () { + Route::prefix('ajax')->group(function () { // page ajax controllers - Route::resource('location', 'LocationController', ['only' => ['update', 'destroy']]); - Route::resource('pollergroup', 'PollerGroupController', ['only' => ['destroy']]); + Route::resource('location', 'LocationController')->only('update', 'destroy'); + Route::resource('pollergroup', 'PollerGroupController')->only('destroy'); // misc ajax controllers - Route::group(['namespace' => 'Ajax'], function () { - Route::get('search/bgp', 'BgpSearchController'); - Route::get('search/device', 'DeviceSearchController'); - Route::get('search/port', 'PortSearchController'); + Route::namespace('Ajax')->group(function () { + Route::get('search/bgp', BgpSearchController::class); + Route::get('search/device', DeviceSearchController::class); + Route::get('search/port', PortSearchController::class); Route::post('set_map_group', 'AvailabilityMapController@setGroup'); Route::post('set_map_view', 'AvailabilityMapController@setView'); Route::post('set_resolution', 'ResolutionController@set'); @@ -147,7 +147,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { Route::get('settings/list', 'SettingsController@listAll')->name('settings.list'); // js select2 data controllers - Route::group(['prefix' => 'select', 'namespace' => 'Select'], function () { + Route::prefix('select')->namespace('Select')->group(function () { Route::get('application', 'ApplicationController')->name('ajax.select.application'); Route::get('bill', 'BillController')->name('ajax.select.bill'); Route::get('dashboard', 'DashboardController')->name('ajax.select.dashboard'); @@ -170,7 +170,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { }); // jquery bootgrid data controllers - Route::group(['prefix' => 'table', 'namespace' => 'Table'], function () { + Route::prefix('table')->namespace('Table')->group(function () { Route::post('alert-schedule', 'AlertScheduleController'); Route::post('customers', 'CustomersController'); Route::post('device', 'DeviceController'); @@ -190,7 +190,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { }); // dashboard widgets - Route::group(['prefix' => 'dash', 'namespace' => 'Widgets'], function () { + Route::prefix('dash')->namespace('Widgets')->group(function () { Route::post('alerts', 'AlertsController'); Route::post('alertlog', 'AlertlogController'); Route::post('availability-map', 'AvailabilityMapController'); @@ -220,7 +220,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { }); // installation routes -Route::group(['prefix' => 'install', 'namespace' => 'Install'], function () { +Route::prefix('install')->namespace('Install')->group(function () { Route::get('/', 'InstallationController@redirectToFirst')->name('install'); Route::get('/checks', 'ChecksController@index')->name('install.checks'); Route::get('/database', 'DatabaseController@index')->name('install.database'); diff --git a/server.php b/server.php deleted file mode 100644 index 12e93cda53..0000000000 --- a/server.php +++ /dev/null @@ -1,19 +0,0 @@ - - */ -$uri = urldecode( - parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) -); - -// This file allows us to emulate Apache's "mod_rewrite" functionality from the -// built-in PHP web server. This provides a convenient way to test a Laravel -// application without having installed a "real" web server software here. -if ($uri !== '/' && file_exists(__DIR__ . '/html' . $uri)) { - return false; -} - -require_once __DIR__ . '/html/index.php'; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index b752debb83..ed13c14aff 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -38,7 +38,9 @@ ini_set('display_errors', '1'); $snmpsim = new Snmpsim('127.1.6.2', 1162, null); if (getenv('SNMPSIM')) { - $snmpsim->fork(6); + if (! getenv('GITHUB_ACTIONS')) { + $snmpsim->fork(6); + } // make PHP hold on a reference to $snmpsim so it doesn't get destructed register_shutdown_function(function (Snmpsim $ss) {