Merge branch 'master' of github.com:lissy93/web-check into FEAT/astroify

This commit is contained in:
Alicia Sykes 2024-06-16 21:18:41 +01:00
commit 43fb27eade
8 changed files with 414 additions and 376 deletions

680
.github/README.md vendored
View File

@ -903,150 +903,163 @@ Credit to the following users for contributing to Web-Check
<!-- readme: contributors -start --> <!-- readme: contributors -start -->
<table> <table>
<tr> <tbody>
<td align="center"> <tr>
<a href="https://github.com/Lissy93"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/1862727?v=4" width="80;" alt="Lissy93"/> <a href="https://github.com/Lissy93">
<br /> <img src="https://avatars.githubusercontent.com/u/1862727?v=4" width="80;" alt="Lissy93"/>
<sub><b>Alicia Sykes</b></sub> <br />
</a> <sub><b>Alicia Sykes</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/liss-bot"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/87835202?v=4" width="80;" alt="liss-bot"/> <a href="https://github.com/liss-bot">
<br /> <img src="https://avatars.githubusercontent.com/u/87835202?v=4" width="80;" alt="liss-bot"/>
<sub><b>Alicia Bot</b></sub> <br />
</a> <sub><b>Alicia Bot</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/muni106"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/65845442?v=4" width="80;" alt="muni106"/> <a href="https://github.com/n0a">
<br /> <img src="https://avatars.githubusercontent.com/u/14150948?v=4" width="80;" alt="n0a"/>
<sub><b>Mounir Samite</b></sub> <br />
</a> <sub><b>Denis Simonov</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/ChrisCarini"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/6374067?v=4" width="80;" alt="ChrisCarini"/> <a href="https://github.com/muni106">
<br /> <img src="https://avatars.githubusercontent.com/u/65845442?v=4" width="80;" alt="muni106"/>
<sub><b>Chris Carini</b></sub> <br />
</a> <sub><b>Mounir Samite</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/brianteeman"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/1296369?v=4" width="80;" alt="brianteeman"/> <a href="https://github.com/ChrisCarini">
<br /> <img src="https://avatars.githubusercontent.com/u/6374067?v=4" width="80;" alt="ChrisCarini"/>
<sub><b>Brian Teeman</b></sub> <br />
</a> <sub><b>Chris Carini</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/GreyXor"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/79602273?v=4" width="80;" alt="GreyXor"/> <a href="https://github.com/brianteeman">
<br /> <img src="https://avatars.githubusercontent.com/u/1296369?v=4" width="80;" alt="brianteeman"/>
<sub><b>GreyXor</b></sub> <br />
</a> <sub><b>Brian Teeman</b></sub>
</td></tr> </a>
<tr> </td>
<td align="center"> </tr>
<a href="https://github.com/jinnabaalu"> <tr>
<img src="https://avatars.githubusercontent.com/u/11784253?v=4" width="80;" alt="jinnabaalu"/> <td align="center">
<br /> <a href="https://github.com/GreyXor">
<sub><b>Jinna Baalu</b></sub> <img src="https://avatars.githubusercontent.com/u/79602273?v=4" width="80;" alt="GreyXor"/>
</a> <br />
</td> <sub><b>GreyXor</b></sub>
<td align="center"> </a>
<a href="https://github.com/bolens"> </td>
<img src="https://avatars.githubusercontent.com/u/1218380?v=4" width="80;" alt="bolens"/> <td align="center">
<br /> <a href="https://github.com/bolens">
<sub><b>Michael Bolens</b></sub> <img src="https://avatars.githubusercontent.com/u/1218380?v=4" width="80;" alt="bolens"/>
</a> <br />
</td> <sub><b>Michael Bolens</b></sub>
<td align="center"> </a>
<a href="https://github.com/robinson"> </td>
<img src="https://avatars.githubusercontent.com/u/237874?v=4" width="80;" alt="robinson"/> <td align="center">
<br /> <a href="https://github.com/vitalykarasik">
<sub><b>Lth</b></sub> <img src="https://avatars.githubusercontent.com/u/7628795?v=4" width="80;" alt="vitalykarasik"/>
</a> <br />
</td> <sub><b>Vitaly Karasik</b></sub>
<td align="center"> </a>
<a href="https://github.com/abhishekMuge"> </td>
<img src="https://avatars.githubusercontent.com/u/49590582?v=4" width="80;" alt="abhishekMuge"/> <td align="center">
<br /> <a href="https://github.com/robinson">
<sub><b>Abhishek Muge</b></sub> <img src="https://avatars.githubusercontent.com/u/237874?v=4" width="80;" alt="robinson"/>
</a> <br />
</td> <sub><b>Lth</b></sub>
<td align="center"> </a>
<a href="https://github.com/UlisesGascon"> </td>
<img src="https://avatars.githubusercontent.com/u/5110813?v=4" width="80;" alt="UlisesGascon"/> <td align="center">
<br /> <a href="https://github.com/abhishekMuge">
<sub><b>Ulises Gascón</b></sub> <img src="https://avatars.githubusercontent.com/u/49590582?v=4" width="80;" alt="abhishekMuge"/>
</a> <br />
</td> <sub><b>Abhishek Muge</b></sub>
<td align="center"> </a>
<a href="https://github.com/PhiRequiem"> </td>
<img src="https://avatars.githubusercontent.com/u/1323576?v=4" width="80;" alt="PhiRequiem"/> <td align="center">
<br /> <a href="https://github.com/UlisesGascon">
<sub><b>PhiRequiem</b></sub> <img src="https://avatars.githubusercontent.com/u/5110813?v=4" width="80;" alt="UlisesGascon"/>
</a> <br />
</td></tr> <sub><b>Ulises Gascón</b></sub>
<tr> </a>
<td align="center"> </td>
<a href="https://github.com/Myzel394"> </tr>
<img src="https://avatars.githubusercontent.com/u/50424412?v=4" width="80;" alt="Myzel394"/> <tr>
<br /> <td align="center">
<sub><b>Myzel394</b></sub> <a href="https://github.com/PhiRequiem">
</a> <img src="https://avatars.githubusercontent.com/u/1323576?v=4" width="80;" alt="PhiRequiem"/>
</td> <br />
<td align="center"> <sub><b>PhiRequiem</b></sub>
<a href="https://github.com/murrple-1"> </a>
<img src="https://avatars.githubusercontent.com/u/5559656?v=4" width="80;" alt="murrple-1"/> </td>
<br /> <td align="center">
<sub><b>Murray Christopherson</b></sub> <a href="https://github.com/Myzel394">
</a> <img src="https://avatars.githubusercontent.com/u/50424412?v=4" width="80;" alt="Myzel394"/>
</td> <br />
<td align="center"> <sub><b>Myzel394</b></sub>
<a href="https://github.com/t3chn0m4g3"> </a>
<img src="https://avatars.githubusercontent.com/u/4318452?v=4" width="80;" alt="t3chn0m4g3"/> </td>
<br /> <td align="center">
<sub><b>Marco Ochse</b></sub> <a href="https://github.com/murrple-1">
</a> <img src="https://avatars.githubusercontent.com/u/5559656?v=4" width="80;" alt="murrple-1"/>
</td> <br />
<td align="center"> <sub><b>Murray Christopherson</b></sub>
<a href="https://github.com/treatmesubj"> </a>
<img src="https://avatars.githubusercontent.com/u/39680353?v=4" width="80;" alt="treatmesubj"/> </td>
<br /> <td align="center">
<sub><b>John Hupperts</b></sub> <a href="https://github.com/t3chn0m4g3">
</a> <img src="https://avatars.githubusercontent.com/u/4318452?v=4" width="80;" alt="t3chn0m4g3"/>
</td> <br />
<td align="center"> <sub><b>Marco Ochse</b></sub>
<a href="https://github.com/eltociear"> </a>
<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="80;" alt="eltociear"/> </td>
<br /> <td align="center">
<sub><b>Ikko Eltociear Ashimine</b></sub> <a href="https://github.com/treatmesubj">
</a> <img src="https://avatars.githubusercontent.com/u/39680353?v=4" width="80;" alt="treatmesubj"/>
</td> <br />
<td align="center"> <sub><b>John Hupperts</b></sub>
<a href="https://github.com/Gertje823"> </a>
<img src="https://avatars.githubusercontent.com/u/36937387?v=4" width="80;" alt="Gertje823"/> </td>
<br /> <td align="center">
<sub><b>Gertje823</b></sub> <a href="https://github.com/eltociear">
</a> <img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="80;" alt="eltociear"/>
</td></tr> <br />
<tr> <sub><b>Ikko Eltociear Ashimine</b></sub>
<td align="center"> </a>
<a href="https://github.com/epreston"> </td>
<img src="https://avatars.githubusercontent.com/u/347224?v=4" width="80;" alt="epreston"/> </tr>
<br /> <tr>
<sub><b>Ed Preston</b></sub> <td align="center">
</a> <a href="https://github.com/Gertje823">
</td> <img src="https://avatars.githubusercontent.com/u/36937387?v=4" width="80;" alt="Gertje823"/>
<td align="center"> <br />
<a href="https://github.com/0xflotus"> <sub><b>Gertje823</b></sub>
<img src="https://avatars.githubusercontent.com/u/26602940?v=4" width="80;" alt="0xflotus"/> </a>
<br /> </td>
<sub><b>0xflotus</b></sub> <td align="center">
</a> <a href="https://github.com/epreston">
</td></tr> <img src="https://avatars.githubusercontent.com/u/347224?v=4" width="80;" alt="epreston"/>
<br />
<sub><b>Ed Preston</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/0xflotus">
<img src="https://avatars.githubusercontent.com/u/26602940?v=4" width="80;" alt="0xflotus"/>
<br />
<sub><b>0xflotus</b></sub>
</a>
</td>
</tr>
<tbody>
</table> </table>
<!-- readme: contributors -end --> <!-- readme: contributors -end -->
@ -1056,207 +1069,184 @@ Huge thanks to these wonderful people, who sponsor me on GitHub, their support h
<!-- readme: sponsors -start --> <!-- readme: sponsors -start -->
<table> <table>
<tr> <tbody>
<td align="center"> <tr>
<a href="https://github.com/github"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/9919?v=4" width="80;" alt="github"/> <a href="https://github.com/github">
<br /> <img src="https://avatars.githubusercontent.com/u/9919?v=4" width="80;" alt="github"/>
<sub><b>GitHub</b></sub> <br />
</a> <sub><b>GitHub</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/koconder"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/25068?u=582657b23622aaa3dfe68bd028a780f272f456fa&v=4" width="80;" alt="koconder"/> <a href="https://github.com/koconder">
<br /> <img src="https://avatars.githubusercontent.com/u/25068?u=582657b23622aaa3dfe68bd028a780f272f456fa&v=4" width="80;" alt="koconder"/>
<sub><b>Vincent Koc</b></sub> <br />
</a> <sub><b>Vincent Koc</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/Admonstrator"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/69824?u=1e226d7a36cdd661c3e4cd486fea140d045b7d57&v=4" width="80;" alt="Admonstrator"/> <a href="https://github.com/Admonstrator">
<br /> <img src="https://avatars.githubusercontent.com/u/69824?u=1e226d7a36cdd661c3e4cd486fea140d045b7d57&v=4" width="80;" alt="Admonstrator"/>
<sub><b>Aaron Viehl</b></sub> <br />
</a> <sub><b>Aaron Viehl</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/tbjers"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/1117052?v=4" width="80;" alt="tbjers"/> <a href="https://github.com/tbjers">
<br /> <img src="https://avatars.githubusercontent.com/u/1117052?v=4" width="80;" alt="tbjers"/>
<sub><b>Torgny Bjers</b></sub> <br />
</a> <sub><b>Torgny Bjers</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/emlazzarin"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/1141361?u=714e3487a3f2e0df721b01a0133945f075d3ff68&v=4" width="80;" alt="emlazzarin"/> <a href="https://github.com/AnandChowdhary">
<br /> <img src="https://avatars.githubusercontent.com/u/2841780?u=747e554b3a7f12eb20b7910e1c87d817844f714f&v=4" width="80;" alt="AnandChowdhary"/>
<sub><b>Eddy Lazzarin</b></sub> <br />
</a> <sub><b>Anand Chowdhary</b></sub>
</td> </a>
<td align="center"> </td>
<a href="https://github.com/AnandChowdhary"> <td align="center">
<img src="https://avatars.githubusercontent.com/u/2841780?u=747e554b3a7f12eb20b7910e1c87d817844f714f&v=4" width="80;" alt="AnandChowdhary"/> <a href="https://github.com/shrippen">
<br /> <img src="https://avatars.githubusercontent.com/u/2873570?v=4" width="80;" alt="shrippen"/>
<sub><b>Anand Chowdhary</b></sub> <br />
</a> <sub><b>Shrippen</b></sub>
</td></tr> </a>
<tr> </td>
<td align="center"> </tr>
<a href="https://github.com/shrippen"> <tr>
<img src="https://avatars.githubusercontent.com/u/2873570?v=4" width="80;" alt="shrippen"/> <td align="center">
<br /> <a href="https://github.com/bile0026">
<sub><b>Shrippen</b></sub> <img src="https://avatars.githubusercontent.com/u/5022496?u=aec96ad173c0ea9baaba93807efa8a848af6595c&v=4" width="80;" alt="bile0026"/>
</a> <br />
</td> <sub><b>Zach Biles</b></sub>
<td align="center"> </a>
<a href="https://github.com/bile0026"> </td>
<img src="https://avatars.githubusercontent.com/u/5022496?u=aec96ad173c0ea9baaba93807efa8a848af6595c&v=4" width="80;" alt="bile0026"/> <td align="center">
<br /> <a href="https://github.com/UlisesGascon">
<sub><b>Zach Biles</b></sub> <img src="https://avatars.githubusercontent.com/u/5110813?u=3c41facd8aa26154b9451de237c34b0f78d672a5&v=4" width="80;" alt="UlisesGascon"/>
</a> <br />
</td> <sub><b>Ulises Gascón</b></sub>
<td align="center"> </a>
<a href="https://github.com/UlisesGascon"> </td>
<img src="https://avatars.githubusercontent.com/u/5110813?u=3c41facd8aa26154b9451de237c34b0f78d672a5&v=4" width="80;" alt="UlisesGascon"/> <td align="center">
<br /> <a href="https://github.com/digitalarche">
<sub><b>Ulises Gascón</b></sub> <img src="https://avatars.githubusercontent.com/u/6546135?u=564756d7f44ab2206819eb3148f6d822673f5066&v=4" width="80;" alt="digitalarche"/>
</a> <br />
</td> <sub><b>Digital Archeology</b></sub>
<td align="center"> </a>
<a href="https://github.com/digitalarche"> </td>
<img src="https://avatars.githubusercontent.com/u/6546135?u=564756d7f44ab2206819eb3148f6d822673f5066&v=4" width="80;" alt="digitalarche"/> <td align="center">
<br /> <a href="https://github.com/InDieTasten">
<sub><b>Digital Archeology</b></sub> <img src="https://avatars.githubusercontent.com/u/7047377?u=8d8f8017628b38bc46dcbf3620e194b01d3fb2d1&v=4" width="80;" alt="InDieTasten"/>
</a> <br />
</td> <sub><b>InDieTasten</b></sub>
<td align="center"> </a>
<a href="https://github.com/InDieTasten"> </td>
<img src="https://avatars.githubusercontent.com/u/7047377?u=8d8f8017628b38bc46dcbf3620e194b01d3fb2d1&v=4" width="80;" alt="InDieTasten"/> <td align="center">
<br /> <a href="https://github.com/araguaci">
<sub><b>InDieTasten</b></sub> <img src="https://avatars.githubusercontent.com/u/7318668?v=4" width="80;" alt="araguaci"/>
</a> <br />
</td> <sub><b>Araguaci</b></sub>
<td align="center"> </a>
<a href="https://github.com/araguaci"> </td>
<img src="https://avatars.githubusercontent.com/u/7318668?v=4" width="80;" alt="araguaci"/> <td align="center">
<br /> <a href="https://github.com/bmcgonag">
<sub><b>Araguaci</b></sub> <img src="https://avatars.githubusercontent.com/u/7346620?u=2a0f9284f3e12ac1cc15288c254d1ec68a5081e8&v=4" width="80;" alt="bmcgonag"/>
</a> <br />
</td></tr> <sub><b>Brian McGonagill</b></sub>
<tr> </a>
<td align="center"> </td>
<a href="https://github.com/bmcgonag"> </tr>
<img src="https://avatars.githubusercontent.com/u/7346620?u=2a0f9284f3e12ac1cc15288c254d1ec68a5081e8&v=4" width="80;" alt="bmcgonag"/> <tr>
<br /> <td align="center">
<sub><b>Brian McGonagill</b></sub> <a href="https://github.com/vlad-tim">
</a> <img src="https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&v=4" width="80;" alt="vlad-tim"/>
</td> <br />
<td align="center"> <sub><b>Vlad</b></sub>
<a href="https://github.com/vlad-timofeev"> </a>
<img src="https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&v=4" width="80;" alt="vlad-timofeev"/> </td>
<br /> <td align="center">
<sub><b>Vlad Timofeev</b></sub> <a href="https://github.com/helixzz">
</a> <img src="https://avatars.githubusercontent.com/u/12218889?u=d06d0c103dfbdb99450623064f7da3c5a3675fb6&v=4" width="80;" alt="helixzz"/>
</td> <br />
<td align="center"> <sub><b>HeliXZz</b></sub>
<a href="https://github.com/helixzz"> </a>
<img src="https://avatars.githubusercontent.com/u/12218889?u=d06d0c103dfbdb99450623064f7da3c5a3675fb6&v=4" width="80;" alt="helixzz"/> </td>
<br /> <td align="center">
<sub><b>HeliXZz</b></sub> <a href="https://github.com/patvdv">
</a> <img src="https://avatars.githubusercontent.com/u/12430107?u=e8911c2fb91af4d30432f76da8c40927b2830bd7&v=4" width="80;" alt="patvdv"/>
</td> <br />
<td align="center"> <sub><b>Patrick Van Der Veken</b></sub>
<a href="https://github.com/patvdv"> </a>
<img src="https://avatars.githubusercontent.com/u/12430107?u=e8911c2fb91af4d30432f76da8c40927b2830bd7&v=4" width="80;" alt="patvdv"/> </td>
<br /> <td align="center">
<sub><b>Patrick Van Der Veken</b></sub> <a href="https://github.com/plgonzalezrx8">
</a> <img src="https://avatars.githubusercontent.com/u/19900049?u=48a58d2da520a9d712184c6e6e99927ff3cbf179&v=4" width="80;" alt="plgonzalezrx8"/>
</td> <br />
<td align="center"> <sub><b>Pedro Gonzalez</b></sub>
<a href="https://github.com/plgonzalezrx8"> </a>
<img src="https://avatars.githubusercontent.com/u/19900049?u=48a58d2da520a9d712184c6e6e99927ff3cbf179&v=4" width="80;" alt="plgonzalezrx8"/> </td>
<br /> <td align="center">
<sub><b>Pedro Gonzalez</b></sub> <a href="https://github.com/mryesiller">
</a> <img src="https://avatars.githubusercontent.com/u/24632172?u=0d20f2d615158f87cd60a3398d3efb026c32f291&v=4" width="80;" alt="mryesiller"/>
</td> <br />
<td align="center"> <sub><b>Göksel Yeşiller</b></sub>
<a href="https://github.com/mryesiller"> </a>
<img src="https://avatars.githubusercontent.com/u/24632172?u=0d20f2d615158f87cd60a3398d3efb026c32f291&v=4" width="80;" alt="mryesiller"/> </td>
<br /> <td align="center">
<sub><b>Göksel Yeşiller</b></sub> <a href="https://github.com/forwardemail">
</a> <img src="https://avatars.githubusercontent.com/u/32481436?v=4" width="80;" alt="forwardemail"/>
</td></tr> <br />
<tr> <sub><b>Forward Email - Open-source & Privacy-focused Email Service (2023)</b></sub>
<td align="center"> </a>
<a href="https://github.com/allesauseinerhand"> </td>
<img src="https://avatars.githubusercontent.com/u/32039836?v=4" width="80;" alt="allesauseinerhand"/> </tr>
<br /> <tr>
<sub><b>Allesauseinerhand</b></sub> <td align="center">
</a> <a href="https://github.com/Bastii717">
</td> <img src="https://avatars.githubusercontent.com/u/53431819?u=604977bed6ad6875ada890d0d3765a4cacc2fa14&v=4" width="80;" alt="Bastii717"/>
<td align="center"> <br />
<a href="https://github.com/forwardemail"> <sub><b>Bastii717</b></sub>
<img src="https://avatars.githubusercontent.com/u/32481436?v=4" width="80;" alt="forwardemail"/> </a>
<br /> </td>
<sub><b>Forward Email - Open-source & Privacy-focused Email Service (2023)</b></sub> <td align="center">
</a> <a href="https://github.com/getumbrel">
</td> <img src="https://avatars.githubusercontent.com/u/59408891?v=4" width="80;" alt="getumbrel"/>
<td align="center"> <br />
<a href="https://github.com/lamtrinhdev"> <sub><b>Umbrel</b></sub>
<img src="https://avatars.githubusercontent.com/u/49742151?u=c5eaca5aa6841a80605cf4f7d0e861a9e6339ef3&v=4" width="80;" alt="lamtrinhdev"/> </a>
<br /> </td>
<sub><b>LamTrinh.Dev</b></sub> <td align="center">
</a> <a href="https://github.com/M2TD">
</td> <img src="https://avatars.githubusercontent.com/u/85460457?v=4" width="80;" alt="M2TD"/>
<td align="center"> <br />
<a href="https://github.com/Bastii717"> <sub><b>M2TD</b></sub>
<img src="https://avatars.githubusercontent.com/u/53431819?u=604977bed6ad6875ada890d0d3765a4cacc2fa14&v=4" width="80;" alt="Bastii717"/> </a>
<br /> </td>
<sub><b>Bastii717</b></sub> <td align="center">
</a> <a href="https://github.com/frankdez93">
</td> <img src="https://avatars.githubusercontent.com/u/87549420?v=4" width="80;" alt="frankdez93"/>
<td align="center"> <br />
<a href="https://github.com/getumbrel"> <sub><b>Frankdez93</b></sub>
<img src="https://avatars.githubusercontent.com/u/59408891?v=4" width="80;" alt="getumbrel"/> </a>
<br /> </td>
<sub><b>Umbrel</b></sub> <td align="center">
</a> <a href="https://github.com/terminaltrove">
</td> <img src="https://avatars.githubusercontent.com/u/121595180?v=4" width="80;" alt="terminaltrove"/>
<td align="center"> <br />
<a href="https://github.com/M2TD"> <sub><b>Terminal Trove</b></sub>
<img src="https://avatars.githubusercontent.com/u/85460457?v=4" width="80;" alt="M2TD"/> </a>
<br /> </td>
<sub><b>M2TD</b></sub> <td align="center">
</a> <a href="https://github.com/nrvo">
</td></tr> <img src="https://avatars.githubusercontent.com/u/151435968?u=e1dcb307fd0efdc45cddbe9490a7b956e4da6835&v=4" width="80;" alt="nrvo"/>
<tr> <br />
<td align="center"> <sub><b>Nrvo</b></sub>
<a href="https://github.com/frankdez93"> </a>
<img src="https://avatars.githubusercontent.com/u/87549420?v=4" width="80;" alt="frankdez93"/> </td>
<br /> </tr>
<sub><b>Frankdez93</b></sub> <tbody>
</a>
</td>
<td align="center">
<a href="https://github.com/terminaltrove">
<img src="https://avatars.githubusercontent.com/u/121595180?v=4" width="80;" alt="terminaltrove"/>
<br />
<sub><b>Terminal Trove</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/NixyJuppie">
<img src="https://avatars.githubusercontent.com/u/138570196?u=b102c222487905728b858704962d32759df29ebe&v=4" width="80;" alt="NixyJuppie"/>
<br />
<sub><b>Nixy</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/nrvo">
<img src="https://avatars.githubusercontent.com/u/151435968?u=e1dcb307fd0efdc45cddbe9490a7b956e4da6835&v=4" width="80;" alt="nrvo"/>
<br />
<sub><b>Nrvo</b></sub>
</a>
</td></tr>
</table> </table>
<!-- readme: sponsors -end --> <!-- readme: sponsors -end -->

