diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 6c8e00f2..de6bcee7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,10 +11,12 @@ assignees: '' - [ ] This is a bug report +- [ ] I observed this bug on a clean install of the OS +- [ ] I have followed the project prerequisites - [ ] I have searched this repository for existing issues - [ ] I checked the FAQ and official documentation before creating this issue - [ ] I have read and understand the issue reporting guidelines @@ -38,7 +42,7 @@ Be sure there are no issues similar to yours that are already open. You can chec 1. Operating System: **ENTER HERE** 2. Hardware and version: 3. RaspAP version: -4. Followed the project prerequisites? +4. Clean install of a compatible operating system? 5. RaspAP Quick Install or Manual setup? 6. Using default configuration? 7. Simultaneous AP and managed mode? diff --git a/BACKERS.md b/BACKERS.md index 2c5721bf..ced82a5d 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -1,27 +1,26 @@ -## Insiders +Insiders logo -Development of RaspAP is made possible thanks to a sponsorware release model. This means that new features are first exclusively released to sponsors as part of [**Insiders**](https://github.com/sponsors/RaspAP). Read on to learn how sponsorship works, and how easy it is to get access to Insiders. +Development of RaspAP is made possible thanks to a sponsorware release model. This means that new features are first exclusively released to sponsors as part of **Insiders**. Read on to learn how sponsorship works, and how easy it is to get access to Insiders. -Untitled - -### How sponsorship works +## How sponsorship works New features first land in **Insiders**, which means that *sponsors will have access to them immediately*. Every feature is tied to a funding goal in monthly subscriptions. When a funding goal is hit, the features that are tied to it are merged back into the [public RaspAP repository](https://github.com/RaspAP/raspap-webgui) and released for general availability. Bugfixes and minor enhancements are always released simultaneously in both editions. -Don't want to sponsor? No problem, RaspAP already has tons of features available, so chances are that most of your requirements are already satisfied. See the list of exclusive features to learn which features are currently only available to sponsors. +Don't want to sponsor? No problem, RaspAP already has tons of features available, so chances are that most of your requirements are already satisfied. See the list of **exclusive features** to learn which features are currently only available to sponsors. -### How to become a sponsor -You can [become a sponsor](https://github.com/sponsors/RaspAP) using your individual or organization's GitHub account. Just pick any tier from $10/month and complete the checkout. Then, after a few hours, you will be added as a team member to the super-secret private GitHub repository containing the Insiders edition, which has all exclusive features. In addition, you get access to Insiders-only team discussions and content. +## How to become a sponsor +You can become a sponsor using your individual or organization's GitHub account. Just pick any tier from $10/month and complete the checkout. Then, after a few hours, you will be added as a team member to the super-secret private GitHub repository containing the Insiders edition, which has all exclusive features. In addition, you get access to Insiders-only team discussions and content. -> ℹ️ **Important**: If you're sponsoring [RaspAP](https://github.com/RaspAP/sponsors) through a GitHub organization, please send a short email to [sponsors@raspap.com](mailto:sponsors@raspap.com) with the name of your organization and the account that should be added as a collaborator. +> :information_source: **Important**: If you're sponsoring [RaspAP](https://github.com/RaspAP/sponsors) through a GitHub organization, please send a short email to [sponsors@raspap.com](mailto:sponsors@raspap.com) with the name of your organization and the account that should be added as a collaborator. -### Exclusive features +## Exclusive features The following features are currently available exclusively to sponsors. A tangible side benefit of sponsorship is that Insiders are able to help steer future development of RaspAP. This is done through Insiders' access to discussions, feature requests, issues and pull requests in the private GitHub repository. ✅ [Network device management](https://docs.raspap.com/net-devices/) - ✅ [Firewall settings](https://docs.raspap.com/firewall/) + ✅ [Firewall settings](https://docs.raspap.com/firewall/) ✅ [WPA3-Personal AP security](https://docs.raspap.com/ap-basics/#wpa3-personal) - ✅ [802.11w Protected Management Frames](https://docs.raspap.com/ap-basics/#80211w) + ✅ [802.11w Protected Management Frames](https://docs.raspap.com/ap-basics/#80211w) ✅ [Printable Wi-Fi signs](https://docs.raspap.com/ap-basics/#printable-signs) + ✅ [Drag & drop dashboard widgets](https://docs.raspap.com/ap-basics/#drag-drop-widgets) ⚙️ Traffic shaping (in progress) Look for the list above to grow as we add more exclusive features. Be sure to visit this page from time to time to learn about what's new, check the [Insiders docs page](https://docs.raspap.com/insiders/) and follow [@RaspAP on Twitter](https://twitter.com/rasp_ap) to stay updated. @@ -35,43 +34,15 @@ The second **Insiders Edition** includes the features listed above. ### $500 The [first Insiders Edition goal](https://docs.raspap.com/insiders/#500-1st-insiders-edition) was reached in December 2021. Thank you sponsors! -### Frequently asked questions +## Quarterly giving +Beginning in 2022, each quarter 15% of all proceeds from Insiders will be donated directly to the [Raspberry Pi Foundation](https://www.raspberrypi.org/). The Raspberry Pi Foundation is a UK-based charity that works to put the power of computing and digital making into the hands of people all over the world. -#### How do I install Insiders? -*How do I install Insiders?* +[![Get involved with the Raspberry Pi Foundation](https://img.youtube.com/vi/dEzg92g1LHw/0.jpg)](https://www.youtube.com/watch?v=dEzg92g1LHw) -Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--insiders` switch, like so: +When you become an Insider, not only do you support development of RaspAP but you also help inspire young people by harnessing the power of computing to solve problems and express themselves creatively. -``` -curl -sL https://install.raspap.com | bash -s -- --insiders -``` +## Frequently asked questions +We've covered all you need to know [here](https://docs.raspap.com/insiders/#frequently-asked-questions). -This will automatically pull from the private Insiders repo during the installation process. - -#### Upgrading -*I have an existing RaspAP installation. How do I upgrade to Insiders?* - -Upgrading is easy. Invoke the [Quick Installer](https://docs.raspap.com/quick/) with the `--upgrade` switch, specifying the private Insiders edition, like so: - -``` -curl -sL https://install.raspap.com | bash -s -- --upgrade --insiders -``` - -If you haven't [added SSH keys to your GitHub account](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) you will be prompted to authenticate. If so, just enter your GitHub credentials during the install: - -``` -RaspAP Install: Cloning latest files from github -Cloning into '/tmp/raspap-webgui'... -Username for 'https://github.com': octocat -Password for 'https://octocat@github.com': -``` - -> ℹ️ **Note**: your password is sent securely via SSH to GitHub. The above prompt is actually from GitHub, so the installer does _not_ know your credentials. - -#### Terms -*We're using RaspAP for a commercial project. Can we use Insiders under the same terms and conditions?* - -Yes. Whether you're an individual or a company, you may use RaspAP Insiders precisely under the same terms as RaspAP, which are defined by the GNU GPL 3.0 license. However, we kindly ask you to respect the following guidelines: - -* Please **don't distribute the source code** of Insiders. You may freely use it for public, private or commercial projects, fork it, mirror it, do whatever you want with it, but please don't release the source code, as it would counteract the sponsorware strategy. -* If you cancel your subscription, you're removed as a collaborator and will miss out on future updates of Insiders. However, you may *use the latest version* that's available to you as long as you like. Just remember that [GitHub deletes private forks](https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/removing-a-collaborator-from-a-personal-repository). +### Terms +See our [official project documentation](https://docs.raspap.com/insiders/#terms). diff --git a/README.md b/README.md index de65ba9b..1142af30 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/xeKD93p.png) -[![Release 2.8.3](https://img.shields.io/badge/release-v2.8.3-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.8.4](https://img.shields.io/badge/release-v2.8.4-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) ![https://travis-ci.com/github/raspap/raspap-webgui/](https://api.travis-ci.org/RaspAP/raspap-webgui.svg) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. diff --git a/ajax/bandwidth/get_bandwidth.php b/ajax/bandwidth/get_bandwidth.php index 04c1fc03..4fcf8057 100644 --- a/ajax/bandwidth/get_bandwidth.php +++ b/ajax/bandwidth/get_bandwidth.php @@ -49,6 +49,7 @@ if ($timeunits === 'm') { } $datasizeunits = filter_input(INPUT_GET, 'dsu'); +$dsu_factor = $datasizeunits == "mb" ? 1024 * 1024 : 1024; header('X-Content-Type-Options: nosniff'); header('Content-Type: application/json'); echo '[ '; @@ -73,13 +74,8 @@ for ($i = count($jsonData) - 1; $i >= 0; --$i) { echo ','; } - if ($datasizeunits == 'mb') { - $datasend = round($jsonData[$i]['tx'] / 1024, 0); - $datareceived = round($jsonData[$i]['rx'] / 1024, 0); - } else { - $datasend = $jsonData[$i]['rx']; - $datareceived = $jsonData[$i]['rx']; - } + $datasend = round($jsonData[$i]['tx'] / $dsu_factor, 0); + $datareceived = round($jsonData[$i]['rx'] / $dsu_factor, 0); if ($timeunits === 'm') { echo '{ "date": "' , $dt->format('Y-m') , '", "rx": "' , $datareceived , diff --git a/ajax/bandwidth/get_bandwidth_hourly.php b/ajax/bandwidth/get_bandwidth_hourly.php index a8e0f5cc..5e2f93f1 100644 --- a/ajax/bandwidth/get_bandwidth_hourly.php +++ b/ajax/bandwidth/get_bandwidth_hourly.php @@ -39,11 +39,14 @@ if (filter_input(INPUT_GET, 'tu') == 'h') { exit('vnstat error'); } + $datasizeunits = filter_input(INPUT_GET, 'dsu'); + $dsu_factor = $datasizeunits == "mb" ? 1024 * 1024 : 1024; + $jsonobj = json_decode($jsonstdoutvnstat[0], true)['interfaces'][0]; $jsonData = $jsonobj['traffic']['hour']; - for ($i = count($jsonData) - 1; $i >= 0; --$i) { - $data_template[$jsonData[$i]['time']['hour']]['rx'] = round($jsonData[$i]['rx'] / 1024, 0); - $data_template[$jsonData[$i]['time']['hour']]['tx'] = round($jsonData[$i]['tx'] / 1024, 0); + for ($i = count($jsonData) - 1; $i >= 0 && $i >= count($jsonData)-25; --$i) { + $data_template[$jsonData[$i]['time']['hour']]['rx'] = round($jsonData[$i]['rx'] / $dsu_factor, 0); + $data_template[$jsonData[$i]['time']['hour']]['tx'] = round($jsonData[$i]['tx'] / $dsu_factor, 0); } $data = array(); diff --git a/app/js/huebee.js b/app/js/huebee.js index 895e1287..486d28b2 100644 --- a/app/js/huebee.js +++ b/app/js/huebee.js @@ -11,7 +11,7 @@ var hueb = new Huebee( elem, { // Set custom color if defined var color = getCookie('color'); if (color == null || color == '') { - color = '#d8224c'; + color = '#2b8080'; } hueb.setColor(color); diff --git a/app/lib/system.php b/app/lib/system.php index 3b09fb84..ee21ad84 100644 --- a/app/lib/system.php +++ b/app/lib/system.php @@ -42,7 +42,7 @@ class Sysinfo public function usedMemory() { - $used = shell_exec("free -m | awk '/Mem:/ { total=$2 ; used=$3 } END { print used/total*100}'"); + $used = shell_exec("free -m | awk 'NR==2{ total=$2 ; used=$3 } END { print used/total*100}'"); return floor($used); } diff --git a/dist/raspap/css/style.css b/dist/raspap/css/style.css index 45305ca1..c589341e 100644 --- a/dist/raspap/css/style.css +++ b/dist/raspap/css/style.css @@ -48,7 +48,7 @@ span.ra-wireguard:before { .ra-raspap:before { font-size: 4.35rem; content: "\e901"; - color: #d8224c; + color: #2b8080; margin-left: 0.1em; } diff --git a/includes/adblock.php b/includes/adblock.php index b9bcd74c..c61c25f6 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -78,8 +78,8 @@ function DisplayAdBlockConfig() $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); $adblock_log = ''; - exec('sudo chmod o+r '. RASPI_DHCPCD_LOG); - $handle = fopen("/tmp/dnsmasq.log", "r"); + exec('sudo chmod o+r '.RASPI_DHCPCD_LOG); + $handle = fopen(RASPI_DHCPCD_LOG, "r"); if ($handle) { while (($line = fgets($handle)) !== false) { if (preg_match('/(0.0.0.0)/', $line)) { diff --git a/includes/defaults.php b/includes/defaults.php index 56e66a6b..bdc38dfb 100755 --- a/includes/defaults.php +++ b/includes/defaults.php @@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) { $defaults = [ 'RASPI_BRAND_TEXT' => 'RaspAP', - 'RASPI_VERSION' => '2.8.3', + 'RASPI_VERSION' => '2.8.4', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0', diff --git a/includes/internetRoute.php b/includes/internetRoute.php index e83dca22..f172b847 100755 --- a/includes/internetRoute.php +++ b/includes/internetRoute.php @@ -55,3 +55,14 @@ function getRouteInfo($checkAccess) return $rInfo; } +/* + * Fetches raw output of ip route + * + * @return string + */ +function getRouteInfoRaw() +{ + exec('ip route list', $routes); + return $routes; +} + diff --git a/includes/networking.php b/includes/networking.php index ac5d39bc..345ca14e 100755 --- a/includes/networking.php +++ b/includes/networking.php @@ -14,6 +14,7 @@ function DisplayNetworkingConfig() exec("ls /sys/class/net | grep -v lo", $interfaces); $routeInfo = getRouteInfo(true); + $routeInfoRaw = getRouteInfoRaw(); $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini'); $bridgedEnabled = $arrHostapdConf['BridgedEnable']; @@ -21,6 +22,7 @@ function DisplayNetworkingConfig() "status", "interfaces", "routeInfo", + "routeInfoRaw", "bridgedEnabled") ); } diff --git a/includes/wireguard.php b/includes/wireguard.php index 8718a2dd..dfe04d5c 100644 --- a/includes/wireguard.php +++ b/includes/wireguard.php @@ -18,6 +18,8 @@ function DisplayWireGuardConfig() SaveWireGuardConfig($status); } elseif (isset($_POST['savewgsettings']) && $optConf == 'upload' && is_uploaded_file($_FILES["wgFile"]["tmp_name"])) { SaveWireGuardUpload($status, $_FILES['wgFile'], $optRules); + } elseif (isset($_POST['savewgsettings']) && isset($_POST['wg_penabled']) ) { + SaveWireGuardConfig($status); } elseif (isset($_POST['startwg'])) { $status->addMessage('Attempting to start WireGuard', 'info'); exec('sudo /bin/systemctl start wg-quick@wg0', $return); @@ -166,7 +168,7 @@ function SaveWireGuardConfig($status) $good_input = true; $peer_id = 1; // Validate server input - if ($_POST['wg_senabled'] == 1) { + if ($_POST['wgSrvEnable'] == 1) { if (isset($_POST['wg_srvport'])) { if (strlen($_POST['wg_srvport']) > 5 || !is_numeric($_POST['wg_srvport'])) { $status->addMessage('Invalid value for server local port', 'danger'); @@ -224,7 +226,7 @@ function SaveWireGuardConfig($status) // Save settings if ($good_input) { // server (wg0.conf) - if ($_POST['wg_senabled'] == 1) { + if ($_POST['wgSrvEnable'] == 1) { // fetch server private key from filesytem $wg_srvprivkey = exec('sudo cat '. RASPI_WIREGUARD_PATH .'wg-server-private.key', $return); $config[] = '[Interface]'; diff --git a/index.php b/index.php index 75b0402a..2a25876c 100755 --- a/index.php +++ b/index.php @@ -14,7 +14,7 @@ * @author Lawrence Yau * @author Bill Zimmerman * @license GNU General Public License, version 3 (GPL-3.0) - * @version 2.8.3 + * @version 2.8.4 * @link https://github.com/RaspAP/raspap-webgui/ * @link https://raspap.com/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/ diff --git a/installers/common.sh b/installers/common.sh index 542d5269..de7226e3 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -43,13 +43,8 @@ function _install_raspap() { _update_system_packages _install_dependencies _enable_php_lighttpd - if [ "$upgrade" == 1 ]; then - _check_for_old_configs - _create_raspap_directories - else - _create_raspap_directories - _check_for_old_configs - fi + _create_raspap_directories + _check_for_old_configs _optimize_php _download_latest_files _change_file_ownership @@ -189,6 +184,13 @@ function _enable_php_lighttpd() { # Verifies existence and permissions of RaspAP directory function _create_raspap_directories() { + if [ "$upgrade" == 1 ]; then + if [ -f $raspap_dir/raspap.auth ]; then + _install_log "Moving existing raspap.auth file to /tmp" + sudo mv $raspap_dir/raspap.auth /tmp || _install_status 1 "Unable to backup raspap.auth to /tmp" + fi + fi + _install_log "Creating RaspAP directories" if [ -d "$raspap_dir" ]; then sudo mv $raspap_dir "$raspap_dir.`date +%F-%R`" || _install_status 1 "Unable to move old '$raspap_dir' out of the way" @@ -272,7 +274,6 @@ function _install_lighttpd_configs() { _install_status 0 } - # Prompt to install ad blocking function _prompt_install_adblock() { _install_log "Configure ad blocking (Beta)" @@ -280,7 +281,7 @@ function _prompt_install_adblock() { if [ "$assume_yes" == 0 ]; then read answer < /dev/tty if [ "$answer" != "${answer#[Nn]}" ]; then - echo -e + _install_status 0 "(Skipped)" else _install_adblock fi @@ -344,7 +345,7 @@ function _prompt_install_openvpn() { if [ "$assume_yes" == 0 ]; then read answer < /dev/tty if [ "$answer" != "${answer#[Nn]}" ]; then - echo -e + _install_status 0 "(Skipped)" else _install_openvpn fi @@ -362,7 +363,7 @@ function _prompt_install_wireguard() { if [ "$assume_yes" == 0 ]; then read answer < /dev/tty if [ "$answer" != "${answer#[Nn]}" ]; then - echo -e + _install_status 0 "(Skipped)" else _install_wireguard fi @@ -425,13 +426,14 @@ function _download_latest_files() { _install_log "Cloning latest files from github" git clone --branch $branch --depth 1 -c advice.detachedHead=false $git_source_url /tmp/raspap-webgui || _install_status 1 "Unable to download files from github" - sudo mv /tmp/raspap-webgui $webroot_dir || _install_status 1 "Unable to move raspap-webgui to web root" + if [ "$upgrade" == 1 ]; then _install_log "Applying existing configuration to ${webroot_dir}/includes" sudo mv /tmp/config.php $webroot_dir/includes || _install_status 1 "Unable to move config.php to ${webroot_dir}/includes" if [ -f /tmp/raspap.auth ]; then + _install_log "Applying existing authentication file to ${raspap_dir}" sudo mv /tmp/raspap.auth $raspap_dir || _install_status 1 "Unable to restore authentification credentials file to ${raspap_dir}" fi fi @@ -454,10 +456,6 @@ function _check_for_old_configs() { if [ "$upgrade" == 1 ]; then _install_log "Moving existing configuration to /tmp" sudo mv $webroot_dir/includes/config.php /tmp || _install_status 1 "Unable to move config.php to /tmp" - - if [ -f $raspap_dir/raspap.auth ]; then - sudo mv $raspap_dir/raspap.auth /tmp || _install_status 1 "Unable to backup raspap.auth to /tmp" - fi else _install_log "Backing up existing configs to ${raspap_dir}/backups" if [ -f /etc/network/interfaces ]; then @@ -582,7 +580,7 @@ function _configure_networking() { if [ "$assume_yes" == 0 ]; then read answer < /dev/tty if [ "$answer" != "${answer#[Nn]}" ]; then - echo -e + _install_status 0 "(Skipped)" else _enable_raspap_daemon fi @@ -680,7 +678,7 @@ function _install_complete() { # Prompt to reboot if wired ethernet (eth0) is connected. # With default_configuration this will create an active AP on restart. if ip a | grep -q ': eth0:.*state UP'; then - echo -n "The system needs to be rebooted as a final step. Reboot now? [y/N]: " + echo -n "The system needs to be rebooted as a final step. Reboot now? [Y/n]: " read answer < /dev/tty if [ "$answer" != "${answer#[Nn]}" ]; then echo "Installation reboot aborted." diff --git a/installers/uninstall.sh b/installers/uninstall.sh index d0a3d9fb..06173755 100755 --- a/installers/uninstall.sh +++ b/installers/uninstall.sh @@ -202,7 +202,7 @@ function _remove_installed_packages() { fi echo -n "Remove the following installed packages? lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode [y/N]: " read answer - if [ "$answer" != 'n' ] && [ "$answer" != 'N' ]; then + if [ "$answer" == 'y' ] || [ "$answer" == 'Y' ]; then echo "Removing packages." sudo apt-get remove lighttpd hostapd iptables-persistent $php_package $dhcpcd_package vnstat qrencode || _install_error "Unable to remove installed packages" sudo apt-get autoremove || _install_error "Unable to run apt autoremove" diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index 84b77220..3433cbf6 100644 Binary files a/locale/en_US/LC_MESSAGES/messages.mo and b/locale/en_US/LC_MESSAGES/messages.mo differ diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 723549ba..e179dc17 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -679,6 +679,12 @@ msgstr "Error saving network configuration to file" msgid "Unable to detect interface" msgstr "Unable to detect interface" +msgid "Routing table" +msgstr "Routing table" + +msgid "raw output" +msgstr "raw output" + #: includes/system.php msgid "System Information" msgstr "System Information" diff --git a/locale/pt_BR/LC_MESSAGES/messages.mo b/locale/pt_BR/LC_MESSAGES/messages.mo index 7a612375..48ed7d1a 100644 Binary files a/locale/pt_BR/LC_MESSAGES/messages.mo and b/locale/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/locale/pt_BR/LC_MESSAGES/messages.po b/locale/pt_BR/LC_MESSAGES/messages.po index 481055ea..b991711c 100644 --- a/locale/pt_BR/LC_MESSAGES/messages.po +++ b/locale/pt_BR/LC_MESSAGES/messages.po @@ -1,22 +1,21 @@ -# RaspAP Portable Object file -# Project home: https://github.com/billz/raspap-webgui -# Licensed under the GNU General Public License v3.0 -# This file is distributed under the same license as the RaspAP package -# FIRST AUTHOR billzimmerman@gmail.com, 2017 -# msgid "" msgstr "" -"Project-Id-Version: 1.2.1\n" +"Project-Id-Version: raspap\n" "Report-Msgid-Bugs-To: Bill Zimmerman \n" "POT-Creation-Date: 2017-10-19 08:56+0000\n" -"PO-Revision-Date: 2019-10-27 15:30-0300\n" -"Last-Translator: Matheus Dal Mago \n" -"Language-Team: \n" +"PO-Revision-Date: 2022-01-05 11:43\n" +"Last-Translator: Bill Zimmerman \n" +"Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: raspap\n" +"X-Crowdin-Project-ID: 395801\n" +"X-Crowdin-Language: pt-BR\n" +"X-Crowdin-File: /master/locale/en_US/LC_MESSAGES/messages.po\n" +"X-Crowdin-File-ID: 10\n" #: index.php msgid "RaspAP Wifi Configuration Portal" @@ -37,8 +36,14 @@ msgstr "Cliente WiFi" msgid "Hotspot" msgstr "Ponto de acesso" +msgid "Memory Use" +msgstr "Uso da memória" + +msgid "CPU Temp" +msgstr "Temperatura do CPU" + msgid "Networking" -msgstr "Networking" +msgstr "Rede" msgid "DHCP Server" msgstr "Servidor DHCP" @@ -141,9 +146,33 @@ msgstr "Esconder" msgid "Not configured" msgstr "Não configurado" +msgid "Connected" +msgstr "" + +msgid "Known" +msgstr "" + +msgid "Nearby" +msgstr "" + msgid "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgstr "Nota: pontos de acesso WEP aparecem como 'Open'. Atualmente, o RaspAP não suporta conexão com WEP" +msgid "No Wifi stations found" +msgstr "" + +msgid "Reinitializing wpa_supplicant" +msgstr "" + +msgid "Click 'Rescan' to search for nearby Wifi stations." +msgstr "" + +msgid "Click 'Reinitialize' to force reinitialize wpa_supplicant." +msgstr "" + +msgid "Reinitialize" +msgstr "" + #: includes/dashboard.php msgid "Interface Information" msgstr "Informação da Interface" @@ -178,8 +207,8 @@ msgstr "Pacotes Transferidos" msgid "Transferred Bytes" msgstr "Bytes Transferidos" -msgid "Wireless Information" -msgstr "Informação de Wireless" +msgid "Wireless Client" +msgstr "Cliente WiFi" msgid "Connected To" msgstr "Conectado em" @@ -238,6 +267,60 @@ msgstr "Parar wlan0" msgid "Connected Devices" msgstr "Dispositivos Conectados" +msgid "Client: Ethernet cable" +msgstr "" + +msgid "Ethernet" +msgstr "" + +msgid "Client: Smartphone (USB tethering)" +msgstr "" + +msgid "Smartphone" +msgstr "" + +msgid "WiFi" +msgstr "" + +msgid "Mobile Data Client" +msgstr "" + +msgid "Mobile Data" +msgstr "" + +msgid "No information available" +msgstr "" + +msgid "Interface name invalid" +msgstr "" + +msgid "Required exec function is disabled. Check if exec is not added to php disable_functions." +msgstr "" + +msgid "Waiting for the interface to start ..." +msgstr "" + +msgid "Stop the Interface" +msgstr "" + +msgid "Connection mode" +msgstr "" + +msgid "Signal quality" +msgstr "" + +msgid "WAN IP" +msgstr "" + +msgid "Web-GUI" +msgstr "" + +msgid "Signal strength" +msgstr "" + +msgid "No Client device or not yet configured" +msgstr "" + #: includes/dhcp.php msgid "DHCP server settings" msgstr "Configurações do servidor DHCP" @@ -246,7 +329,16 @@ msgid "Client list" msgstr "Lista de Clientes" msgid "Interface" -msgstr "Interface" +msgstr "Inteface" + +msgid "Enable DHCP for this interface" +msgstr "" + +msgid "Enable this option if you want RaspAP to assign IP addresses on the selected interface." +msgstr "" + +msgid "DNS Server" +msgstr "Servidor DNS" msgid "Starting IP Address" msgstr "Endereço IP Inicial" @@ -275,6 +367,9 @@ msgstr "Tempo para expirar" msgid "MAC Address" msgstr "Endereço MAC" +msgid "Optional comment" +msgstr "" + msgid "Host name" msgstr "Nome de host" @@ -318,31 +413,55 @@ msgid "Dnsmasq is not running" msgstr "Dnsmasq não executando" msgid "Upstream DNS servers" -msgstr "Upstream DNS servers" +msgstr "" msgid "Only ever query DNS servers configured below" -msgstr "Only ever query DNS servers configured below" +msgstr "" msgid "Enable this option if you want RaspAP to send DNS queries to the servers configured below exclusively. By default RaspAP also uses its upstream DHCP server's name servers." -msgstr "Enable this option if you want RaspAP to send DNS queries to the servers configured below exclusively. By default RaspAP also uses its upstream DHCP server's name servers." +msgstr "" msgid "This option adds no-resolv to the dnsmasq configuration." -msgstr "This option adds no-resolv to the dnsmasq configuration." +msgstr "" msgid "Add upstream DNS server" -msgstr "Add upstream DNS server" +msgstr "" msgid "Format" -msgstr "Format" +msgstr "" msgid "Choose a hosted server" -msgstr "Choose a hosted server" +msgstr "" + +msgid "Enable these options to log DHCP server activity." +msgstr "" msgid "Log DHCP requests" -msgstr "Log DHCP requests" +msgstr "" msgid "Log DNS queries" -msgstr "Log DNS queries" +msgstr "" + +msgid "Restrict access" +msgstr "" + +msgid "Limit network access to static clients" +msgstr "" + +msgid "Enable this option if you want RaspAP to ignore any clients which are not specified in the static leases list." +msgstr "" + +msgid "This option adds dhcp-ignore to the dnsmasq configuration." +msgstr "" + +msgid "Clients with a particular hardware MAC address can always be allocated the same IP address." +msgstr "" + +msgid "This option adds dhcp-host entries to the dnsmasq configuration." +msgstr "" + +msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." +msgstr "" #: includes/hostapd.php msgid "Basic" @@ -367,7 +486,7 @@ msgid "Encryption Type" msgstr "Tipo de Criptografia" msgid "PSK" -msgstr "PSK" +msgstr "" msgid "Advanced settings" msgstr "Configurações avançadas" @@ -426,28 +545,58 @@ msgstr "Arquivo de Log" msgid "WiFi client AP mode" msgstr "WiFi modo cliente AP" +msgid "Bridged AP mode" +msgstr "" + msgid "Hide SSID in broadcast" msgstr "Esconder SSID em transmissão" msgid "Maximum number of clients" msgstr "Número máximo de clientes" -msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." -msgstr "Configura a opção max_num_sta do hostapd. O valor padrão e máximo é 2007. Se deixado vazio ou 0, o valor padrão é aplicado." +msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." +msgstr "" + +msgid "Beacon interval" +msgstr "" + +msgid "Disable disassoc_low_ack" +msgstr "" + +msgid "Do not disassociate stations based on excessive transmission failures." +msgstr "" + +msgid "Executing RaspAP service start" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Enable this option to log hostapd activity." +msgstr "" + +msgid "Transmit power (dBm)" +msgstr "" + +msgid "Sets the txpower option for the AP interface and the configured country." +msgstr "" + +msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW." +msgstr "" #: includes/networking.php msgid "Summary" msgstr "Sumário" +msgid "Internet connection" +msgstr "" + msgid "Current settings" msgstr "Configurações atuais" msgid "Default Gateway" msgstr "Gateway Padrão" -msgid "DNS Server" -msgstr "Servidor DNS" - msgid "Alternate DNS Server" msgstr "Servidor DNS Alternativo" @@ -469,12 +618,66 @@ msgstr "Desabilitado" msgid "Static IP Options" msgstr "Opções de IP Estático" +msgid "Metric" +msgstr "" + msgid "Apply settings" msgstr "Aplicar Configurações" msgid "Information provided by /sys/class/net" msgstr "Informação Provida por /sys/class/net" +msgid "Network Devices" +msgstr "" + +msgid "Mobile Data Settings" +msgstr "" + +msgid "Properties of network devices" +msgstr "" + +msgid "Device" +msgstr "" + +msgid "MAC" +msgstr "" + +msgid "USB vid/pid" +msgstr "" + +msgid "Device type" +msgstr "" + +msgid "Fixed name" +msgstr "" + +msgid "Change" +msgstr "" + +msgid "Settings for Mobile Data Devices" +msgstr "" + +msgid "PIN of SIM card" +msgstr "" + +msgid "APN Settings (Modem device ppp0)" +msgstr "" + +msgid "Access Point Name (APN)" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Successfully Updated Network Configuration" +msgstr "" + +msgid "Error saving network configuration to file" +msgstr "" + +msgid "Unable to detect interface" +msgstr "" + #: includes/system.php msgid "System Information" msgstr "Informação do sistema" @@ -492,10 +695,10 @@ msgid "Language setting saved" msgstr "Configuração de idioma salva" msgid "Console" -msgstr "Console" +msgstr "" msgid "Hostname" -msgstr "Hostname" +msgstr "" msgid "Pi Revision" msgstr "Revisão do Pi" @@ -521,6 +724,12 @@ msgstr "Sistema Reiniciando Agora!" msgid "System Shutting Down Now!" msgstr "Sistema Desligando Agora!" +msgid "Web server port" +msgstr "" + +msgid "Web server bind address" +msgstr "" + #: includes/themes.php msgid "Theme settings" msgstr "Configurações de tema" @@ -528,6 +737,9 @@ msgstr "Configurações de tema" msgid "Select a theme" msgstr "Selecione um tema" +msgid "Color" +msgstr "" + #: includes/data_usage.php msgid "Data usage" msgstr "Uso de dados" @@ -554,7 +766,7 @@ msgid "Monthly" msgstr "Por mês" msgid "interface" -msgstr "interface" +msgstr "" msgid "date" msgstr "data" @@ -606,7 +818,7 @@ msgid "Diffie Hellman parameters" msgstr "Parâmetros Diffie Hellman" msgid "KeepAlive" -msgstr "KeepAlive" +msgstr "" msgid "Server log" msgstr "Log do servidor" @@ -626,6 +838,66 @@ msgstr "Tentando iniciar openvpn" msgid "Attempting to stop openvpn" msgstr "Tentando parar openvpn" +msgid "Configurations" +msgstr "" + +msgid "Currently available OpenVPN client configurations are displayed below." +msgstr "" + +msgid "Activating a configuraton will restart the openvpn-client service." +msgstr "" + +msgid "Delete OpenVPN client" +msgstr "" + +msgid "Delete client configuration? This cannot be undone." +msgstr "" + +msgid "Activate OpenVPN client" +msgstr "" + +msgid "Activate client configuration? This will restart the openvpn-client service." +msgstr "" + +msgid "Activate" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Enable this option to log openvpn activity." +msgstr "" + +msgid "Authentification Method" +msgstr "" + +msgid "Username and password" +msgstr "" + +msgid "Certificates" +msgstr "" + +msgid "Enter username and password" +msgstr "" + +msgid "Certificates in the configuration file" +msgstr "" + +msgid "RaspAP supports certificates by including them in the configuration file." +msgstr "" + +msgid "Signing certification authority (CA) certificate (e.g. ca.crt): enclosed in <ca> ... </ca> tags." +msgstr "" + +msgid "Client certificate (public key) (e.g. client.crt): enclosed in <cert> ... </cert> tags." +msgstr "" + +msgid "Private key of the client certificate (e.g. client.key): enclosed in <key> ... </key> tags." +msgstr "" + +msgid "Configuration File" +msgstr "" + #: includes/torproxy.php msgid "TOR is not running" msgstr "TOR não está sendo executado" @@ -634,7 +906,7 @@ msgid "TOR is running" msgstr "TOR está sendo executado" msgid "Relay" -msgstr "Relay" +msgstr "" msgid "Relay settings" msgstr "Configurações de relay" @@ -660,6 +932,10 @@ msgstr "Tentando iniciar TOR" msgid "Attempting to stop TOR" msgstr "Tentando parar TOR" +#: template/dashboard.php +msgid "Bridged AP mode is enabled. For Hostname and IP, see your router's admin page." +msgstr "" + #: common form controls msgid "Save settings" msgstr "Salvar configurações" @@ -681,3 +957,250 @@ msgstr "cima" msgid "down" msgstr "baixo" + +msgid "adblock" +msgstr "" + +msgid "Ad Blocking" +msgstr "" + +msgid "Start Ad Blocking" +msgstr "" + +msgid "Restart Ad Blocking" +msgstr "" + +msgid "Blocklist settings" +msgstr "" + +msgid "Enable blocklists" +msgstr "" + +msgid "Enable this option if you want RaspAP to block DNS requests for ads, tracking and other virtual garbage. Blocklists are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis." +msgstr "" + +msgid "This option adds conf-file and addn-hosts to the dnsmasq configuration." +msgstr "" + +msgid "Choose a blocklist provider" +msgstr "" + +msgid "Hostnames blocklist last updated" +msgstr "" + +msgid "Domains blocklist last updated" +msgstr "" + +msgid "Update now" +msgstr "" + +msgid "Statistics" +msgstr "" + +msgid "Information provided by adblock" +msgstr "" + +msgid "Enable custom blocklist" +msgstr "" + +msgid "Define custom hosts to be blocked by entering an IPv4 or IPv6 address followed by any whitespace (spaces or tabs) and the host name." +msgstr "" + +msgid "IPv4 example: 0.0.0.0 badhost.com" +msgstr "" + +msgid "This option adds an addn-hosts directive to the dnsmasq configuration." +msgstr "" + +msgid "Custom blocklist not defined" +msgstr "" + +msgid "Invalid custom IP address found on line " +msgstr "" + +msgid "Invalid custom host found on line " +msgstr "" + +msgid "Tunnel settings" +msgstr "" + +msgid "Configuration Method" +msgstr "" + +msgid "Upload file" +msgstr "" + +msgid "Create manually" +msgstr "" + +msgid "Upload a WireGuard config" +msgstr "" + +msgid "This option uploads and installs an existing WireGuard .conf file on this device." +msgstr "" + +msgid "Apply iptables rules for AP interface" +msgstr "" + +msgid "Recommended if you wish to forward network traffic from the wg0 interface to clients connected on the AP interface." +msgstr "" + +msgid "This option adds iptables Postup and PostDown rules for the configured AP interface (%s)." +msgstr "" + +msgid "Select WireGuard configuration file (.conf)" +msgstr "" + +msgid "Create a local WireGuard config" +msgstr "" + +msgid "Enable server" +msgstr "" + +msgid "Enable this option to secure network traffic by creating an encrypted tunnel between RaspAP and configured peers." +msgstr "" + +msgid "This setting generates a new WireGuard .conf file on this device." +msgstr "" + +msgid "Local public key" +msgstr "" + +msgid "Local Port" +msgstr "" + +msgid "IP Address" +msgstr "" + +msgid "DNS" +msgstr "" + +msgid "Peer" +msgstr "" + +msgid "Enable peer" +msgstr "" + +msgid "Enable this option to encrypt traffic by creating a tunnel between RaspAP and this peer." +msgstr "" + +msgid "This option adds client.conf to the WireGuard configuration." +msgstr "" + +msgid "Peer public key" +msgstr "" + +msgid "Endpoint address" +msgstr "" + +msgid "Allowed IPs" +msgstr "" + +msgid "Persistent keepalive" +msgstr "" + +msgid "Enable this option to display an updated wg-quick debug log." +msgstr "" + +msgid "WireGuard debug log updated" +msgstr "" + +msgid "Scan this QR code with your client to connect to this tunnel" +msgstr "" + +msgid "or download the client.conf file to your device." +msgstr "" + +msgid "Download" +msgstr "" + +msgid "Start WireGuard" +msgstr "" + +msgid "Stop WireGuard" +msgstr "" + +msgid "Information provided by wireguard" +msgstr "" + +msgid "Attempting to start WireGuard" +msgstr "" + +msgid "Attempting to stop WireGuard" +msgstr "" + +msgid "WireGuard configuration updated successfully" +msgstr "" + +msgid "WireGuard configuration failed to be updated" +msgstr "" + +msgid "Client Firewall" +msgstr "" + +msgid "Firewall is ENABLED" +msgstr "" + +msgid "Firewall is OFF" +msgstr "" + +msgid "The default firewall will only allow outgoing and already established traffic." +msgstr "" + +msgid "No incoming UDP traffic is allowed." +msgstr "" + +msgid "There are no restrictions for the access point %s." +msgstr "" + +msgid "Exception: Service" +msgstr "" + +msgid "allow SSH access on port 22" +msgstr "" + +msgid "allow access to the RaspAP GUI on port 80 or 443" +msgstr "" + +msgid "Allow incoming connections for some services from the internet side." +msgstr "" + +msgid "Exception: network device" +msgstr "" + +msgid "Exclude device(s)" +msgstr "" + +msgid "Exclude the given network device(s) (separated by a blank or comma) from firewall rules." +msgstr "" + +msgid "Current client devices: %s" +msgstr "" + +msgid "The access point %s is per default excluded." +msgstr "" + +msgid "Exception: IP-Address" +msgstr "" + +msgid "Allow incoming connections from" +msgstr "" + +msgid "For the given IP-addresses (separated by a blank or comma) the incoming connection (via TCP and UDP) is accepted." +msgstr "" + +msgid "This is required for an OpenVPN via UDP or Wireguard connection." +msgstr "" + +msgid "The list of configured VPN server IP addresses: %s" +msgstr "" + +msgid "Disable Firewall" +msgstr "" + +msgid "Enable Firewall" +msgstr "" + +msgid "Apply changes" +msgstr "" + diff --git a/templates/networking.php b/templates/networking.php index 3887a01b..23c356bc 100755 --- a/templates/networking.php +++ b/templates/networking.php @@ -55,6 +55,29 @@ + +

+
+
+
+
+
+
+ + + + +
+ + + +
+
+
+
+
+
+

diff --git a/yarn.lock b/yarn.lock index 9ecde714..ea34ed15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -936,12 +936,12 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-props@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" - integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" + integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== dependencies: - each-props "^1.3.0" - is-plain-object "^2.0.1" + each-props "^1.3.2" + is-plain-object "^5.0.0" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1143,7 +1143,7 @@ duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -each-props@^1.3.0: +each-props@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== @@ -2321,6 +2321,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -2757,9 +2762,9 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: brace-expansion "^1.1.7" minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" @@ -2817,9 +2822,9 @@ mkdirp@^1.0.3: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.10.2: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + version "2.29.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" + integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== ms@2.0.0: version "2.0.0"