From e054749ee2728726cae296a01b789ee6a4f560e2 Mon Sep 17 00:00:00 2001
From: infinitytec
Date: Thu, 2 Mar 2023 22:58:17 -0600
Subject: [PATCH 01/34] Update style/themes/lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Add additional styling for API modal close button
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Improved borders for modals and fixed header colors
Signed-off-by: infinitytec
Update style/themes/lcars.css
Signed-off-by: infinitytec
Update style/themes/lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Adjusted theme a bit more
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Update lcars.css
Signed-off-by: infinitytec
Co-Authored-By: RD WebDesign
---
style/themes/lcars.css | 58 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 55 insertions(+), 3 deletions(-)
diff --git a/style/themes/lcars.css b/style/themes/lcars.css
index ebbcfad7..ea547a59 100644
--- a/style/themes/lcars.css
+++ b/style/themes/lcars.css
@@ -502,9 +502,9 @@ p.login-box-msg,
margin: 5px 0;
padding: 0;
overflow: hidden;
- color: #000;
- background: #9ab !important;
- border: 3px solid #fff !important;
+ color: #9ab;
+ background: #111111 !important;
+ border: 3px solid #4488ff !important;
border-radius: 8px;
box-shadow: 0 0 0 2000vmax rgba(0, 0, 0, 0.6);
}
@@ -1143,6 +1143,16 @@ footer a:focus {
padding: 0 4px;
}
+.modal-body .overlay {
+ padding: 0px;
+ border-radius: 3px;
+}
+
+.modal-header,
+.modal-footer {
+ border-color: #222;
+}
+
.box-header.with-border,
.table-responsive,
.table-bordered,
@@ -1470,6 +1480,36 @@ table.dataTable {
border-radius: 12px;
}
+.modal-dialog {
+ border-radius: 12px;
+ border: 3px solid #4488ff;
+}
+
+.modal-content {
+ border-radius: 12px;
+ background-color: #111111;
+}
+
+.modal-header .close,
+.close,
+.alert > .close {
+ background: #dd4b39;
+ padding: 0 0.5em 0 1em;
+ color: #000;
+ opacity: 1;
+ text-decoration: none;
+ text-shadow: none;
+ border-radius: 1.07em;
+ text-align: right;
+}
+
+.close:hover,
+.close:focus {
+ background: #d73925;
+ color: #fff;
+ opacity: 1;
+}
+
.alert {
animation: flash 1.2s ease-in-out 0.5s;
transition: all ease-in-out 1s;
@@ -1643,6 +1683,11 @@ table.dataTable {
.main-header .navbar .dropdown-menu li.divider {
background-color: rgba(255, 255, 255, 0.1);
}
+ .dropdown-menu > li > a:hover,
+ .dropdown-menu > li > a:active,
+ .dropdown-menu > li > a:focus {
+ color: #48f;
+ }
.main-header .logo {
width: 150px;
float: left;
@@ -2055,3 +2100,10 @@ td.highlight {
#dns .col-md-11 {
width: 84%;
}
+
+/*** add style to the information/about dropdown ***/
+
+.navbar-nav > .user-menu > .dropdown-menu > .user-header,
+.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
+ background-color: #111111;
+}
From 03875680830db26918a8211089b1b3bc004c0c3a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 22 Mar 2023 21:33:37 +0000
Subject: [PATCH 02/34] Bump webpack from 5.75.0 to 5.76.3
Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.76.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.76.3)
---
updated-dependencies:
- dependency-name: webpack
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 16e030e7..38dbf215 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5423,9 +5423,9 @@
}
},
"node_modules/webpack": {
- "version": "5.75.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
- "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "version": "5.76.3",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz",
+ "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==",
"dev": true,
"peer": true,
"dependencies": {
From e438633db2cd846dca4c63b8ccbb5a22491bb2f6 Mon Sep 17 00:00:00 2001
From: infinitytec
Date: Wed, 22 Mar 2023 21:40:19 -0500
Subject: [PATCH 03/34] Improve modal close button
Signed-off-by: infinitytec
---
style/themes/lcars.css | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/style/themes/lcars.css b/style/themes/lcars.css
index ea547a59..182e6e6c 100644
--- a/style/themes/lcars.css
+++ b/style/themes/lcars.css
@@ -1493,19 +1493,15 @@ table.dataTable {
.modal-header .close,
.close,
.alert > .close {
- background: #dd4b39;
- padding: 0 0.5em 0 1em;
- color: #000;
+ color: currentColor;
opacity: 1;
- text-decoration: none;
text-shadow: none;
- border-radius: 1.07em;
- text-align: right;
+ transform: scale(2) translate(0, -3px);
+ font-weight: normal;
}
.close:hover,
.close:focus {
- background: #d73925;
color: #fff;
opacity: 1;
}
From cd887a2c32717f2917f49e4eae8a1ea743292f68 Mon Sep 17 00:00:00 2001
From: SodaWithoutSparkles
<64138578+SodaWithoutSparkles@users.noreply.github.com>
Date: Thu, 23 Mar 2023 18:48:04 +0800
Subject: [PATCH 04/34] add `color-scheme: dark` to fix #2554
Signed-off-by: SodaWithoutSparkles <64138578+SodaWithoutSparkles@users.noreply.github.com>
---
style/themes/default-dark.css | 5 +++++
style/themes/default-darker.css | 2 ++
style/themes/high-contrast-dark.css | 5 +++++
style/themes/lcars.css | 2 ++
4 files changed, 14 insertions(+)
diff --git a/style/themes/default-dark.css b/style/themes/default-dark.css
index 89598f6b..e0ab7076 100644
--- a/style/themes/default-dark.css
+++ b/style/themes/default-dark.css
@@ -12,6 +12,11 @@
--datatable-bgcolor: rgba(64, 76, 88, 0.8);
}
+/* fix #2554: browser not detecting dark mode */
+html {
+ color-scheme: dark;
+}
+
body {
background-color: #353c42;
color: #bec5cb;
diff --git a/style/themes/default-darker.css b/style/themes/default-darker.css
index 31ea20f0..6f6090a7 100644
--- a/style/themes/default-darker.css
+++ b/style/themes/default-darker.css
@@ -32,6 +32,8 @@ _______|_______/__/ ____ \__\__|___\__\__|___\__\____
/* User-Agent Style */
html {
background-color: #181a1b !important;
+ /* fix #2554: browser not detecting dark mode */
+ color-scheme: dark;
}
html,
body,
diff --git a/style/themes/high-contrast-dark.css b/style/themes/high-contrast-dark.css
index 7151fb18..f8fb8b8c 100644
--- a/style/themes/high-contrast-dark.css
+++ b/style/themes/high-contrast-dark.css
@@ -36,6 +36,11 @@
transition: none !important;
}
+/* fix #2554: browser not detecting dark mode */
+html {
+ color-scheme: dark;
+}
+
body {
font-size: 15px;
color: var(--main-text-color);
diff --git a/style/themes/lcars.css b/style/themes/lcars.css
index ebbcfad7..7907a23e 100644
--- a/style/themes/lcars.css
+++ b/style/themes/lcars.css
@@ -24,6 +24,8 @@
/*** General ***/
html {
font-size: 17px;
+ /* fix #2554: browser not detecting dark mode */
+ color-scheme: dark;
}
body {
From 99354cd4f34af152e467b024baea74acf185db04 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 25 Mar 2023 10:56:34 +0000
Subject: [PATCH 05/34] Bump prettier from 2.8.4 to 2.8.7
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.4 to 2.8.7.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.4...2.8.7)
---
updated-dependencies:
- dependency-name: prettier
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 16e030e7..2c83d496 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,7 @@
"eslint-plugin-compat": "^4.1.2",
"postcss": "^8.4.21",
"postcss-cli": "^10.1.0",
- "prettier": "2.8.4",
+ "prettier": "2.8.7",
"xo": "^0.53.1"
}
},
@@ -4389,9 +4389,9 @@
}
},
"node_modules/prettier": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
- "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
+ "version": "2.8.7",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
+ "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
diff --git a/package.json b/package.json
index fe660164..21cf2026 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,7 @@
"eslint-plugin-compat": "^4.1.2",
"postcss": "^8.4.21",
"postcss-cli": "^10.1.0",
- "prettier": "2.8.4",
+ "prettier": "2.8.7",
"xo": "^0.53.1"
},
"browserslist": [
From 6d1a9030cc0453d7025cc94740a00ed3b207c847 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 25 Mar 2023 10:56:49 +0000
Subject: [PATCH 06/34] Bump actions/stale from 7.0.0 to 8.0.0
Bumps [actions/stale](https://github.com/actions/stale) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7.0.0...v8.0.0)
---
updated-dependencies:
- dependency-name: actions/stale
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
.github/workflows/stale.yml | 2 +-
.github/workflows/stale_pr.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 6c6a2eae..5c91d176 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -13,7 +13,7 @@ jobs:
issues: write
steps:
- - uses: actions/stale@v7.0.0
+ - uses: actions/stale@v8.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
diff --git a/.github/workflows/stale_pr.yml b/.github/workflows/stale_pr.yml
index ff04afd9..17cd31e3 100644
--- a/.github/workflows/stale_pr.yml
+++ b/.github/workflows/stale_pr.yml
@@ -17,7 +17,7 @@ jobs:
pull-requests: write
steps:
- - uses: actions/stale@v7.0.0
+ - uses: actions/stale@v8.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Do not automatically mark PR/issue as stale
From 4381c5a03ae33a35852fb1798b3b77655f8a72be Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 25 Mar 2023 10:56:52 +0000
Subject: [PATCH 07/34] Bump actions/checkout from 3.4.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.4.0...v3.5.0)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/codespell.yml | 2 +-
.github/workflows/editorconfig-checker.yml | 2 +-
.github/workflows/php-cs-fixer.yml | 2 +-
.github/workflows/phpstan.yml | 2 +-
.github/workflows/sync-back-to-dev.yml | 2 +-
.github/workflows/test.yml | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index a5deedd7..5f224fea 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3.4.0
+ uses: actions/checkout@v3.5.0
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
index 56b57b52..7bfde527 100644
--- a/.github/workflows/codespell.yml
+++ b/.github/workflows/codespell.yml
@@ -11,7 +11,7 @@ jobs:
steps:
-
name: Checkout repository
- uses: actions/checkout@v3.4.0
+ uses: actions/checkout@v3.5.0
-
name: Spell-Checking
uses: codespell-project/actions-codespell@master
diff --git a/.github/workflows/editorconfig-checker.yml b/.github/workflows/editorconfig-checker.yml
index 3d7a6d84..83a44d87 100644
--- a/.github/workflows/editorconfig-checker.yml
+++ b/.github/workflows/editorconfig-checker.yml
@@ -9,6 +9,6 @@ jobs:
name: editorconfig-checker
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.4.0
+ - uses: actions/checkout@v3.5.0
- uses: editorconfig-checker/action-editorconfig-checker@main
- run: editorconfig-checker
diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml
index e389afb3..8e29f6a7 100644
--- a/.github/workflows/php-cs-fixer.yml
+++ b/.github/workflows/php-cs-fixer.yml
@@ -6,7 +6,7 @@ jobs:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.4.0
+ - uses: actions/checkout@v3.5.0
- name: PHP-CS-Fixer
uses: docker://oskarstark/php-cs-fixer-ga
with:
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
index 97bc3e1c..d10ac400 100644
--- a/.github/workflows/phpstan.yml
+++ b/.github/workflows/phpstan.yml
@@ -8,7 +8,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.4.0
+ - uses: actions/checkout@v3.5.0
- name: Install composer
uses: php-actions/composer@v6
diff --git a/.github/workflows/sync-back-to-dev.yml b/.github/workflows/sync-back-to-dev.yml
index b67bb33c..540b2b62 100644
--- a/.github/workflows/sync-back-to-dev.yml
+++ b/.github/workflows/sync-back-to-dev.yml
@@ -11,7 +11,7 @@ jobs:
name: Syncing branches
steps:
- name: Checkout
- uses: actions/checkout@v3.4.0
+ uses: actions/checkout@v3.5.0
- name: Opening pull request
run: gh pr create -B devel -H master --title 'Sync master back into development' --body 'Created by Github action' --label 'internal'
env:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4e9628e9..755afc80 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -19,7 +19,7 @@ jobs:
steps:
- name: Clone repository
- uses: actions/checkout@v3.4.0
+ uses: actions/checkout@v3.5.0
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
From 52df476e0bc1587b71141960d34882ba963fa8be Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 25 Mar 2023 10:57:01 +0000
Subject: [PATCH 08/34] Bump phpstan/phpstan from 1.10.7 to 1.10.8
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.7 to 1.10.8.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.10.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.7...1.10.8)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index fdac0197..1643e8ce 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.7",
+ "version": "1.10.8",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "b10ceb526d9607903c5b2673f1fc8775dbe48975"
+ "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b10ceb526d9607903c5b2673f1fc8775dbe48975",
- "reference": "b10ceb526d9607903c5b2673f1fc8775dbe48975",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9",
+ "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-16T15:24:20+00:00"
+ "time": "2023-03-24T10:28:16+00:00"
}
],
"packages-dev": [],
From 36ecc1b3d90d6566e7b0a0aeda7ef414bafa6091 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Sun, 26 Mar 2023 22:47:30 +0200
Subject: [PATCH 09/34] Update DNSSEC test link
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
settings.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/settings.php b/settings.php
index 2f21449a..f2c19498 100644
--- a/settings.php
+++ b/settings.php
@@ -940,7 +940,7 @@ if (isset($piholeFTLConf['RATE_LIMIT'])) {
Use an upstream DNS server which supports DNSSEC when activating DNSSEC. Note that
the size of your log might increase significantly
when enabling DNSSEC. A DNSSEC resolver test can be found
- here.
+ here.
Rate-limiting
From d13f2dc7fc1e7a1a5239fc9b7cb29016823ed9f0 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Sun, 26 Mar 2023 20:27:26 -0300
Subject: [PATCH 10/34] Fix a few PHP 8 warnings
Signed-off-by: RD WebDesign
---
scripts/pi-hole/php/func.php | 2 +-
settings.php | 16 +++++++++-------
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/scripts/pi-hole/php/func.php b/scripts/pi-hole/php/func.php
index 1c6652aa..d10ad9bf 100644
--- a/scripts/pi-hole/php/func.php
+++ b/scripts/pi-hole/php/func.php
@@ -635,7 +635,7 @@ function getGateway()
if (array_key_exists('FTLnotrunning', $gateway)) {
$ret = array('ip' => -1);
} else {
- $ret = array_combine(array('ip', 'iface'), explode(' ', $gateway[0]));
+ $ret = array_combine(array('ip', 'iface'), array_pad(explode(' ', $gateway[0]), 2, ''));
}
return $ret;
diff --git a/settings.php b/settings.php
index 2f21449a..22a7e7ea 100644
--- a/settings.php
+++ b/settings.php
@@ -428,16 +428,18 @@ if ($FTLpid !== 0) {
}
} else {
$DHCP = false;
+ $DHCPstart = '';
+ $DHCPend = '';
+ $DHCProuter = '';
+
// Try to guess initial settings
if ($IPv4GW !== 'unknown') {
$DHCPparts = explode('.', $IPv4GW);
- $DHCPstart = $DHCPparts[0].'.'.$DHCPparts[1].'.'.$DHCPparts[2].'.201';
- $DHCPend = $DHCPparts[0].'.'.$DHCPparts[1].'.'.$DHCPparts[2].'.251';
- $DHCProuter = $IPv4GW;
- } else {
- $DHCPstart = '';
- $DHCPend = '';
- $DHCProuter = '';
+ if (isset($DHCPparts[0]) && isset($DHCPparts[1]) && isset($DHCPparts[2])) {
+ $DHCPstart = $DHCPparts[0].'.'.$DHCPparts[1].'.'.$DHCPparts[2].'.201';
+ $DHCPend = $DHCPparts[0].'.'.$DHCPparts[1].'.'.$DHCPparts[2].'.251';
+ $DHCProuter = $IPv4GW;
+ }
}
$DHCPleasetime = 24;
$DHCPIPv6 = false;
From 14f09ce200f49450f31419641a83667608055767 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 1 Apr 2023 10:58:11 +0000
Subject: [PATCH 11/34] Bump phpstan/phpstan from 1.10.8 to 1.10.9
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.8 to 1.10.9.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.10.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.8...1.10.9)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index 1643e8ce..2aa33c10 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.8",
+ "version": "1.10.9",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9"
+ "reference": "9b13dafe3d66693d20fe5729c3dde1d31bb64703"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9",
- "reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b13dafe3d66693d20fe5729c3dde1d31bb64703",
+ "reference": "9b13dafe3d66693d20fe5729c3dde1d31bb64703",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-24T10:28:16+00:00"
+ "time": "2023-03-30T08:58:01+00:00"
}
],
"packages-dev": [],
From e540bca1d4a24f671b6e28e3257cbe809531c8e8 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Sun, 2 Apr 2023 19:42:28 -0300
Subject: [PATCH 12/34] Expose docker tag information using the API
This information is available since the introduction of `versions` file.
Docker info is shown by `pihole -v` and the web interface footer, but
it was never added to the versions API.
Signed-off-by: RD WebDesign
---
api.php | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/api.php b/api.php
index 213512fd..6fcf8768 100644
--- a/api.php
+++ b/api.php
@@ -71,6 +71,13 @@ if (isset($_GET['enable']) && $auth) {
$branches = array('core_branch' => $core_branch,
'web_branch' => $web_branch,
'FTL_branch' => $FTL_branch, );
+ if (isset($versions['DOCKER_VERSION'])) {
+ // Docker info is available only inside containers
+ $updates['docker_update'] = $docker_update;
+ $current['docker_current'] = $docker_current;
+ $latest['docker_latest'] = $docker_latest;
+ }
+
$data = array_merge($data, $updates);
$data = array_merge($data, $current);
$data = array_merge($data, $latest);
From ef5cbae4ff059232e22146504dc8fe9bad49c405 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 8 Apr 2023 10:56:37 +0000
Subject: [PATCH 13/34] Bump eslint-plugin-compat from 4.1.2 to 4.1.4
Bumps [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat) from 4.1.2 to 4.1.4.
- [Release notes](https://github.com/amilajack/eslint-plugin-compat/releases)
- [Changelog](https://github.com/amilajack/eslint-plugin-compat/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amilajack/eslint-plugin-compat/compare/v4.1.2...v4.1.4)
---
updated-dependencies:
- dependency-name: eslint-plugin-compat
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 53 ++++++++++++++++++++++++++---------------------
package.json | 2 +-
2 files changed, 30 insertions(+), 25 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2c83d496..216b85bf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,7 @@
"license": "EUPL-1.2",
"devDependencies": {
"autoprefixer": "^10.4.14",
- "eslint-plugin-compat": "^4.1.2",
+ "eslint-plugin-compat": "^4.1.4",
"postcss": "^8.4.21",
"postcss-cli": "^10.1.0",
"prettier": "2.8.7",
@@ -244,9 +244,9 @@
}
},
"node_modules/@mdn/browser-compat-data": {
- "version": "5.2.35",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.35.tgz",
- "integrity": "sha512-WMGl70X/upKye9Ix0xQtaKzNsFJE6I4ZEexypk1gyiB5REQZv9BI3Stw8Tby25YSGJ7OuYG0+5oCnkv1A+3kRA==",
+ "version": "5.2.49",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.49.tgz",
+ "integrity": "sha512-tXJUP9EFcfeTcn3hpn616qtcbaLMrhqfgsljRnIv/qYckL8ywLodk7Cj3oJlZed3zWLZLnE9LHHsfpO8w4yJuw==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": {
@@ -284,6 +284,12 @@
"node": ">= 8"
}
},
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
"node_modules/@types/eslint": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
@@ -706,20 +712,14 @@
}
},
"node_modules/ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
+ "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^3.3.14"
+ "@mdn/browser-compat-data": "^5.2.34"
}
},
- "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- },
"node_modules/autoprefixer": {
"version": "10.4.14",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
@@ -923,9 +923,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001464",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz",
- "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==",
+ "version": "1.0.30001476",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001476.tgz",
+ "integrity": "sha512-JmpktFppVSvyUN4gsLS0bShY2L9ZUslHLE72vgemBkS43JD2fOvKTKs+GtRwuxrtRGnwJFW0ye7kWRRlLJS9vQ==",
"dev": true,
"funding": [
{
@@ -935,6 +935,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
]
},
@@ -1667,21 +1671,22 @@
}
},
"node_modules/eslint-plugin-compat": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.1.2.tgz",
- "integrity": "sha512-DNrQgDi5L4mAL4FdFboKBlSRg6MWfd75eA7K91lMjtP5ryN+O11qT2FDn7Z6zqy6sZ4sJawUR5V75qzB6l0CBg==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.1.4.tgz",
+ "integrity": "sha512-RxySWBmzfIROLFKgeJBJue2BU/6vM2KJWXWAUq+oW4QtrsZXRxbjgxmO1OfF3sHcRuuIenTS/wgo3GyUWZF24w==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^5.2.34",
- "ast-metadata-inferer": "^0.7.0",
+ "@mdn/browser-compat-data": "^5.2.47",
+ "@tsconfig/node14": "^1.0.3",
+ "ast-metadata-inferer": "^0.8.0",
"browserslist": "^4.21.5",
- "caniuse-lite": "^1.0.30001451",
+ "caniuse-lite": "^1.0.30001473",
"find-up": "^5.0.0",
"lodash.memoize": "4.1.2",
"semver": "7.3.8"
},
"engines": {
- "node": ">=16.x"
+ "node": ">=14.x"
},
"peerDependencies": {
"eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
diff --git a/package.json b/package.json
index 21cf2026..ea214b70 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
},
"devDependencies": {
"autoprefixer": "^10.4.14",
- "eslint-plugin-compat": "^4.1.2",
+ "eslint-plugin-compat": "^4.1.4",
"postcss": "^8.4.21",
"postcss-cli": "^10.1.0",
"prettier": "2.8.7",
From 0829f3e66edb2169f6f1f34b2bf283b861588674 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 8 Apr 2023 10:57:05 +0000
Subject: [PATCH 14/34] Bump phpstan/phpstan from 1.10.9 to 1.10.11
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.9 to 1.10.11.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.10.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.9...1.10.11)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index 2aa33c10..fa23edb2 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.9",
+ "version": "1.10.11",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "9b13dafe3d66693d20fe5729c3dde1d31bb64703"
+ "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b13dafe3d66693d20fe5729c3dde1d31bb64703",
- "reference": "9b13dafe3d66693d20fe5729c3dde1d31bb64703",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8aa62e6ea8b58ffb650e02940e55a788cbc3fe21",
+ "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-03-30T08:58:01+00:00"
+ "time": "2023-04-04T19:17:42+00:00"
}
],
"packages-dev": [],
From d0101870ac5f2207f601571eb0a87e12e9f90fd0 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Mon, 23 Jan 2023 01:39:55 -0300
Subject: [PATCH 15/34] Add a parameter to pidofFTL() function to allow a delay
if necessary
Signed-off-by: RD WebDesign
---
scripts/pi-hole/php/func.php | 6 +++++-
scripts/pi-hole/php/savesettings.php | 3 +++
settings.php | 2 +-
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/scripts/pi-hole/php/func.php b/scripts/pi-hole/php/func.php
index d10ad9bf..7cf75634 100644
--- a/scripts/pi-hole/php/func.php
+++ b/scripts/pi-hole/php/func.php
@@ -693,8 +693,12 @@ function convertUnicodeToIDNA($unicode)
}
// Return PID of FTL (used in settings.php)
-function pidofFTL()
+function pidofFTL($add_delay = false)
{
+ if ($add_delay) {
+ usleep(100000);
+ }
+
return shell_exec('pidof pihole-FTL');
}
diff --git a/scripts/pi-hole/php/savesettings.php b/scripts/pi-hole/php/savesettings.php
index 41f03a64..c4ba3c17 100644
--- a/scripts/pi-hole/php/savesettings.php
+++ b/scripts/pi-hole/php/savesettings.php
@@ -197,6 +197,7 @@ $DNSserverslist = readDNSserversList();
$error = '';
$success = '';
+$FTLrestarted = false;
if (isset($_POST['field'])) {
// Handle CSRF
@@ -445,6 +446,7 @@ if (isset($_POST['field'])) {
case 'restartdns':
pihole_execute('-a restartdns');
+ $FTLrestarted = true;
$success = 'The DNS server has been restarted';
break;
@@ -554,6 +556,7 @@ if (isset($_POST['field'])) {
if ($privacylevel > $level) {
pihole_execute('-a restartdns');
+ $FTLrestarted = true;
$success .= 'The privacy level has been decreased and the DNS resolver has been restarted';
} elseif ($privacylevel < $level) {
$success .= 'The privacy level has been increased';
diff --git a/settings.php b/settings.php
index 5f9ed866..21f3cc1e 100644
--- a/settings.php
+++ b/settings.php
@@ -241,7 +241,7 @@ if (isset($_GET['tab']) && in_array($_GET['tab'], array('sysadmin', 'dns', 'piho
From 3b150a1d43b755c4226af7a3f03d6e583a7083aa Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Mon, 13 Feb 2023 21:36:05 -0300
Subject: [PATCH 16/34] Adding a javascript countdown while checking FTL status
Signed-off-by: RD WebDesign
---
scripts/pi-hole/js/restartdns.js | 39 ++++++++++++++++++++++++++++++++
scripts/pi-hole/php/func.php | 6 +----
settings.php | 34 +++++++++++++++++++---------
3 files changed, 63 insertions(+), 16 deletions(-)
create mode 100644 scripts/pi-hole/js/restartdns.js
diff --git a/scripts/pi-hole/js/restartdns.js b/scripts/pi-hole/js/restartdns.js
new file mode 100644
index 00000000..248fac07
--- /dev/null
+++ b/scripts/pi-hole/js/restartdns.js
@@ -0,0 +1,39 @@
+/* Pi-hole: A black hole for Internet advertisements
+ * (c) 2017 Pi-hole, LLC (https://pi-hole.net)
+ * Network-wide ad blocking via your own hardware.
+ *
+ * This file is copyright under the latest version of the EUPL.
+ * Please see LICENSE file for your rights under this license. */
+
+var timeleft = 60;
+var status = -1;
+var reloadMsg =
+ "FTL was restarted: Reload FTL details.";
+var warningMsg = "FTL was not able to reload after " + timeleft + " seconds.";
+var counterMsg = "FTL is reloading: ";
+
+var reloadTimer = setInterval(function () {
+ $.getJSON("api.php?dns-port", function (data) {
+ if ("FTLnotrunning" in data) {
+ return;
+ }
+
+ status = data["dns-port"];
+ });
+
+ if (timeleft <= 0 || status >= 0) {
+ clearInterval(reloadTimer);
+ if (status < 0) {
+ // FTL was not restarted in 60 seconds. Show warning message
+ document.getElementById("restart-countdown").innerHTML = warningMsg;
+ } else {
+ // FTL restartd.
+ document.getElementById("restart-countdown").innerHTML = reloadMsg;
+ }
+ } else {
+ document.getElementById("restart-countdown").innerHTML =
+ counterMsg + timeleft + " seconds remaining...";
+ }
+
+ timeleft -= 1;
+}, 1000);
diff --git a/scripts/pi-hole/php/func.php b/scripts/pi-hole/php/func.php
index 7cf75634..d10ad9bf 100644
--- a/scripts/pi-hole/php/func.php
+++ b/scripts/pi-hole/php/func.php
@@ -693,12 +693,8 @@ function convertUnicodeToIDNA($unicode)
}
// Return PID of FTL (used in settings.php)
-function pidofFTL($add_delay = false)
+function pidofFTL()
{
- if ($add_delay) {
- usleep(100000);
- }
-
return shell_exec('pidof pihole-FTL');
}
diff --git a/settings.php b/settings.php
index 21f3cc1e..6ad968d9 100644
--- a/settings.php
+++ b/settings.php
@@ -240,10 +240,13 @@ if (isset($_GET['tab']) && in_array($_GET['tab'], array('sysadmin', 'dns', 'piho
-
+ $FTLversion = exec('/usr/bin/pihole-FTL version');
+ ?>
@@ -256,20 +259,19 @@ if ($FTLpid !== 0) {
| Time FTL started: |
- |
+ |
| User / Group: |
- / |
+ |
| Total CPU utilization: |
- % |
+ % |
| Memory utilization: |
- % |
+ % |
|
@@ -298,10 +300,20 @@ if ($FTLpid !== 0) {
|
See also our
DNS cache documentation.
-
+
+
+
+
The FTL service is offline!
-
+
From 3701203d8a0e4edb8a25c9382a4bfff0bcdaec04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Sat, 15 Apr 2023 10:23:31 +0200
Subject: [PATCH 17/34] Trigger stale workflow on issue comments to remove
stale label immediately
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
.github/workflows/stale.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 5c91d176..a3a5d525 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -4,6 +4,7 @@ on:
schedule:
- cron: '0 8 * * *'
workflow_dispatch:
+ issue_comment:
jobs:
stale:
From 3b18e3150042630157bdbd5533080f2ab734fe49 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 15 Apr 2023 10:57:08 +0000
Subject: [PATCH 18/34] Bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.5.0...v3.5.2)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/codespell.yml | 2 +-
.github/workflows/editorconfig-checker.yml | 2 +-
.github/workflows/php-cs-fixer.yml | 2 +-
.github/workflows/phpstan.yml | 2 +-
.github/workflows/sync-back-to-dev.yml | 2 +-
.github/workflows/test.yml | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 5f224fea..8efed61c 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3.5.0
+ uses: actions/checkout@v3.5.2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
index 7bfde527..219dc2fd 100644
--- a/.github/workflows/codespell.yml
+++ b/.github/workflows/codespell.yml
@@ -11,7 +11,7 @@ jobs:
steps:
-
name: Checkout repository
- uses: actions/checkout@v3.5.0
+ uses: actions/checkout@v3.5.2
-
name: Spell-Checking
uses: codespell-project/actions-codespell@master
diff --git a/.github/workflows/editorconfig-checker.yml b/.github/workflows/editorconfig-checker.yml
index 83a44d87..4e46ea1b 100644
--- a/.github/workflows/editorconfig-checker.yml
+++ b/.github/workflows/editorconfig-checker.yml
@@ -9,6 +9,6 @@ jobs:
name: editorconfig-checker
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.0
+ - uses: actions/checkout@v3.5.2
- uses: editorconfig-checker/action-editorconfig-checker@main
- run: editorconfig-checker
diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml
index 8e29f6a7..7659702a 100644
--- a/.github/workflows/php-cs-fixer.yml
+++ b/.github/workflows/php-cs-fixer.yml
@@ -6,7 +6,7 @@ jobs:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.0
+ - uses: actions/checkout@v3.5.2
- name: PHP-CS-Fixer
uses: docker://oskarstark/php-cs-fixer-ga
with:
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
index d10ac400..a1de332b 100644
--- a/.github/workflows/phpstan.yml
+++ b/.github/workflows/phpstan.yml
@@ -8,7 +8,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3.5.0
+ - uses: actions/checkout@v3.5.2
- name: Install composer
uses: php-actions/composer@v6
diff --git a/.github/workflows/sync-back-to-dev.yml b/.github/workflows/sync-back-to-dev.yml
index 540b2b62..ee08adff 100644
--- a/.github/workflows/sync-back-to-dev.yml
+++ b/.github/workflows/sync-back-to-dev.yml
@@ -11,7 +11,7 @@ jobs:
name: Syncing branches
steps:
- name: Checkout
- uses: actions/checkout@v3.5.0
+ uses: actions/checkout@v3.5.2
- name: Opening pull request
run: gh pr create -B devel -H master --title 'Sync master back into development' --body 'Created by Github action' --label 'internal'
env:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 755afc80..b4a75a06 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -19,7 +19,7 @@ jobs:
steps:
- name: Clone repository
- uses: actions/checkout@v3.5.0
+ uses: actions/checkout@v3.5.2
- name: Set up Node.js
uses: actions/setup-node@v3.6.0
From b53b90ddf18add7cb71394623fc7bc23e08c4489 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 15 Apr 2023 10:57:25 +0000
Subject: [PATCH 19/34] Bump phpstan/phpstan from 1.10.11 to 1.10.13
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.11 to 1.10.13.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.11...1.10.13)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index fa23edb2..f66afa92 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.11",
+ "version": "1.10.13",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21"
+ "reference": "f07bf8c6980b81bf9e49d44bd0caf2e737614a70"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8aa62e6ea8b58ffb650e02940e55a788cbc3fe21",
- "reference": "8aa62e6ea8b58ffb650e02940e55a788cbc3fe21",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f07bf8c6980b81bf9e49d44bd0caf2e737614a70",
+ "reference": "f07bf8c6980b81bf9e49d44bd0caf2e737614a70",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-04T19:17:42+00:00"
+ "time": "2023-04-12T19:29:52+00:00"
}
],
"packages-dev": [],
From 44fc92bdded794fdc4557ea7f076a5e1eb72695a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Sun, 16 Apr 2023 18:25:12 +0200
Subject: [PATCH 20/34] Run seperate job to trigger removal on comments
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
.github/workflows/stale.yml | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index a3a5d525..86e7425e 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -7,8 +7,8 @@ on:
issue_comment:
jobs:
- stale:
-
+ stale_action:
+ if: github.event_name != 'issue_comment'
runs-on: ubuntu-latest
permissions:
issues: write
@@ -25,3 +25,17 @@ jobs:
exempt-all-issue-assignees: true
operations-per-run: 300
close-issue-reason: 'not_planned'
+
+ remove_stale: # trigger "stale" removal immediately when stale issues are commented on
+ if: github.event_name == 'issue_comment'
+ permissions:
+ contents: read # for actions/checkout
+ issues: write # to edit issues label
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3.4.0
+ - name: Remove 'stale' label
+ run: gh issue edit ${{ github.event.issue.number }} --remove-label 'stale'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
From 34db6421046276ea01b0b963439ec64c8a641683 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Mon, 17 Apr 2023 20:54:28 +0200
Subject: [PATCH 21/34] Use env variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
.github/workflows/stale.yml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 86e7425e..2223f2d0 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -6,6 +6,9 @@ on:
workflow_dispatch:
issue_comment:
+env:
+ stale_label: stale
+
jobs:
stale_action:
if: github.event_name != 'issue_comment'
@@ -20,7 +23,7 @@ jobs:
days-before-stale: 30
days-before-close: 5
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Please comment or update this issue or it will be closed in 5 days.'
- stale-issue-label: 'stale'
+ stale-issue-label: $stale_label
exempt-issue-labels: 'internal, Fixed In Next Release, Bug, never-stale'
exempt-all-issue-assignees: true
operations-per-run: 300
@@ -36,6 +39,6 @@ jobs:
- name: Checkout
uses: actions/checkout@v3.4.0
- name: Remove 'stale' label
- run: gh issue edit ${{ github.event.issue.number }} --remove-label 'stale'
+ run: gh issue edit ${{ github.event.issue.number }} --remove-label $stale_label
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
From 29259f230530b871722b80e76d241e83ea426899 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 22 Apr 2023 10:57:49 +0000
Subject: [PATCH 22/34] Bump phpstan/phpstan from 1.10.13 to 1.10.14
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.13 to 1.10.14.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.13...1.10.14)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index f66afa92..ea267b84 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.13",
+ "version": "1.10.14",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "f07bf8c6980b81bf9e49d44bd0caf2e737614a70"
+ "reference": "d232901b09e67538e5c86a724be841bea5768a7c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f07bf8c6980b81bf9e49d44bd0caf2e737614a70",
- "reference": "f07bf8c6980b81bf9e49d44bd0caf2e737614a70",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
+ "reference": "d232901b09e67538e5c86a724be841bea5768a7c",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-12T19:29:52+00:00"
+ "time": "2023-04-19T13:47:27+00:00"
}
],
"packages-dev": [],
From a39a53461544fef1357a2f20da16c097bb1dcfd5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 22 Apr 2023 11:53:52 +0000
Subject: [PATCH 23/34] Bump postcss from 8.4.21 to 8.4.23
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.23.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.23)
---
updated-dependencies:
- dependency-name: postcss
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 26 ++++++++++++++++++--------
package.json | 2 +-
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 216b85bf..97f953ea 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"devDependencies": {
"autoprefixer": "^10.4.14",
"eslint-plugin-compat": "^4.1.4",
- "postcss": "^8.4.21",
+ "postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
"prettier": "2.8.7",
"xo": "^0.53.1"
@@ -3880,10 +3880,16 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -4277,9 +4283,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "version": "8.4.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
+ "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
"dev": true,
"funding": [
{
@@ -4289,10 +4295,14 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
diff --git a/package.json b/package.json
index ea214b70..79a40f5b 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"devDependencies": {
"autoprefixer": "^10.4.14",
"eslint-plugin-compat": "^4.1.4",
- "postcss": "^8.4.21",
+ "postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
"prettier": "2.8.7",
"xo": "^0.53.1"
From a3a305b56aa33294570a4c257c76cb35a714a8e2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 25 Apr 2023 21:13:05 +0000
Subject: [PATCH 24/34] Bump yaml from 2.2.1 to 2.2.2
Bumps [yaml](https://github.com/eemeli/yaml) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.2.1...v2.2.2)
---
updated-dependencies:
- dependency-name: yaml
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 16e030e7..050d6082 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6458,9 +6458,9 @@
"dev": true
},
"node_modules/yaml": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz",
- "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
+ "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
"dev": true,
"engines": {
"node": ">= 14"
From ea0475165ca710e63c8af8e36b74665f7812d843 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 25 Apr 2023 21:18:38 +0000
Subject: [PATCH 25/34] Bump prettier from 2.8.7 to 2.8.8
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.7 to 2.8.8.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.7...2.8.8)
---
updated-dependencies:
- dependency-name: prettier
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 8 ++++----
package.json | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index b5532399..368613ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,7 @@
"eslint-plugin-compat": "^4.1.4",
"postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
- "prettier": "2.8.7",
+ "prettier": "2.8.8",
"xo": "^0.53.1"
}
},
@@ -4404,9 +4404,9 @@
}
},
"node_modules/prettier": {
- "version": "2.8.7",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz",
- "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==",
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
diff --git a/package.json b/package.json
index 79a40f5b..2e5f657c 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,7 @@
"eslint-plugin-compat": "^4.1.4",
"postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
- "prettier": "2.8.7",
+ "prettier": "2.8.8",
"xo": "^0.53.1"
},
"browserslist": [
From 086aa51c90de42a6b023b1df1e5a5f19beb19fba Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Tue, 25 Apr 2023 18:58:48 -0300
Subject: [PATCH 26/34] Use a function to execute the API call to retrieve
MAXLOGAGE
Signed-off-by: RD WebDesign
---
api_FTL.php | 13 +++++--------
scripts/pi-hole/php/func.php | 18 ++++++++++++++++++
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/api_FTL.php b/api_FTL.php
index 7e7fb1fa..f8b777cb 100644
--- a/api_FTL.php
+++ b/api_FTL.php
@@ -64,16 +64,13 @@ if ((isset($_GET['summary']) || isset($_GET['summaryRaw']) || !count($_GET)) &&
}
if (isset($_GET['getMaxlogage']) && $auth) {
- $return = callFTLAPI('maxlogage');
- if (array_key_exists('FTLnotrunning', $return)) {
+ $maxlogage = getMaxlogage();
+
+ if ($maxlogage < 0) {
+ // FTL is offline
$data = array('FTLnotrunning' => true);
} else {
- // Convert seconds to hours and rounds to one decimal place.
- $ret = round(intval($return[0]) / 3600, 1);
- // Return 24h if value is 0, empty, null or non numeric.
- $ret = $ret ?: 24;
-
- $data = array_merge($data, array('maxlogage' => $ret));
+ $data = array_merge($data, array('maxlogage' => $maxlogage));
}
}
diff --git a/scripts/pi-hole/php/func.php b/scripts/pi-hole/php/func.php
index d10ad9bf..3c550340 100644
--- a/scripts/pi-hole/php/func.php
+++ b/scripts/pi-hole/php/func.php
@@ -641,6 +641,24 @@ function getGateway()
return $ret;
}
+// Returns the maxlogage used by FTL
+function getMaxlogage()
+{
+ $api_return = callFTLAPI('maxlogage');
+
+ if (array_key_exists('FTLnotrunning', $api_return)) {
+ // FTL is offline. Return "-1"
+ $maxlogage = -1;
+ } else {
+ // Convert seconds to hours and rounds to one decimal place.
+ $maxlogage = round(intval($api_return[0]) / 3600, 1);
+ // Return 24h if value is 0, empty, null or non numeric.
+ $maxlogage = $maxlogage ?: 24;
+ }
+
+ return $maxlogage;
+}
+
// Try to convert possible IDNA domain to Unicode
function convertIDNAToUnicode($IDNA)
{
From 6ce4ad972b324bf7cade6c2b56dcdeb32a11a4d3 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Tue, 25 Apr 2023 19:31:27 -0300
Subject: [PATCH 27/34] Use current time and maxlogage to limit the time range
Signed-off-by: RD WebDesign
---
api_FTL.php | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/api_FTL.php b/api_FTL.php
index f8b777cb..927bbbba 100644
--- a/api_FTL.php
+++ b/api_FTL.php
@@ -75,16 +75,26 @@ if (isset($_GET['getMaxlogage']) && $auth) {
}
if (isset($_GET['overTimeData10mins']) && $auth) {
+ $maxlogage = getMaxlogage();
+
$return = callFTLAPI('overTime');
- if (array_key_exists('FTLnotrunning', $return)) {
+ if (array_key_exists('FTLnotrunning', $return) || $maxlogage < 0) {
$data = array('FTLnotrunning' => true);
} else {
$domains_over_time = array();
$ads_over_time = array();
+
+ // Use current time and maxlogage to limit the time range
+ $time_end = time();
+ $time_start = $time_end - ($maxlogage * 3600);
+
foreach ($return as $line) {
$tmp = explode(' ', $line);
- $domains_over_time[intval($tmp[0])] = intval($tmp[1]);
- $ads_over_time[intval($tmp[0])] = intval($tmp[2]);
+ $timeslot = intval($tmp[0]);
+ if ($timeslot >= $time_start && $timeslot <= $time_end) {
+ $domains_over_time[$timeslot] = intval($tmp[1]);
+ $ads_over_time[$timeslot] = intval($tmp[2]);
+ }
}
$result = array(
@@ -398,16 +408,25 @@ if (isset($_GET['getClientNames']) && $auth) {
}
if (isset($_GET['overTimeDataClients']) && $auth) {
- $return = callFTLAPI('ClientsoverTime');
+ $maxlogage = getMaxlogage();
- if (array_key_exists('FTLnotrunning', $return)) {
+ $return = callFTLAPI('ClientsoverTime');
+ if (array_key_exists('FTLnotrunning', $return) || $maxlogage < 0) {
$data = array('FTLnotrunning' => true);
} else {
$over_time = array();
+
+ // Use current time and maxlogage to limit the time range
+ $time_end = time();
+ $time_start = $time_end - ($maxlogage * 3600);
+
foreach ($return as $line) {
$tmp = explode(' ', $line);
for ($i = 0; $i < count($tmp) - 1; ++$i) {
- $over_time[intval($tmp[0])][$i] = floatval($tmp[$i + 1]);
+ $timeslot = intval($tmp[0]);
+ if ($timeslot >= $time_start && $timeslot <= $time_end) {
+ $over_time[$timeslot][$i] = floatval($tmp[$i + 1]);
+ }
}
}
$result = array('over_time' => $over_time);
From 8a4436a048163ee25432dd2ac63cf35d007d31b9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 8 Apr 2023 13:15:01 +0000
Subject: [PATCH 28/34] Bump xo from 0.53.1 to 0.54.0
Bumps [xo](https://github.com/xojs/xo) from 0.53.1 to 0.54.0.
- [Release notes](https://github.com/xojs/xo/releases)
- [Commits](https://github.com/xojs/xo/compare/v0.53.1...v0.54.0)
---
updated-dependencies:
- dependency-name: xo
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 546 +++++++++++++++++++++++++++-------------------
package.json | 2 +-
2 files changed, 323 insertions(+), 225 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 01aa1431..7795d2ad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,7 @@
"postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
"prettier": "2.8.8",
- "xo": "^0.53.1"
+ "xo": "^0.54.0"
}
},
"node_modules/@babel/code-frame": {
@@ -123,6 +123,30 @@
"node": ">=4"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
+ "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
"node_modules/@eslint/eslintrc": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
@@ -146,6 +170,15 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/js": {
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz",
+ "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@@ -291,9 +324,9 @@
"dev": true
},
"node_modules/@types/eslint": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
- "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==",
+ "version": "8.37.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz",
+ "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==",
"dev": true,
"dependencies": {
"@types/estree": "*",
@@ -348,12 +381,6 @@
"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
"dev": true
},
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -699,6 +726,24 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/arrify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
@@ -1008,9 +1053,9 @@
}
},
"node_modules/ci-info": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
- "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
"dev": true,
"funding": [
{
@@ -1101,28 +1146,21 @@
"dev": true
},
"node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
+ "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
"dev": true,
"dependencies": {
- "@types/parse-json": "^4.0.0",
"import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
"parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=10"
- }
- },
- "node_modules/cosmiconfig/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/cross-spawn": {
@@ -1443,12 +1481,15 @@
}
},
"node_modules/eslint": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
- "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz",
+ "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.4.1",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.2",
+ "@eslint/js": "8.38.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -1459,10 +1500,9 @@
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
+ "eslint-visitor-keys": "^3.4.0",
+ "espree": "^9.5.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
@@ -1483,7 +1523,6 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
@@ -1499,9 +1538,9 @@
}
},
"node_modules/eslint-config-prettier": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
- "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@@ -1529,35 +1568,36 @@
}
},
"node_modules/eslint-formatter-pretty": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz",
- "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-5.0.0.tgz",
+ "integrity": "sha512-Uick451FoL22/wXqyScX3inW8ZlD/GQO7eFXj3bqb6N/ZtuuF00/CwSNIKLbFCJPrX5V4EdQBSgJ/UVnmLRnug==",
"dev": true,
"dependencies": {
- "@types/eslint": "^7.2.13",
+ "@types/eslint": "^8.0.0",
"ansi-escapes": "^4.2.1",
"chalk": "^4.1.0",
- "eslint-rule-docs": "^1.1.5",
+ "eslint-rule-docs": "^1.1.235",
"log-symbols": "^4.0.0",
"plur": "^4.0.0",
"string-width": "^4.2.0",
"supports-hyperlinks": "^2.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
"dev": true,
"dependencies": {
"debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -1640,9 +1680,9 @@
}
},
"node_modules/eslint-plugin-ava": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-13.2.0.tgz",
- "integrity": "sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-14.0.0.tgz",
+ "integrity": "sha512-XmKT6hppaipwwnLVwwvQliSU6AF1QMHiNoLD5JQfzhUhf0jY7CO0O624fQrE+Y/fTb9vbW8r77nKf7M/oHulxw==",
"dev": true,
"dependencies": {
"enhance-visitors": "^1.0.0",
@@ -1655,10 +1695,10 @@
"resolve-from": "^5.0.0"
},
"engines": {
- "node": ">=12.22 <13 || >=14.17 <15 || >=16.4"
+ "node": ">=14.17 <15 || >=16.4"
},
"peerDependencies": {
- "eslint": ">=7.22.0"
+ "eslint": ">=8.26.0"
}
},
"node_modules/eslint-plugin-ava/node_modules/resolve-from": {
@@ -1764,23 +1804,25 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.3",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
"has": "^1.0.3",
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.11.0",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
"tsconfig-paths": "^3.14.1"
},
"engines": {
@@ -1791,12 +1833,12 @@
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"dependencies": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"node_modules/eslint-plugin-import/node_modules/doctrine": {
@@ -1811,16 +1853,19 @@
"node": ">=0.10.0"
}
},
- "node_modules/eslint-plugin-import/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
"node_modules/eslint-plugin-n": {
- "version": "15.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.0.tgz",
- "integrity": "sha512-Hd/F7wz4Mj44Jp0H6Jtty13NcE69GNTY0rVlgTIj1XBnGGVI6UTdDrpE6vqu3AHo07bygq/N+7OH/lgz1emUJw==",
+ "version": "15.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
+ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
"dev": true,
"dependencies": {
"builtins": "^5.0.1",
@@ -1879,24 +1924,26 @@
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "44.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.2.tgz",
- "integrity": "sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==",
+ "version": "46.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.0.tgz",
+ "integrity": "sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.19.1",
- "ci-info": "^3.4.0",
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "ci-info": "^3.6.1",
"clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
"esquery": "^1.4.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.0",
+ "jsesc": "^3.0.2",
"lodash": "^4.17.21",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
"regexp-tree": "^0.1.24",
+ "regjsparser": "^0.9.1",
"safe-regex": "^2.1.1",
- "semver": "^7.3.7",
+ "semver": "^7.3.8",
"strip-indent": "^3.0.0"
},
"engines": {
@@ -1906,7 +1953,7 @@
"url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
"peerDependencies": {
- "eslint": ">=8.23.1"
+ "eslint": ">=8.28.0"
}
},
"node_modules/eslint-rule-docs": {
@@ -1956,21 +2003,47 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+ "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/@eslint/eslintrc": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+ "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.1",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/esm-utils": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-4.1.1.tgz",
- "integrity": "sha512-cTy4OQgEP/yc7RY3s6EgwMGZ10gAPhCLE9FcrQ6/5bhf37o9PZCFSjzQR1tYb4GaKAEMaW1UmDcMZR13H4p6LQ==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-4.1.2.tgz",
+ "integrity": "sha512-hYKPzOCkAU11rMIiH6gvvReARaSLiRhJkGWPcwJB/S4zg7em//YKAcRxwZYw4sW5mRmI6lhV59wWWTdWKwOXvQ==",
"dev": true,
"dependencies": {
- "import-meta-resolve": "2.2.0",
+ "import-meta-resolve": "2.2.2",
"url-or-path": "2.1.0"
},
"funding": {
@@ -1978,14 +2051,14 @@
}
},
"node_modules/espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+ "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2001,9 +2074,9 @@
"dev": true
},
"node_modules/esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
"dependencies": {
"estraverse": "^5.1.0"
@@ -2475,6 +2548,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz",
+ "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -2745,9 +2827,9 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.0.tgz",
- "integrity": "sha512-CpPOtiCHxP9HdtDM5F45tNiAe66Cqlv3f5uHoJjt+KlaLrUh9/Wz9vepADZ78SlqEo62aDWZtj9ydMGXV+CPnw==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
+ "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
"dev": true,
"funding": {
"type": "github",
@@ -2824,9 +2906,9 @@
}
},
"node_modules/irregular-plurals": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz",
- "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
"dev": true,
"engines": {
"node": ">=8"
@@ -2906,9 +2988,9 @@
}
},
"node_modules/is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"dependencies": {
"builtin-modules": "^3.3.0"
@@ -3338,6 +3420,18 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -3356,18 +3450,6 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -4730,6 +4812,27 @@
"url": "https://github.com/sponsors/mysticatea"
}
},
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "dev": true,
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -5225,9 +5328,9 @@
"dev": true
},
"node_modules/to-absolute-glob": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
- "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-3.0.0.tgz",
+ "integrity": "sha512-loO/XEWTRqpfcpI7+Jr2RR2Umaaozx1t6OSVWtMi0oy5F/Fxg3IC+D/TToDnxyAGs7uZBGT/6XmyDUxgsObJXA==",
"dev": true,
"dependencies": {
"is-absolute": "^1.0.0",
@@ -5324,16 +5427,16 @@
}
},
"node_modules/typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=12.20"
}
},
"node_modules/unbox-primitive": {
@@ -5634,9 +5737,9 @@
"dev": true
},
"node_modules/xo": {
- "version": "0.53.1",
- "resolved": "https://registry.npmjs.org/xo/-/xo-0.53.1.tgz",
- "integrity": "sha512-/2R8SPehv1UhiIqJ9uSvrAjslcoygICNsUlEb/Zf2V6rMtr7YCoggc6hlt6b/kbncpR989Roqt6AvEO779dFxw==",
+ "version": "0.54.0",
+ "resolved": "https://registry.npmjs.org/xo/-/xo-0.54.0.tgz",
+ "integrity": "sha512-2YAVQqGOTZ+/ZthvfEdFjp1MoFy0i94s5QgVOhLuXnvvy7u+H1QO4KwecvSBNr5MuoG9WM2LRDkBabAwtCauSA==",
"bundleDependencies": [
"@typescript-eslint/eslint-plugin",
"@typescript-eslint/parser",
@@ -5645,41 +5748,41 @@
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.3.3",
- "@typescript-eslint/eslint-plugin": "^5.43.0",
- "@typescript-eslint/parser": "^5.43.0",
+ "@typescript-eslint/eslint-plugin": "^5.57.1",
+ "@typescript-eslint/parser": "^5.57.1",
"arrify": "^3.0.0",
- "cosmiconfig": "^7.1.0",
+ "cosmiconfig": "^8.1.3",
"define-lazy-prop": "^3.0.0",
- "eslint": "^8.27.0",
- "eslint-config-prettier": "^8.5.0",
+ "eslint": "^8.37.0",
+ "eslint-config-prettier": "^8.8.0",
"eslint-config-xo": "^0.43.1",
- "eslint-config-xo-typescript": "^0.55.0",
- "eslint-formatter-pretty": "^4.1.0",
+ "eslint-config-xo-typescript": "^0.57.0",
+ "eslint-formatter-pretty": "^5.0.0",
"eslint-import-resolver-webpack": "^0.13.2",
- "eslint-plugin-ava": "^13.2.0",
+ "eslint-plugin-ava": "^14.0.0",
"eslint-plugin-eslint-comments": "^3.2.0",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-n": "^15.5.1",
+ "eslint-plugin-import": "^2.27.5",
+ "eslint-plugin-n": "^15.7.0",
"eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-prettier": "^4.2.1",
- "eslint-plugin-unicorn": "^44.0.2",
- "esm-utils": "^4.1.0",
+ "eslint-plugin-unicorn": "^46.0.0",
+ "esm-utils": "^4.1.2",
"find-cache-dir": "^4.0.0",
"find-up": "^6.3.0",
"get-stdin": "^9.0.0",
+ "get-tsconfig": "^4.5.0",
"globby": "^13.1.2",
"imurmurhash": "^0.1.4",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "json5": "^2.2.1",
"lodash-es": "^4.17.21",
"meow": "^11.0.0",
"micromatch": "^4.0.5",
"open-editor": "^4.0.0",
- "prettier": "^2.7.1",
+ "prettier": "^2.8.7",
"semver": "^7.3.8",
"slash": "^5.0.0",
- "to-absolute-glob": "^2.0.2",
- "typescript": "^4.9.3"
+ "to-absolute-glob": "^3.0.0",
+ "typescript": "^5.0.3"
},
"bin": {
"xo": "cli.js"
@@ -5691,6 +5794,30 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/xo/node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/xo/node_modules/@eslint-community/regexpp": {
+ "version": "4.5.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
"node_modules/xo/node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"dev": true,
@@ -5739,18 +5866,19 @@
"license": "MIT"
},
"node_modules/xo/node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.43.0",
- "@typescript-eslint/type-utils": "5.43.0",
- "@typescript-eslint/utils": "5.43.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.57.1",
+ "@typescript-eslint/type-utils": "5.57.1",
+ "@typescript-eslint/utils": "5.57.1",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"natural-compare-lite": "^1.4.0",
- "regexpp": "^3.2.0",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
},
@@ -5772,14 +5900,14 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/parser": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.43.0",
- "@typescript-eslint/types": "5.43.0",
- "@typescript-eslint/typescript-estree": "5.43.0",
+ "@typescript-eslint/scope-manager": "5.57.1",
+ "@typescript-eslint/types": "5.57.1",
+ "@typescript-eslint/typescript-estree": "5.57.1",
"debug": "^4.3.4"
},
"engines": {
@@ -5799,13 +5927,13 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/scope-manager": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.43.0",
- "@typescript-eslint/visitor-keys": "5.43.0"
+ "@typescript-eslint/types": "5.57.1",
+ "@typescript-eslint/visitor-keys": "5.57.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -5816,13 +5944,13 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/type-utils": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.43.0",
- "@typescript-eslint/utils": "5.43.0",
+ "@typescript-eslint/typescript-estree": "5.57.1",
+ "@typescript-eslint/utils": "5.57.1",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -5843,7 +5971,7 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/types": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -5856,13 +5984,13 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "5.43.0",
- "@typescript-eslint/visitor-keys": "5.43.0",
+ "@typescript-eslint/types": "5.57.1",
+ "@typescript-eslint/visitor-keys": "5.57.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -5912,18 +6040,18 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/utils": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.43.0",
- "@typescript-eslint/types": "5.43.0",
- "@typescript-eslint/typescript-estree": "5.43.0",
+ "@typescript-eslint/scope-manager": "5.57.1",
+ "@typescript-eslint/types": "5.57.1",
+ "@typescript-eslint/typescript-estree": "5.57.1",
"eslint-scope": "^5.1.1",
- "eslint-utils": "^3.0.0",
"semver": "^7.3.7"
},
"engines": {
@@ -5938,12 +6066,12 @@
}
},
"node_modules/xo/node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.43.0",
+ "version": "5.57.1",
"dev": true,
"inBundle": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "5.43.0",
+ "@typescript-eslint/types": "5.57.1",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -6011,7 +6139,7 @@
}
},
"node_modules/xo/node_modules/eslint-config-xo-typescript": {
- "version": "0.55.0",
+ "version": "0.57.0",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -6022,8 +6150,8 @@
"url": "https://github.com/sponsors/sindresorhus"
},
"peerDependencies": {
- "@typescript-eslint/eslint-plugin": ">=5.43.0",
- "@typescript-eslint/parser": ">=5.43.0",
+ "@typescript-eslint/eslint-plugin": ">=5.57.0",
+ "@typescript-eslint/parser": ">=5.57.0",
"eslint": ">=8.0.0",
"typescript": ">=4.4"
}
@@ -6050,40 +6178,16 @@
"node": ">=4.0"
}
},
- "node_modules/xo/node_modules/eslint-utils": {
- "version": "3.0.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/xo/node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/xo/node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
+ "version": "3.4.0",
"dev": true,
"inBundle": true,
"license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/xo/node_modules/esrecurse": {
@@ -6124,7 +6228,7 @@
}
},
"node_modules/xo/node_modules/fastq": {
- "version": "1.13.0",
+ "version": "1.15.0",
"dev": true,
"inBundle": true,
"license": "ISC",
@@ -6172,8 +6276,14 @@
"node": ">= 6"
}
},
+ "node_modules/xo/node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "dev": true,
+ "inBundle": true,
+ "license": "MIT"
+ },
"node_modules/xo/node_modules/ignore": {
- "version": "5.2.0",
+ "version": "5.2.4",
"dev": true,
"inBundle": true,
"license": "MIT",
@@ -6334,18 +6444,6 @@
"inBundle": true,
"license": "MIT"
},
- "node_modules/xo/node_modules/regexpp": {
- "version": "3.2.0",
- "dev": true,
- "inBundle": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
"node_modules/xo/node_modules/reusify": {
"version": "1.0.4",
"dev": true,
@@ -6406,6 +6504,12 @@
"node": ">=10"
}
},
+ "node_modules/xo/node_modules/semver/node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "inBundle": true,
+ "license": "ISC"
+ },
"node_modules/xo/node_modules/to-regex-range": {
"version": "5.0.1",
"dev": true,
@@ -6439,12 +6543,6 @@
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
- "node_modules/xo/node_modules/yallist": {
- "version": "4.0.0",
- "dev": true,
- "inBundle": true,
- "license": "ISC"
- },
"node_modules/xo/node_modules/yocto-queue": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
diff --git a/package.json b/package.json
index 2e5f657c..0333a516 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
"postcss": "^8.4.23",
"postcss-cli": "^10.1.0",
"prettier": "2.8.8",
- "xo": "^0.53.1"
+ "xo": "^0.54.0"
},
"browserslist": [
"defaults",
From 34e45edbda1aa9c76208b010dd6919f356a2cc84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Sat, 8 Apr 2023 21:16:06 +0200
Subject: [PATCH 29/34] Fix warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
scripts/pi-hole/js/db_lists.js | 6 +++---
scripts/pi-hole/js/db_queries.js | 12 ++++++------
scripts/pi-hole/js/gravity.js | 6 +++---
scripts/pi-hole/js/groups.js | 2 +-
scripts/pi-hole/js/index.js | 16 ++++++++--------
scripts/pi-hole/js/network.js | 6 +++---
scripts/pi-hole/js/queries.js | 6 +++---
scripts/pi-hole/js/settings.js | 24 ++++++++++++------------
scripts/pi-hole/js/utils.js | 20 ++++++++++----------
9 files changed, 49 insertions(+), 49 deletions(-)
diff --git a/scripts/pi-hole/js/db_lists.js b/scripts/pi-hole/js/db_lists.js
index aec1e08c..c22ed32b 100644
--- a/scripts/pi-hole/js/db_lists.js
+++ b/scripts/pi-hole/js/db_lists.js
@@ -76,11 +76,11 @@ function updateTopClientsChart() {
data.top_sources[utils.escapeHtml(client)] = data.top_sources[client];
}
- if (client.indexOf("|") !== -1) {
+ if (client.indexOf("|") === -1) {
+ clientname = client;
+ } else {
var idx = client.indexOf("|");
clientname = client.substr(0, idx);
- } else {
- clientname = client;
}
percentage = (data.top_sources[client] / sum) * 100;
diff --git a/scripts/pi-hole/js/db_queries.js b/scripts/pi-hole/js/db_queries.js
index 535d38ac..133b3f4e 100644
--- a/scripts/pi-hole/js/db_queries.js
+++ b/scripts/pi-hole/js/db_queries.js
@@ -95,15 +95,15 @@ var tableApi, statistics;
function handleAjaxError(xhr, textStatus) {
if (textStatus === "timeout") {
alert("The server took too long to send the data.");
- } else if (xhr.responseText.indexOf("Connection refused") !== -1) {
- alert("An error occurred while loading the data: Connection refused. Is FTL running?");
- } else {
+ } else if (xhr.responseText.indexOf("Connection refused") === -1) {
alert(
"An unknown error occurred while loading the data.\n" +
xhr.responseText +
"\nCheck the server's log files (/var/log/lighttpd/error-pihole.log) for details.\n\nYou may need to increase PHP memory limit." +
"\n\nYou can find more info in pi-hole's FAQ:\nhttps://docs.pi-hole.net/main/faq/#error-while-loading-data-from-the-long-term-database"
);
+ } else {
+ alert("An error occurred while loading the data: Connection refused. Is FTL running?");
}
$("#all-queries_processing").hide();
@@ -457,10 +457,10 @@ $(function () {
});
$("#all-queries tbody").on("click", "button", function () {
var data = tableApi.row($(this).parents("tr")).data();
- if ([1, 4, 5, 9, 10, 11].indexOf(data[4]) !== -1) {
- utils.addFromQueryLog(data[2], "white");
- } else {
+ if ([1, 4, 5, 9, 10, 11].indexOf(data[4]) === -1) {
utils.addFromQueryLog(data[2], "black");
+ } else {
+ utils.addFromQueryLog(data[2], "white");
}
});
diff --git a/scripts/pi-hole/js/gravity.js b/scripts/pi-hole/js/gravity.js
index 993dddba..c5fc6465 100644
--- a/scripts/pi-hole/js/gravity.js
+++ b/scripts/pi-hole/js/gravity.js
@@ -34,11 +34,11 @@ function eventsource() {
// Detect ${OVER}
var newString = "<------";
- if (e.data.indexOf(newString) !== -1) {
+ if (e.data.indexOf(newString) === -1) {
+ ta.append(e.data);
+ } else {
ta.text(ta.text().substring(0, ta.text().lastIndexOf("\n")) + "\n");
ta.append(e.data.replace(newString, ""));
- } else {
- ta.append(e.data);
}
},
false
diff --git a/scripts/pi-hole/js/groups.js b/scripts/pi-hole/js/groups.js
index 30efc063..96dbedb8 100644
--- a/scripts/pi-hole/js/groups.js
+++ b/scripts/pi-hole/js/groups.js
@@ -79,7 +79,7 @@ $(function () {
statusEl.on("change", editGroup);
$("td:eq(3)", row).html('');
- var desc = data.description !== null ? data.description : "";
+ var desc = data.description === null ? "" : data.description;
var descEl = $("#desc_" + data.id, row);
descEl.val(utils.unescapeHtml(desc));
descEl.on("change", editGroup);
diff --git a/scripts/pi-hole/js/index.js b/scripts/pi-hole/js/index.js
index f27b1749..e70d856b 100644
--- a/scripts/pi-hole/js/index.js
+++ b/scripts/pi-hole/js/index.js
@@ -491,13 +491,13 @@ function updateTopClientsChart() {
}
client = utils.escapeHtml(client);
- if (client.indexOf("|") !== -1) {
+ if (client.indexOf("|") === -1) {
+ clientname = client;
+ clientip = client;
+ } else {
idx = client.indexOf("|");
clientname = client.substr(0, idx);
clientip = client.substr(idx + 1, client.length - idx);
- } else {
- clientname = client;
- clientip = client;
}
url =
@@ -531,7 +531,7 @@ function updateTopClientsChart() {
}
client = utils.escapeHtml(client);
- if (client.indexOf("|") !== -1) {
+ if (client.indexOf("|") === -1) {
idx = client.indexOf("|");
clientname = client.substr(0, idx);
clientip = client.substr(idx + 1, client.length - idx);
@@ -719,10 +719,10 @@ function updateSummaryData(runOnce) {
}, 500);
})
.done(function () {
- if (!FTLoffline) {
- setTimer(1);
- } else {
+ if (FTLoffline) {
setTimer(10);
+ } else {
+ setTimer(1);
}
})
.fail(function () {
diff --git a/scripts/pi-hole/js/network.js b/scripts/pi-hole/js/network.js
index 7899374b..80c9591c 100644
--- a/scripts/pi-hole/js/network.js
+++ b/scripts/pi-hole/js/network.js
@@ -20,10 +20,10 @@ var DAY_IN_SECONDS = 24 * 60 * 60;
function handleAjaxError(xhr, textStatus) {
if (textStatus === "timeout") {
alert("The server took too long to send the data.");
- } else if (xhr.responseText.indexOf("Connection refused") !== -1) {
- alert("An error occurred while loading the data: Connection refused. Is FTL running?");
- } else {
+ } else if (xhr.responseText.indexOf("Connection refused") === -1) {
alert("An unknown error occurred while loading the data.\n" + xhr.responseText);
+ } else {
+ alert("An error occurred while loading the data: Connection refused. Is FTL running?");
}
$("#network-entries_processing").hide();
diff --git a/scripts/pi-hole/js/queries.js b/scripts/pi-hole/js/queries.js
index 708db6e8..08af373b 100644
--- a/scripts/pi-hole/js/queries.js
+++ b/scripts/pi-hole/js/queries.js
@@ -31,10 +31,10 @@ var colTypes = ["time", "query type", "domain", "client", "status", "reply type"
function handleAjaxError(xhr, textStatus) {
if (textStatus === "timeout") {
alert("The server took too long to send the data.");
- } else if (xhr.responseText.indexOf("Connection refused") !== -1) {
- alert("An error occurred while loading the data: Connection refused. Is FTL running?");
- } else {
+ } else if (xhr.responseText.indexOf("Connection refused") === -1) {
alert("An unknown error occurred while loading the data.\n" + xhr.responseText);
+ } else {
+ alert("An error occurred while loading the data: Connection refused. Is FTL running?");
}
$("#all-queries_processing").hide();
diff --git a/scripts/pi-hole/js/settings.js b/scripts/pi-hole/js/settings.js
index 1acf786d..a9820f74 100644
--- a/scripts/pi-hole/js/settings.js
+++ b/scripts/pi-hole/js/settings.js
@@ -366,15 +366,15 @@ $(function () {
var bargraphs = $("#bargraphs");
var chkboxData = localStorage ? localStorage.getItem("barchart_chkbox") : null;
- if (chkboxData !== null) {
- // Restore checkbox state
- bargraphs.prop("checked", chkboxData === "true");
- } else {
+ if (chkboxData === null) {
// Initialize checkbox
bargraphs.prop("checked", true);
if (localStorage) {
localStorage.setItem("barchart_chkbox", true);
}
+ } else {
+ // Restore checkbox state
+ bargraphs.prop("checked", chkboxData === "true");
}
bargraphs.on("click", function () {
@@ -386,15 +386,15 @@ $(function () {
var colorfulQueryLog = $("#colorfulQueryLog");
var chkboxData = localStorage ? localStorage.getItem("colorfulQueryLog_chkbox") : null;
- if (chkboxData !== null) {
- // Restore checkbox state
- colorfulQueryLog.prop("checked", chkboxData === "true");
- } else {
+ if (chkboxData === null) {
// Initialize checkbox
colorfulQueryLog.prop("checked", false);
if (localStorage) {
localStorage.setItem("colorfulQueryLog_chkbox", false);
}
+ } else {
+ // Restore checkbox state
+ colorfulQueryLog.prop("checked", chkboxData === "true");
}
colorfulQueryLog.on("click", function () {
@@ -452,15 +452,15 @@ $(function () {
var nonfatalwarnigns = $("#hideNonfatalDnsmasqWarnings");
var chkboxData = localStorage ? localStorage.getItem("hideNonfatalDnsmasqWarnings_chkbox") : null;
- if (chkboxData !== null) {
- // Restore checkbox state
- nonfatalwarnigns.prop("checked", chkboxData === "true");
- } else {
+ if (chkboxData === null) {
// Initialize checkbox
nonfatalwarnigns.prop("checked", false);
if (localStorage) {
localStorage.setItem("hideNonfatalDnsmasqWarnings_chkbox", false);
}
+ } else {
+ // Restore checkbox state
+ nonfatalwarnigns.prop("checked", chkboxData === "true");
}
nonfatalwarnigns.on("click", function () {
diff --git a/scripts/pi-hole/js/utils.js b/scripts/pi-hole/js/utils.js
index 9d84116a..137db8b6 100644
--- a/scripts/pi-hole/js/utils.js
+++ b/scripts/pi-hole/js/utils.js
@@ -243,7 +243,7 @@ function stateLoadCallback(itemName) {
// Receive previous state from client's local storage area
if (localStorage === null) {
var item = backupStorage[itemName];
- data = typeof item === "undefined" ? null : item;
+ data = item === "undefined" ? null : item;
} else {
data = localStorage.getItem(itemName);
}
@@ -310,15 +310,7 @@ function addFromQueryLog(domain, list) {
},
success: function (response) {
alProcessing.hide();
- if (!response.success) {
- // Failure
- alNetworkErr.hide();
- alCustomErr.html(response.message);
- alFailure.fadeIn(1000);
- setTimeout(function () {
- alertModal.modal("hide");
- }, 10000);
- } else {
+ if (response.success) {
// Success
alSuccess.children(alDomain).text(domain);
alSuccess.children(alList).text(listtype);
@@ -326,6 +318,14 @@ function addFromQueryLog(domain, list) {
setTimeout(function () {
alertModal.modal("hide");
}, 2000);
+ } else {
+ // Failure
+ alNetworkErr.hide();
+ alCustomErr.html(response.message);
+ alFailure.fadeIn(1000);
+ setTimeout(function () {
+ alertModal.modal("hide");
+ }, 10000);
}
},
error: function () {
From 0504ab61640a473618a5b16c81a82c9885d42902 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?=
Date: Mon, 10 Apr 2023 21:00:13 +0200
Subject: [PATCH 30/34] Disable unicorn/no-negated-condition rulse
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König
---
package.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 0333a516..73f6ea77 100644
--- a/package.json
+++ b/package.json
@@ -101,7 +101,8 @@
"unicorn/prefer-string-slice": "off",
"unicorn/prevent-abbreviations": "off",
"unicorn/prefer-logical-operator-over-ternary": "off",
- "unicorn/switch-case-braces": "off"
+ "unicorn/switch-case-braces": "off",
+ "unicorn/no-negated-condition": "off"
}
},
"dependencies": {}
From a688c00ba4f48f792a728c323a2fcfc27333b694 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 13 May 2023 11:07:36 +0000
Subject: [PATCH 31/34] Bump phpstan/phpstan from 1.10.14 to 1.10.15
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.14 to 1.10.15.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.14...1.10.15)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/composer.lock b/composer.lock
index ea267b84..d3b37aa9 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "phpstan/phpstan",
- "version": "1.10.14",
+ "version": "1.10.15",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "d232901b09e67538e5c86a724be841bea5768a7c"
+ "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
- "reference": "d232901b09e67538e5c86a724be841bea5768a7c",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/762c4dac4da6f8756eebb80e528c3a47855da9bd",
+ "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd",
"shasum": ""
},
"require": {
@@ -66,7 +66,7 @@
"type": "tidelift"
}
],
- "time": "2023-04-19T13:47:27+00:00"
+ "time": "2023-05-09T15:28:01+00:00"
}
],
"packages-dev": [],
From 57600b0e22fa9557217b6a2a2d99aa55b1a89d61 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Thu, 18 May 2023 19:11:35 -0300
Subject: [PATCH 32/34] Tweak gravity to show the new parse list output
Replaces every `\r` returned by `pihole-FTL gravity parseList` with a
known string to allow overwriting the previous line.
Signed-off-by: RD WebDesign
---
scripts/pi-hole/php/gravity.sh.php | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/scripts/pi-hole/php/gravity.sh.php b/scripts/pi-hole/php/gravity.sh.php
index e7c3323d..0abf5ec8 100644
--- a/scripts/pi-hole/php/gravity.sh.php
+++ b/scripts/pi-hole/php/gravity.sh.php
@@ -22,7 +22,14 @@ header('Cache-Control: no-cache');
function echoEvent($datatext)
{
// Detect ${OVER} and replace it with something we can safely transmit
+ // This allows every line (including progress and error messages) to be shown on the page
+
+ // Replace "\r[K" (generated by gravity.sh) with "<------"
$datatext = str_replace("\r[K", '<------', $datatext);
+
+ // Replace "\r" generated by "pihole-FTL gravity parseList" command
+ $datatext = str_replace("\r", '<------', $datatext);
+
$pos = strpos($datatext, '<------');
// Detect if the ${OVER} line is within this line, e.g.
// "Pending: String to replace${OVER}Done: String has been replaced"
From e6cc0ef44f3e3157bf78d2f43f80d252d7f0d409 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Thu, 18 May 2023 19:59:10 -0300
Subject: [PATCH 33/34] Replace the character with the `\e` escape
sequence
Signed-off-by: RD WebDesign
---
scripts/pi-hole/php/gravity.sh.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/pi-hole/php/gravity.sh.php b/scripts/pi-hole/php/gravity.sh.php
index 0abf5ec8..cd24090a 100644
--- a/scripts/pi-hole/php/gravity.sh.php
+++ b/scripts/pi-hole/php/gravity.sh.php
@@ -24,8 +24,8 @@ function echoEvent($datatext)
// Detect ${OVER} and replace it with something we can safely transmit
// This allows every line (including progress and error messages) to be shown on the page
- // Replace "\r[K" (generated by gravity.sh) with "<------"
- $datatext = str_replace("\r[K", '<------', $datatext);
+ // Replace "\r\e[K" ("CR+ESC+[" generated by gravity.sh) with "<------"
+ $datatext = str_replace("\r\e[K", '<------', $datatext);
// Replace "\r" generated by "pihole-FTL gravity parseList" command
$datatext = str_replace("\r", '<------', $datatext);
From ee2dfe317316d956314bda1576838389e57a3ed0 Mon Sep 17 00:00:00 2001
From: RD WebDesign
Date: Mon, 22 May 2023 22:49:52 -0300
Subject: [PATCH 34/34] Adding more detailed description to the function
Signed-off-by: RD WebDesign
---
scripts/pi-hole/php/gravity.sh.php | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/scripts/pi-hole/php/gravity.sh.php b/scripts/pi-hole/php/gravity.sh.php
index cd24090a..44a747a6 100644
--- a/scripts/pi-hole/php/gravity.sh.php
+++ b/scripts/pi-hole/php/gravity.sh.php
@@ -21,20 +21,20 @@ header('Cache-Control: no-cache');
function echoEvent($datatext)
{
- // Detect ${OVER} and replace it with something we can safely transmit
+ // "pihole -g" command uses an escape sequence to allow overwriting lines = ${OVER}
+ // The ${OVER} sequence is a Carriage Return ("\r") followed by "ESC+[+K" ("\e[K")
// This allows every line (including progress and error messages) to be shown on the page
- // Replace "\r\e[K" ("CR+ESC+[" generated by gravity.sh) with "<------"
+ // Replace ${OVER} with something we can safely transmit and use on the javascript code
$datatext = str_replace("\r\e[K", '<------', $datatext);
// Replace "\r" generated by "pihole-FTL gravity parseList" command
$datatext = str_replace("\r", '<------', $datatext);
$pos = strpos($datatext, '<------');
- // Detect if the ${OVER} line is within this line, e.g.
- // "Pending: String to replace${OVER}Done: String has been replaced"
- // If this is the case, we have to remove everything before ${OVER}
- // and return only the text thereafter
+ // If the "<------" string is in the middle of the line we remove everything before it
+ // Example: "Pending: String to replace<------Done: String has been replaced"
+ // After replacing: "<------Done: String has been replaced"
if ($pos !== false && $pos !== 0) {
$datatext = substr($datatext, $pos);
}