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" (generated by gravity.sh) with "<------" $datatext = str_replace("\r", '<------', $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" (generated by gravity.sh) with "<------" - $datatext = str_replace("\r", '<------', $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); }