View File

@ -12,9 +12,9 @@ jobs:
name: Inserts Sponsors 💓 name: Inserts Sponsors 💓
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Updates readme with sponsors - name: Updates readme with sponsors
uses: JamesIves/github-sponsors-readme-action@1.0.5 uses: JamesIves/github-sponsors-readme-action@v1
with: with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
file: .github/README.md file: .github/README.md
@ -25,7 +25,7 @@ jobs:
name: Inserts Contributors 💓 name: Inserts Contributors 💓
steps: steps:
- name: Updates readme with contributors - name: Updates readme with contributors
uses: akhilmhdh/contributors-readme-action@v2.3.4 uses: akhilmhdh/contributors-readme-action@v2.3.10
env: env:
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
with: with:

View File

@ -19,15 +19,15 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v4
with: with:
node-version: 16 node-version: 16
- name: Cache node_modules - name: Cache node_modules
uses: actions/cache@v2 uses: actions/cache@v4
with: with:
path: node_modules path: node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
@ -35,7 +35,7 @@ jobs:
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
- name: Create GitHub deployment for API - name: Create GitHub deployment for API
uses: chrnorm/deployment-action@releases/v1 uses: chrnorm/deployment-action@releases/v2
id: deployment_api id: deployment_api
with: with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
@ -56,7 +56,7 @@ jobs:
- name: Update GitHub deployment status (API) - name: Update GitHub deployment status (API)
if: always() if: always()
uses: chrnorm/deployment-status@releases/v1 uses: chrnorm/deployment-status@v2
with: with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
state: "${{ job.status }}" state: "${{ job.status }}"
@ -68,15 +68,15 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v4
with: with:
node-version: 16 node-version: 16
- name: Cache node_modules - name: Cache node_modules
uses: actions/cache@v2 uses: actions/cache@v4
with: with:
path: node_modules path: node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
@ -84,7 +84,7 @@ jobs:
${{ runner.os }}-yarn- ${{ runner.os }}-yarn-
- name: Create GitHub deployment for Frontend - name: Create GitHub deployment for Frontend
uses: chrnorm/deployment-action@releases/v1 uses: chrnorm/deployment-action@v2
id: deployment_frontend id: deployment_frontend
with: with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
@ -97,7 +97,7 @@ jobs:
yarn build yarn build
- name: Setup AWS - name: Setup AWS
uses: aws-actions/configure-aws-credentials@v1 uses: aws-actions/configure-aws-credentials@v4
with: with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@ -109,7 +109,7 @@ jobs:
run: aws s3 sync ./build/ s3://$AWS_S3_BUCKET/ --delete run: aws s3 sync ./build/ s3://$AWS_S3_BUCKET/ --delete
- name: Invalidate CloudFront cache - name: Invalidate CloudFront cache
uses: chetan/invalidate-cloudfront-action@v2.4 uses: chetan/invalidate-cloudfront-action@v2
env: env:
DISTRIBUTION: E30XKAM2TG9FD8 DISTRIBUTION: E30XKAM2TG9FD8
PATHS: '/*' PATHS: '/*'
@ -119,7 +119,7 @@ jobs:
- name: Update GitHub deployment status (Frontend) - name: Update GitHub deployment status (Frontend)
if: always() if: always()
uses: chrnorm/deployment-status@releases/v1 uses: chrnorm/deployment-status@v2
with: with:
token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }} token: ${{ secrets.BOT_TOKEN || secrets.GITHUB_TOKEN }}
state: "${{ job.status }}" state: "${{ job.status }}"

