diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4b54cc8..cab6cc8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,6 +8,8 @@ updates: time: "10:00" open-pull-requests-limit: 10 versioning-strategy: increase + reviewers: + - "pi-hole/docs-maintainers" - package-ecosystem: pip directory: "/" schedule: @@ -18,9 +20,13 @@ updates: allow: - dependency-type: direct - dependency-type: indirect + reviewers: + - "pi-hole/docs-maintainers" - package-ecosystem: "github-actions" directory: "/" schedule: interval: weekly day: saturday time: "10:00" + reviewers: + - "pi-hole/docs-maintainers" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e00a2b6..1d81aaa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: "${{ env.PYTHON_VERSION }}" architecture: "x64" diff --git a/README.md b/README.md index 11a0083..4ad5090 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Please make sure you fork the repo and change the clone URL in the example below git clone https://github.com/YOUR-USERNAME/docs cd docs sudo apt install python3-pip - sudo pip3 install -r requirements.txt + pip3 install -r requirements.txt ``` - Running the docs server: diff --git a/docs/database/ftl.md b/docs/database/ftl.md index b224d5f..31e7fee 100644 --- a/docs/database/ftl.md +++ b/docs/database/ftl.md @@ -54,7 +54,7 @@ Label | Type | Allowed to by empty | Content `reply_time` | real | Yes | Seconds it took until the final reply was received `dnssec` | integer | Yes | Type of the DNSSEC status for this query (see [DNSSEC status](ftl.md#dnssec-status)) -The `queries` `VIEW` is dynamically generated from the data actually stored in the tables `queries_storage` and the linking tables `domain_by_id`, `client_by_id`, `forward_by_id`, and `addinfo_by_id` (see below). The table `queries_storage` will contains integer IDs pointing to the respective entries of the linking tables to save space and make searching the database faster. If you haven't upgraded for some time, the table may still contain strings instead of integer IDs. +The `queries` `VIEW` is dynamically generated from the data actually stored in the `query_storage` table and the linking tables `domain_by_id`, `client_by_id`, `forward_by_id`, and `addinfo_by_id` (see below). The table `query_storage` will contains integer IDs pointing to the respective entries of the linking tables to save space and make searching the database faster. If you haven't upgraded for some time, the table may still contain strings instead of integer IDs. #### Data-dependent `additional_info` field diff --git a/docs/ftldns/telnet-api.md b/docs/ftldns/telnet-api.md index 0df2784..5bec0a6 100644 --- a/docs/ftldns/telnet-api.md +++ b/docs/ftldns/telnet-api.md @@ -1,172 +1,250 @@ Connect via e.g. `telnet 127.0.0.1 4711` or use `echo ">command" | nc 127.0.0.1 4711` -- `>quit`: Closes the connection to the client +#### `>quit` {data-toc-label='quit'} -- `>stats` : Get current statistics +Closes the connection to the client - ```text - domains_being_blocked 116007 - dns_queries_today 30163 - ads_blocked_today 5650 - ads_percentage_today 18.731558 - unique_domains 1056 - queries_forwarded 4275 - queries_cached 20238 - clients_ever_seen 11 - unique_clients 9 - status enabled - ``` +--- -- `>overTime` : over time data (10 min intervals) +#### `>stats` {data-toc-label='stats'} - ```text - 1525546500 163 0 - 1525547100 154 1 - 1525547700 164 0 - 1525548300 167 0 - 1525548900 151 0 - 1525549500 143 0 - [...] - ``` +Get current statistics -- `>top-domains` : get top domains +```text +domains_being_blocked 116007 +dns_queries_today 30163 +ads_blocked_today 5650 +ads_percentage_today 18.731558 +unique_domains 1056 +queries_forwarded 4275 +queries_cached 20238 +clients_ever_seen 11 +unique_clients 9 +status enabled +``` - ```text - 0 8462 x.y.z.de - 1 236 safebrowsing-cache.google.com - 2 116 pi.hole - 3 109 z.y.x.de - 4 93 safebrowsing.google.com - 5 96 plus.google.com - [...] - ``` +--- - Variant: `>top-domains (15)` to show (up to) 15 entries +#### `>overTime` {data-toc-label='overTime'} -- `>top-ads` : get top ad domains +Get over time data (10 min intervals) - ```text - 0 8 googleads.g.doubleclick.net - 1 6 www.googleadservices.com - 2 1 cdn.mxpnl.com - 3 1 collector.githubapp.com - 4 1 www.googletagmanager.com - 5 1 s.zkcdn.net - [...] - ``` +```text +1525546500 163 0 +1525547100 154 1 +1525547700 164 0 +1525548300 167 0 +1525548900 151 0 +1525549500 143 0 +[...] +``` - Variant: `>top-ads (14)` to show (up to) 14 entries +--- -- `top-clients` : get recently active top clients (IP addresses + hostnames (if available)) +#### `>top-domains` {data-toc-label='top-domains'} - ```text - 0 9373 192.168.2.1 router - 1 484 192.168.2.2 work-machine - 2 8 127.0.0.1 localhost - ``` +Get top domains - Variant: `>top-clients (9)` to show (up to) 9 client entries or `>top-clients withzero (15)` to show (up to) 15 clients even if they have not been active recently (see PR #124 for further details) +```text +0 8462 x.y.z.de +1 236 safebrowsing-cache.google.com +2 116 pi.hole +3 109 z.y.x.de +4 93 safebrowsing.google.com +5 96 plus.google.com +[...] +``` -- `>forward-dest` : get forward destinations (IP addresses + hostnames (if available)) along with the percentage. The first result (ID -2) will always be the percentage of domains answered from blocklists, whereas the second result (ID -1) will be the queries answered from the cache +Variant: `>top-domains (15)` to show (up to) 15 entries - ```text - -2 18.70 blocklist blocklist - -1 67.10 cache cache - 0 14.20 127.0.0.1 localhost - ``` +--- - Variant: `>forward-dest unsorted` to show forward destinations in unsorted order (equivalent to using `>forward-names`) +#### `>top-ads` {data-toc-label='top-ads'} -- `>querytypes` : get collected query types percentage +Get top ad domains - ```text - A (IPv4): 53.45 - AAAA (IPv6): 45.32 - ANY: 0.00 - SRV: 0.64 - SOA: 0.05 - PTR: 0.54 - TXT: 0.00 - ``` +```text +0 8 googleads.g.doubleclick.net +1 6 www.googleadservices.com +2 1 cdn.mxpnl.com +3 1 collector.githubapp.com +4 1 www.googletagmanager.com +5 1 s.zkcdn.net +[...] +``` -- `>getallqueries` : get all queries that FTL has in memory +Variant: `>top-ads (14)` to show (up to) 14 entries - ```text - 1525554586 A fonts.googleapis.com 192.168.2.100 3 0 4 6 - 1525554586 AAAA fonts.googleapis.com 192.168.2.100 3 0 4 5 - 1525554586 A www.mkdocs.org 192.168.2.100 3 0 4 7 - 1525554586 AAAA www.mkdocs.org 192.168.2.100 2 0 3 21 - 1525554586 A squidfunk.github.io 192.168.2.100 2 0 3 20 - 1525554586 A pi-hole.net 192.168.2.100 3 0 4 5 - 1525554586 AAAA squidfunk.github.io 192.168.2.100 3 0 1 6 - 1525554586 AAAA pi-hole.net 192.168.2.100 2 0 1 18 - 1525554586 A github.com 192.168.2.100 3 0 4 5 - 1525554586 AAAA github.com 192.168.2.100 2 0 1 18 - ``` +--- - Variants: `>getallqueries (37)` show (up to) 37 latest entries, `>getallqueries-time 1483964295 1483964312` gets all queries that FTL has in its database in a limited time interval, `>getallqueries-time 1483964295 1483964312 (17)` show matches in the (up to) 17 latest entries, `>getallqueries-domain www.google.com` gets all queries that FTL has in its database for a specific domain name, `>getallqueries-client 2.3.4.5` : gets all queries that FTL has in its database for a specific client name *or* IP +#### `>top-clients` {data-toc-label='top-clients'} -- `>recentBlocked` : get most recently pi-holed domain name +Get recently active top clients (IP addresses + hostnames (if available)) - ```text - www.googleadservices.com - ``` +```text +0 9373 192.168.2.1 router +1 484 192.168.2.2 work-machine +2 8 127.0.0.1 localhost +``` - Variant: `>recentBlocked (4)` show the four most recent blocked domains +Variant: `>top-clients (9)` to show (up to) 9 client entries or `>top-clients withzero (15)` to show (up to) 15 clients even if they have not been active recently (see PR #124 for further details) -- `>clientID` : Get ID of currently connected client +--- - ```text - 6 - ``` +#### `>forward-dest` {data-toc-label='forward-dest'} -- `>version` : Get version information of the currently running FTL instance +Get forward destinations (IP addresses + hostnames (if available)) along with the percentage. The first result (ID -2) will always be the percentage of domains answered from blocklists, whereas the second result (ID -1) will be the queries answered from the cache - ```text - version v1.6-3-g106498d-dirty - tag v1.6 - branch master - hash 106498d - date 2017-03-26 13:10:43 +0200 - ``` +```text +-2 18.70 blocklist blocklist +-1 67.10 cache cache +0 14.20 127.0.0.1 localhost +``` -- `>dbstats` : Get some statistics about `FTL`'s' long-term storage database (this request may take some time for processing in case of a large database file) +Variant: `>forward-dest unsorted` to show forward destinations in unsorted order (equivalent to using `>forward-names`) - ```text - queries in database: 2700304 - database filesize: 199.20 MB - SQLite version: 3.23.1 - ``` +--- -- `>domain pi-hole.net`: Get detailed information about domain (if available) +#### `>querytypes` {data-toc-label='querytypes'} - ```text - Domain "pi-hole.net", ID: 254 - Total: 179 - Blocked: 0 - Wildcard blocked: false - ``` +Get collected query types percentage -- `>cacheinfo`: Get DNS server cache size and usage information +```text +A (IPv4): 53.45 +AAAA (IPv6): 45.32 +ANY: 0.00 +SRV: 0.64 +SOA: 0.05 +PTR: 0.54 +TXT: 0.00 +``` - ```text - cache-size: 500000 - cache-live-freed: 0 - cache-inserted: 15529 - ``` +--- -- `>dns-port`: Get DNS port FTL is listening on +#### `>getallqueries` {data-toc-label='getallqueries'} - ```text - 53 - ``` +Get all queries that FTL has in memory -- `>maxlogage`: Get timespan of the statistics shown on the dashboard (in seconds) + ```text +1525554586 A fonts.googleapis.com 192.168.2.100 3 0 4 6 +1525554586 AAAA fonts.googleapis.com 192.168.2.100 3 0 4 5 +1525554586 A www.mkdocs.org 192.168.2.100 3 0 4 7 +1525554586 AAAA www.mkdocs.org 192.168.2.100 2 0 3 21 +1525554586 A squidfunk.github.io 192.168.2.100 2 0 3 20 +1525554586 A pi-hole.net 192.168.2.100 3 0 4 5 +1525554586 AAAA squidfunk.github.io 192.168.2.100 3 0 1 6 +1525554586 AAAA pi-hole.net 192.168.2.100 2 0 1 18 +1525554586 A github.com 192.168.2.100 3 0 4 5 +1525554586 AAAA github.com 192.168.2.100 2 0 1 18 +``` - ```text - 86400 - ``` +Variants: `>getallqueries (37)` show (up to) 37 latest entries, `>getallqueries-time 1483964295 1483964312` gets all queries that FTL has in its database in a limited time interval, `>getallqueries-time 1483964295 1483964312 (17)` show matches in the (up to) 17 latest entries, `>getallqueries-domain www.google.com` gets all queries that FTL has in its database for a specific domain name, `>getallqueries-client 2.3.4.5` : gets all queries that FTL has in its database for a specific client name *or* IP + +--- + +#### `>recentBlocked` {data-toc-label='recentBlocked'} + +Get most recently pi-holed domain name + +```text +www.googleadservices.com +``` + +Variant: `>recentBlocked (4)` show the four most recent blocked domains + +--- + +#### `>clientID` {data-toc-label='clientID'} + +Get ID of currently connected client + +```text +6 +``` + +--- + +#### `>version` {data-toc-label='version'} + +Get version information of the currently running FTL instance + +```text +version v1.6-3-g106498d-dirty +tag v1.6 +branch master +hash 106498d +date 2017-03-26 13:10:43 +0200 +``` + +--- + +#### `>dbstats` {data-toc-label='dbstats'} + +Get some statistics about `FTL`'s' long-term storage database (this request may take some time for processing in case of a large database file) + +```text +queries in database: 2700304 +database filesize: 199.20 MB +SQLite version: 3.23.1 +``` + +--- + +#### `>domain pi-hole.net` {data-toc-label='domain'} + +Get detailed information about domain (if available) + +```text +Domain "pi-hole.net", ID: 254 +Total: 179 +Blocked: 0 +Wildcard blocked: false +``` + +--- + +#### `>cacheinfo` {data-toc-label='cacheinfo'} + +Get DNS server cache size and usage information + +```text +cache-size: 500000 +cache-live-freed: 0 +cache-inserted: 15529 +``` + +--- + +#### `>dns-port` {data-toc-label='dns-port'} + +Get DNS port FTL is listening on + +```text +53 +``` Note that the port can also be `0` if someone decides to disable the DNS server part of Pi-hole +--- + +#### `>maxlogage` {data-toc-label='maxlogage'} + +Get timespan of the statistics shown on the dashboard (in seconds) + +```text +86400 +``` + +--- + +#### `>gateway` {data-toc-label='gateway'} + +Get the IP of the gateway of the default route and the corresponding interface + +```text +192.168.0.1 enp2s0 +``` + +Note that if no non-default route could be found, `0.0.0.0` and an empty interface string is returned + {!abbreviations.md!} diff --git a/docs/guides/dns/cloudflared.md b/docs/guides/dns/cloudflared.md index 496acd6..fa3d6b4 100644 --- a/docs/guides/dns/cloudflared.md +++ b/docs/guides/dns/cloudflared.md @@ -46,7 +46,7 @@ sudo chmod +x /usr/local/bin/cloudflared cloudflared -v ``` -Note: Users [have reported](https://github.com/cloudflare/cloudflared/issues/38) that the current version of cloudflared produces a segmentation fault error on Raspberry Pi Zero W, Model 1B and 2B. As a workaround you can use an older version provided at instead. +Note: Users [have reported](https://github.com/cloudflare/cloudflared/issues/38) that the current version of cloudflared produces a segmentation fault error on Raspberry Pi Zero W, Model 1B and 2B. Currently, there is [no known workaround](https://github.com/pi-hole/docs/issues/710). #### arm64 architecture (64-bit Raspberry Pi) diff --git a/docs/guides/misc/whitelist-blacklist.md b/docs/guides/misc/whitelist-blacklist.md index 80728c2..ac5a694 100644 --- a/docs/guides/misc/whitelist-blacklist.md +++ b/docs/guides/misc/whitelist-blacklist.md @@ -18,6 +18,8 @@ Each script accepts the following parameters: Domains passed are parsed by the script to ensure they are valid domains. If a domain is invalid it will be ignored. +By default, Whitelisted/Blacklisted domains are associated with the Default Group only. If the domain should be associated with other groups, these will need to be selected in **Group Management > Domains** within the Pi-Hole web frontend. + #### Example `pihole -w` usages * Attempt to add one or more domains to the whitelist and reload pihole-FTL: diff --git a/docs/guides/vpn/openvpn/installation.md b/docs/guides/vpn/openvpn/installation.md index deb048d..853e372 100644 --- a/docs/guides/vpn/openvpn/installation.md +++ b/docs/guides/vpn/openvpn/installation.md @@ -15,7 +15,7 @@ This is less convenient, so many users will simply decide to install Pi-hole and First, download the OpenVPN installer; make it executable, and then run it: ```bash -wget https://git.io/vpn -O openvpn-install.sh +wget https://github.com/Nyr/openvpn-install/raw/master/openvpn-install.sh chmod 755 openvpn-install.sh ./openvpn-install.sh ``` diff --git a/docs/guides/vpn/wireguard/client.md b/docs/guides/vpn/wireguard/client.md index 93ee6dc..414d7a3 100644 --- a/docs/guides/vpn/wireguard/client.md +++ b/docs/guides/vpn/wireguard/client.md @@ -9,7 +9,9 @@ For each new client, the following steps must be taken. For the sake of simplici Script content: ```bash - #!/bin/bash + #! /usr/bin/env bash + umask 077 + ipv4="$1$4" ipv6="$2$4" serv4="${1}1" @@ -29,6 +31,7 @@ For each new client, the following steps must be taken. For the sake of simplici echo "[Interface]" > "${name}.conf" echo "Address = $ipv4/32, $ipv6/128" >> "${name}.conf" + echo "DNS = ${serv4}, ${serv6}" >> "${name}.conf" #Specifying DNS Server echo "PrivateKey = $(cat "${name}.key")" >> "${name}.conf" echo "" >> "${name}.conf" echo "[Peer]" >> "${name}.conf" @@ -48,12 +51,12 @@ For each new client, the following steps must be taken. For the sake of simplici Run the script like ```bash + chmod +x /path/to/script.sh sudo -i cd /etc/wireguard - umask 077 - bash "10.100.0." "fd08:4711::" "my_server_domain:47111" 2 "annas-android" - bash "10.100.0." "fd08:4711::" "my_server_domain:47111" 3 "peters-laptop" + /path/to/script.sh "10.100.0." "fd08:4711::" "my_server_domain:47111" 2 "annas-android" + /path/to/script.sh "10.100.0." "fd08:4711::" "my_server_domain:47111" 3 "peters-laptop" exit ``` diff --git a/docs/guides/webserver/caddy.md b/docs/guides/webserver/caddy.md index 569c5de..0065299 100644 --- a/docs/guides/webserver/caddy.md +++ b/docs/guides/webserver/caddy.md @@ -14,6 +14,14 @@ server.port = 1080 In this case, port 1080 was chosen at random. You can use a custom port. +BUT ANY CHANGES MADE TO THIS FILE WILL BE LOST ON THE NEXT PI-HOLE UPDATE. + +So if you want a permanent method of changing the lighttpd port and your lighttpd version >= 1.4.46, you can overwrite the port in: `/etc/lighttpd/external.conf` (note the different syntax!): + +```lighttpd +server.port := 1080 +``` + Next, restart the lighttpd server with either of these commands: ```bash diff --git a/docs/main/prerequisites.md b/docs/main/prerequisites.md index e58685c..3b2d779 100644 --- a/docs/main/prerequisites.md +++ b/docs/main/prerequisites.md @@ -28,7 +28,8 @@ The following operating systems are **officially** supported: | Ubuntu | 16.x / 18.x / 20.x /21.x | ARM / x86_64 | | Debian | 9 / 10 /11 | ARM / x86_64 / i386 | | Fedora | 33 / 34 | ARM / x86_64 | -| CentOS | 7 / 8 | x86_64 | +| CentOS | 7 | x86_64 | +| CentOS Stream | 8 | x86_64 | !!! info diff --git a/docs/regex/tutorial.md b/docs/regex/tutorial.md index 0ca66e9..c478b1b 100644 --- a/docs/regex/tutorial.md +++ b/docs/regex/tutorial.md @@ -119,7 +119,7 @@ Blocks domains containing only numbers (no letters) and ending in `.com` or `.ed ### Block domains without subdomains ``` -^[a-z0-9]+([\-]{1}[a-z0-9]+)*\.[a-z]{2,7}$ +^[a-z0-9]+([-]{1}[a-z0-9]+)*\.[a-z]{2,7}$ ``` A domain name shall not start or end with a dash but can contain any number of them. It must be followed by a TLD (we assume a valid TLD length of two to seven characters) diff --git a/mkdocs.yml b/mkdocs.yml index 41205ba..0d8ffdc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,7 @@ site_name: 'Pi-hole documentation' site_url: 'https://docs.pi-hole.net/' repo_url: 'https://github.com/pi-hole/pi-hole' edit_uri: '../docs/blob/master/docs/' -copyright: 'Copyright © 2021 Pi-hole LLC' +copyright: remote_branch: gh-pages theme: name: 'material' diff --git a/overrides/main.html b/overrides/main.html deleted file mode 100644 index 80161fd..0000000 --- a/overrides/main.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "base.html" %} - -{% set extracopyright %} -
- - This site is powered by Netlify - -{% endset %} diff --git a/overrides/partials/copyright.html b/overrides/partials/copyright.html new file mode 100644 index 0000000..a6bee8e --- /dev/null +++ b/overrides/partials/copyright.html @@ -0,0 +1,7 @@ +
+Copyright Pi-hole. Licensed under CC BY-SA 4.0 +
+ + This site is powered by Netlify + +
diff --git a/package-lock.json b/package-lock.json index 81f28de..568155d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "CC-BY-SA-4.0", "devDependencies": { - "linkinator": "^3.0.3", + "linkinator": "^3.1.0", "markdownlint-cli2": "0.4.0" } }, @@ -303,13 +303,12 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -457,12 +456,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -490,9 +483,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -589,32 +582,23 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -624,12 +608,12 @@ ] }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -639,14 +623,14 @@ } }, "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -686,9 +670,9 @@ } }, "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", "dev": true, "engines": { "node": ">=0.12" @@ -801,7 +785,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/function-bind": { @@ -811,19 +795,19 @@ "dev": true }, "node_modules/gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.0.tgz", + "integrity": "sha512-VD/yc5ln6XU8Ch1hyYY6kRMBE0Yc2np3fPyeJeYHhrPs1i8rgnsApPMWyrugkl7LLoSqpOJVBWlQIa87OAvt8Q==", "dev": true, "dependencies": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.7" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/get-stream": { @@ -839,20 +823,19 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -985,9 +968,9 @@ } }, "node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -997,10 +980,10 @@ } ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "node_modules/http-cache-semantics": { @@ -1010,9 +993,9 @@ "dev": true }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { "agent-base": "6", @@ -1064,7 +1047,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -1307,16 +1290,16 @@ } }, "node_modules/linkinator": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-3.0.3.tgz", - "integrity": "sha512-JpZFe1VIdaVy2wMCf8HDAB61tIjD69hOY1lPHCfM0OTPEhu9z9oPe449veZIympH9PUJUXe6yoif7DXHs8H5xw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-3.1.0.tgz", + "integrity": "sha512-ikQtLZ0JtY2JQXGZlzHID9Y87R4Zxe4TPAtFTem9T2UxQqXr0Ab8z9fse+apHEaD2l+WIX8f/P0IMODBMHhPWw==", "dev": true, "dependencies": { "chalk": "^5.0.0", "escape-html": "^1.0.3", - "gaxios": "^4.3.2", - "glob": "^7.2.0", - "htmlparser2": "^7.2.0", + "gaxios": "^5.0.0", + "glob": "^8.0.1", + "htmlparser2": "^8.0.1", "jsonexport": "^3.2.0", "marked": "^4.0.3", "meow": "^10.1.1", @@ -1587,21 +1570,21 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/minimist-options": { @@ -1767,15 +1750,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2188,7 +2162,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/trim-newlines": { @@ -2295,13 +2269,13 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -2624,13 +2598,12 @@ } }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "braces": { @@ -2738,12 +2711,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -2765,9 +2732,9 @@ "dev": true }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -2834,48 +2801,40 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "dependencies": { - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" } }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" } }, "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dev": true, "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" } }, "dot-prop": { @@ -2909,9 +2868,9 @@ } }, "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", "dev": true }, "error-ex": { @@ -2997,7 +2956,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "function-bind": { @@ -3007,16 +2966,16 @@ "dev": true }, "gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.0.tgz", + "integrity": "sha512-VD/yc5ln6XU8Ch1hyYY6kRMBE0Yc2np3fPyeJeYHhrPs1i8rgnsApPMWyrugkl7LLoSqpOJVBWlQIa87OAvt8Q==", "dev": true, "requires": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" + "node-fetch": "^2.6.7" } }, "get-stream": { @@ -3029,17 +2988,16 @@ } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, "glob-parent": { @@ -3136,15 +3094,15 @@ } }, "htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "http-cache-semantics": { @@ -3154,9 +3112,9 @@ "dev": true }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "requires": { "agent-base": "6", @@ -3190,7 +3148,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -3376,16 +3334,16 @@ } }, "linkinator": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-3.0.3.tgz", - "integrity": "sha512-JpZFe1VIdaVy2wMCf8HDAB61tIjD69hOY1lPHCfM0OTPEhu9z9oPe449veZIympH9PUJUXe6yoif7DXHs8H5xw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-3.1.0.tgz", + "integrity": "sha512-ikQtLZ0JtY2JQXGZlzHID9Y87R4Zxe4TPAtFTem9T2UxQqXr0Ab8z9fse+apHEaD2l+WIX8f/P0IMODBMHhPWw==", "dev": true, "requires": { "chalk": "^5.0.0", "escape-html": "^1.0.3", - "gaxios": "^4.3.2", - "glob": "^7.2.0", - "htmlparser2": "^7.2.0", + "gaxios": "^5.0.0", + "glob": "^8.0.1", + "htmlparser2": "^8.0.1", "jsonexport": "^3.2.0", "marked": "^4.0.3", "meow": "^10.1.1", @@ -3574,18 +3532,18 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "minimist-options": { @@ -3703,12 +3661,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -3997,7 +3949,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "trim-newlines": { @@ -4080,13 +4032,13 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { "tr46": "~0.0.3", diff --git a/package.json b/package.json index ee154cf..5159de0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "test": "npm run markdownlint && npm run linkinator" }, "devDependencies": { - "linkinator": "^3.0.3", + "linkinator": "^3.1.0", "markdownlint-cli2": "0.4.0" } } diff --git a/requirements.txt b/requirements.txt index d7102ef..1305e49 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ markdown-include==0.6.0 mkdocs==1.3.0 -mkdocs-git-revision-date-localized-plugin==1.0.0 -mkdocs-material==8.2.8 -mkdocs-redirects==1.0.3 +mkdocs-git-revision-date-localized-plugin==1.0.1 +mkdocs-material==8.3.8 +mkdocs-redirects==1.0.4