View File

@ -23,14 +23,14 @@ jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout 🛎️
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Extract tag name - name: Extract tag name 🏷️
shell: bash shell: bash
run: echo "GIT_TAG=$(echo ${GITHUB_REF#refs/tags/} | sed 's/\//_/g')" >> $GITHUB_ENV run: echo "GIT_TAG=$(echo ${GITHUB_REF#refs/tags/} | sed 's/\//_/g')" >> $GITHUB_ENV
- name: Compute tags - name: Compute tags 🔖
id: compute-tags id: compute-tags
run: | run: |
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
@ -41,27 +41,27 @@ jobs:
echo "DOCKERHUB_TAG=${DOCKERHUB_REGISTRY}/${DOCKER_USER}/${IMAGE_NAME}:${GIT_TAG}" >> $GITHUB_ENV echo "DOCKERHUB_TAG=${DOCKERHUB_REGISTRY}/${DOCKER_USER}/${IMAGE_NAME}:${GIT_TAG}" >> $GITHUB_ENV
fi fi
- name: Set up QEMU - name: Set up QEMU 🐧
uses: docker/setup-qemu-action@v1 uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx - name: Set up Docker Buildx 🐳
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry - name: Login to GitHub Container Registry 🔑
uses: docker/login-action@v1 uses: docker/login-action@v1
with: with:
registry: ${{ env.GHCR_REGISTRY }} registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub - name: Login to DockerHub 🔑
uses: docker/login-action@v1 uses: docker/login-action@v1
with: with:
registry: ${{ env.DOCKERHUB_REGISTRY }} registry: ${{ env.DOCKERHUB_REGISTRY }}
username: ${{ env.DOCKER_USER }} username: ${{ env.DOCKER_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push Docker images - name: Build and push Docker images 🛠️
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
with: with:
context: . context: .

View File

@ -8,7 +8,7 @@ jobs:
codeberg: codeberg:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
with: { fetch-depth: 0 } with: { fetch-depth: 0 }
- uses: pixta-dev/repository-mirroring-action@v1 - uses: pixta-dev/repository-mirroring-action@v1
with: with:

View File

@ -91,6 +91,14 @@ const firewallHandler = async (url) => {
return hasWaf('IBM WebSphere DataPower'); return hasWaf('IBM WebSphere DataPower');
} }
if (headers['server'] && headers['server'].includes('QRATOR')) {
return hasWaf('QRATOR WAF');
}
if (headers['server'] && headers['server'].includes('ddos-guard')) {
return hasWaf('DDoS-Guard WAF');
}
return { return {
hasWaf: false, hasWaf: false,
} }

View File

@ -72,7 +72,11 @@ const portsHandler = async (url, event, context) => {
if(timeoutReached){ if(timeoutReached){
return errorResponse('The function timed out before completing.'); return errorResponse('The function timed out before completing.');
} }
// Sort openPorts and failedPorts before returning
openPorts.sort((a, b) => a - b);
failedPorts.sort((a, b) => a - b);
return { openPorts, failedPorts }; return { openPorts, failedPorts };
}; };

View File

@ -93,13 +93,14 @@ const resources = [
link: 'https://ssllabs.com/ssltest/analyze.html', link: 'https://ssllabs.com/ssltest/analyze.html',
icon: 'https://i.ibb.co/6bVL8JK/Qualys-ssl-labs.png', icon: 'https://i.ibb.co/6bVL8JK/Qualys-ssl-labs.png',
description: 'Analyzes the SSL configuration of a server and grades it', description: 'Analyzes the SSL configuration of a server and grades it',
searchLink: 'https://www.ssllabs.com/ssltest/analyze.html?d={URL}',
}, },
{ {
title: 'Virus Total', title: 'Virus Total',
link: 'https://virustotal.com', link: 'https://virustotal.com',
icon: 'https://i.ibb.co/dWFz0RC/Virustotal.png', icon: 'https://i.ibb.co/dWFz0RC/Virustotal.png',
description: 'Checks a URL against multiple antivirus engines', description: 'Checks a URL against multiple antivirus engines',
searchLink: 'https://www.virustotal.com/gui/domain/{URL}', searchLink: 'https://www.virustotal.com/gui/search/{URL_ENCODED}',
}, },
{ {
title: 'Shodan', title: 'Shodan',
@ -120,6 +121,7 @@ const resources = [
link: 'https://urlscan.io/', link: 'https://urlscan.io/',
icon: 'https://i.ibb.co/cYXt8SH/Url-scan.png', icon: 'https://i.ibb.co/cYXt8SH/Url-scan.png',
description: 'Scans a URL and provides information about the page', description: 'Scans a URL and provides information about the page',
searchLink: 'https://urlscan.io/search/#{URL}',
}, },
{ {
title: 'Sucuri SiteCheck', title: 'Sucuri SiteCheck',
@ -133,21 +135,21 @@ const resources = [
link: 'https://whois.domaintools.com/', link: 'https://whois.domaintools.com/',
icon: 'https://i.ibb.co/zJfCKjM/Domain-tools.png', icon: 'https://i.ibb.co/zJfCKjM/Domain-tools.png',
description: 'Run a WhoIs lookup on a domain', description: 'Run a WhoIs lookup on a domain',
searchLink: 'https://whois.domaintools.com/{URL}', searchLink: 'https://whois.domaintools.com/{DOMAIN}',
}, },
{ {
title: 'NS Lookup', title: 'NS Lookup',
link: 'https://nslookup.io/', link: 'https://nslookup.io/',
icon: 'https://i.ibb.co/BLSWvBv/Ns-lookup.png', icon: 'https://i.ibb.co/BLSWvBv/Ns-lookup.png',
description: 'View DNS records for a domain', description: 'View DNS records for a domain',
searchLink: 'https://www.nslookup.io/domains/{URL}/dns-records/', searchLink: 'https://www.nslookup.io/domains/{DOMAIN}/dns-records/',
}, },
{ {
title: 'DNS Checker', title: 'DNS Checker',
link: 'https://dnschecker.org/', link: 'https://dnschecker.org/',
icon: 'https://i.ibb.co/gyKtgZ1/Dns-checker.webp', icon: 'https://i.ibb.co/gyKtgZ1/Dns-checker.webp',
description: 'Check global DNS propagation across multiple servers', description: 'Check global DNS propagation across multiple servers',
searchLink: 'https://dnschecker.org/#A/{URL}', searchLink: 'https://dnschecker.org/#A/{DOMAIN}',
}, },
{ {
title: 'Censys', title: 'Censys',
@ -175,13 +177,13 @@ const resources = [
link: 'https://dnsdumpster.com/', link: 'https://dnsdumpster.com/',
icon: 'https://i.ibb.co/DtQ2QXP/Trash-can-regular.png', icon: 'https://i.ibb.co/DtQ2QXP/Trash-can-regular.png',
description: 'DNS recon tool, to map out a domain from it\'s DNS records', description: 'DNS recon tool, to map out a domain from it\'s DNS records',
searchLink: '',
}, },
{ {
title: 'BGP Tools', title: 'BGP Tools',
link: 'https://bgp.tools/', link: 'https://bgp.tools/',
icon: 'https://i.ibb.co/zhcSnmh/Bgp-tools.png', icon: 'https://i.ibb.co/zhcSnmh/Bgp-tools.png',
description: 'View realtime BGP data for any ASN, Prefix or DNS', description: 'View realtime BGP data for any ASN, Prefix or DNS',
searchLink: 'https://bgp.tools/dns/{URL}',
}, },
{ {
title: 'Similar Web', title: 'Similar Web',
@ -211,10 +213,44 @@ const resources = [
description: 'Assesses website security posture by analyzing various security headers and practices', description: 'Assesses website security posture by analyzing various security headers and practices',
searchLink: 'https://observatory.mozilla.org/analyze/{URL}', searchLink: 'https://observatory.mozilla.org/analyze/{URL}',
}, },
{
title: 'AbuseIPDB',
link: 'https://abuseipdb.com/',
icon: 'https://i.ibb.co/KLZncxw/abuseipdb.png',
description: 'Checks a website against Zscaler\'s dynamic risk scoring engine',
searchLink: 'https://www.abuseipdb.com/check?query={DOMAIN}',
},
{
title: 'IBM X-Force Exchange',
link: 'https://exchange.xforce.ibmcloud.com/',
icon: 'https://i.ibb.co/tsTsCV5/x-force.png',
description: 'View shared human and machine generated threat intelligence',
searchLink: 'https://exchange.xforce.ibmcloud.com/url/{URL_ENCODED}',
},
{
title: 'URLVoid',
link: 'https://urlvoid.com/',
icon: 'https://i.ibb.co/0ZDjCDz/urlvoid-icon.png',
description: 'Checks a website across 30+ blocklist engines and website reputation services',
searchLink: 'https://urlvoid.com/scan/{DOMAIN}',
},
{
title: 'URLhaus',
link: 'https://urlhaus.abuse.ch/',
icon: 'https://i.ibb.co/j3QwrT8/urlhaus-logo.png',
description: 'Checks if the site is in URLhaus\'s malware URL exchange',
searchLink: 'https://urlhaus.abuse.ch/browse.php?search={URL_ENCODED}',
},
{
title: 'ANY.RUN',
link: 'https://any.run/',
icon: 'https://i.ibb.co/6nLw2MC/anyrun-icon.png',
description: 'An interactive malware and web sandbox',
},
]; ];
const makeLink = (resource: any, scanUrl: string | undefined): string => { const makeLink = (resource: any, scanUrl: string | undefined): string => {
return (scanUrl && resource.searchLink) ? resource.searchLink.replaceAll('{URL}', scanUrl.replace('https://', '')) : resource.link; return (scanUrl && resource.searchLink) ? resource.searchLink.replaceAll('{URL}', scanUrl.replace(/(https?:\/\/)?/i, '')).replaceAll('{URL_ENCODED}', encodeURIComponent(scanUrl.replace(/(https?:\/\/)?/i, '')).replace(/['\.*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`)).replaceAll('{DOMAIN}', scanUrl.replace(/(https?:\/\/)?(www.)?/i, '').replace(/(\/.*)/i, '')) : resource.link;
}; };
const AdditionalResources = (props: { url?: string }): JSX.Element => { const AdditionalResources = (props: { url?: string }): JSX.Element => {