1
0
mirror of https://github.com/axllent/mailpit.git synced 2025-03-17 21:18:19 +02:00

Merge branch 'release/v1.9.10'

This commit is contained in:
Ralph Slooten 2023-10-31 16:52:17 +13:00
commit bc963ccfb2
15 changed files with 368 additions and 299 deletions

View File

@ -12,11 +12,11 @@ jobs:
steps:
- uses: actions/stale@v8.0.0
with:
days-before-issue-stale: 21
days-before-issue-stale: 14
days-before-issue-close: 7
exempt-issue-labels: "enhancement,bug,javascript,docker"
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 21 days with no activity."
stale-issue-message: "This issue is stale because it has been open for 14 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 7 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1

View File

@ -2,6 +2,23 @@
Notable changes to Mailpit will be documented in this file.
## [v1.9.10]
### Docs
- Update documentation links
### Fix
- Correctly display "About" modal when update check fails (resolves [#199](https://github.com/axllent/mailpit/issues/199))
### Libs
- Update node modules
- Update Go modules
- Update caniemail test data
### UI
- Fix column width in search view
## [v1.9.9]
### Chore

View File

@ -10,47 +10,47 @@ Mailpit is a small, fast, low memory, zero-dependency, multi-platform email test
It acts as an SMTP server, provides a modern web interface to view & test captured emails, and contains an API for automated integration testing.
Mailpit was originally **inspired** by MailHog which is now [no longer maintained](https://github.com/mailhog/MailHog/issues/442#issuecomment-1493415258) and hasn't seen active development for a few years now.
Mailpit was originally **inspired** by MailHog which is [no longer maintained](https://github.com/mailhog/MailHog/issues/442#issuecomment-1493415258) and hasn't seen active development for a few years now.
![Mailpit](https://raw.githubusercontent.com/axllent/mailpit/develop/docs/screenshot.png)
## Features
- Runs entirely from a single binary, no installation required
- SMTP server (default `0.0.0.0:1025`)
- Web UI to view emails (formatted HTML, highlighted HTML source, text, headers, raw source and MIME attachments including image thumbnails)
- HTML check to test & score mail client compatibility with HTML emails
- Link check to test message links (HTML & text) & linked images
- Screenshots of HTML messages via web UI ([see wiki](https://github.com/axllent/mailpit/wiki/HTML-screenshots))
- Runs entirely from a single [static binary](https://mailpit.axllent.org/docs/install/)
- Modern web UI to view emails (formatted HTML, highlighted HTML source, text, headers, raw source, and MIME attachments
including image thumbnails), including optional [HTTPS](https://mailpit.axllent.org/docs/configuration/https/)
- Optional [basic authentication](https://mailpit.axllent.org/docs/configuration/frontend-authentication/) for web UI & API
- [HTML check](https://mailpit.axllent.org/docs/usage/html-check/) to test & score mail client compatibility with HTML emails
- [Link check](https://mailpit.axllent.org/docs/usage/link-check/) to test message links (HTML & text) & linked images
- [Create screenshots](https://mailpit.axllent.org/docs/usage/html-screenshots/) of HTML messages via web UI
- Mobile and tablet HTML preview toggle in desktop mode
- Light & dark web UI theme with auto-detect
- Advanced mail search ([see wiki](https://github.com/axllent/mailpit/wiki/Mail-search))
- Message tagging ([see wiki](https://github.com/axllent/mailpit/wiki/Tagging))
- Real-time web UI updates using web sockets for new mail
- Optional browser notifications for new mail (when accessed via either HTTPS or `localhost` only)
- Advanced [mail search](https://mailpit.axllent.org/docs/usage/search-filters/)
- [Message tagging](https://mailpit.axllent.org/docs/usage/tagging/)
- Real-time web UI updates using web sockets for new mail & optional browser notifications for new mail (when accessed
via either HTTPS or `localhost` only)
- SMTP server with optional [STARTTLS & SMTP authentication](https://mailpit.axllent.org/docs/configuration/smtp-authentication/) (including an
"accept any" mode)
- [SMTP relaying](https://mailpit.axllent.org/docs/configuration/smtp-relay/) (message release) - relay messages via a different SMTP server
including an optional allowlist of accepted recipients
- Fast SMTP processing & storing - approximately 70-100 emails per second depending on CPU, network speed & email size,
easily handling tens of thousands of emails
- Configurable automatic email pruning (default keeps the most recent 500 emails)
- Email storage either in a temporary or persistent database ([see wiki](https://github.com/axllent/mailpit/wiki/Email-storage))
- Fast SMTP processing & storing - approximately 70-100 emails per second depending on CPU, network speed & email size, easily handling tens of thousands of emails
- SMTP relaying / message release - relay messages via a different SMTP server including an optional allowlist of accepted recipients ([see wiki](https://github.com/axllent/mailpit/wiki/SMTP-relay))
- Optional SMTP with STARTTLS & SMTP authentication, including an "accept anything" mode ([see wiki](https://github.com/axllent/mailpit/wiki/SMTP-with-STARTTLS-and-authentication))
- Optional HTTPS for web UI ([see wiki](https://github.com/axllent/mailpit/wiki/HTTPS))
- Optional basic authentication for web UI ([see wiki](https://github.com/axllent/mailpit/wiki/Basic-authentication))
- A simple REST API ([see docs](docs/apiv1/README.md))
- Optional webhook for received messages ([see docs](https://github.com/axllent/mailpit/wiki/Webhook))
- Multi-architecture [Docker images](https://github.com/axllent/mailpit/wiki/Docker-images)
- A simple [REST API](https://mailpit.axllent.org/docs/api-v1/) for integration testing
- Optional [webhook](https://mailpit.axllent.org/docs/integration/webhook/) for received messages
- Multi-architecture [Docker images](https://mailpit.axllent.org/docs/install/docker/)
## Installation
The Mailpit web UI listens by default on `http://0.0.0.0:8025`, and the SMTP port on `0.0.0.0:1025`.
The Mailpit web UI listens by default on `http://0.0.0.0:8025` and the SMTP port on `0.0.0.0:1025`.
Mailpit runs as a single binary and can be installed in different ways:
### Install via package managers
- **Mac**: `brew install mailpit` (to run automatically in background `brew services start mailpit`)
- **Mac**: `brew install mailpit` (to run automatically in the background: `brew services start mailpit`)
- **Arch Linux**: available in the AUR as `mailpit`
- **FreeBSD**: `pkg install mailpit`
@ -66,31 +66,33 @@ sudo bash < <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop
### Download static binary (Windows, Linux and Mac)
Static binaries can always be found on the [releases](https://github.com/axllent/mailpit/releases/latest). The `mailpit` binary can extracted and copied to your `$PATH`, or simply run as `./mailpit`.
Static binaries can always be found on the [releases](https://github.com/axllent/mailpit/releases/latest). The `mailpit` binary can be extracted and copied to your `$PATH`, or simply run as `./mailpit`.
### Docker
See [Docker instructions](https://github.com/axllent/mailpit/wiki/Docker-images) for 386, amd64 & arm64 images.
See [Docker instructions](https://mailpit.axllent.org/docs/install/docker/) for 386, amd64 & arm64 images.
### Compile from source
To build Mailpit from source see [building from source](https://github.com/axllent/mailpit/wiki/Building-from-source).
To build Mailpit from source, see [Building from source](https://mailpit.axllent.org/docs/install/source/).
## Usage
Run `mailpit -h` to see options. More information can be seen in [the docs](https://github.com/axllent/mailpit/wiki/Runtime-options).
Run `mailpit -h` to see options. More information can be seen in [the docs](https://mailpit.axllent.org/docs/configuration/runtime-options/).
If installed using homebrew, you may run `brew services start mailpit` to run always run mailpit automatically.
If installed using homebrew, you may run `brew services start mailpit` to always run mailpit automatically.
### Testing Mailpit
Please refer to [the documentation](https://github.com/axllent/mailpit/wiki/Testing-Mailpit) of how to easily test email delivery to Mailpit.
Please refer to [the documentation](https://mailpit.axllent.org/docs/install/testing/) on how to easily test email delivery to Mailpit.
### Configuring sendmail
Mailpit's SMTP server (by default on port 1025), so you will likely need to configure your sending application to deliver mail via that port. A common MTA (Mail Transfer Agent) that delivers system emails to a SMTP server is `sendmail`, used by many applications including PHP. Mailpit can also act as substitute for sendmail. For instructions of how to set this up, please refer to the [sendmail documentation](https://github.com/axllent/mailpit/wiki/Configuring-sendmail).
Mailpit's SMTP server (default on port 1025), so you will likely need to configure your sending application to deliver mail via that port.
A common MTA (Mail Transfer Agent) that delivers system emails to an SMTP server is `sendmail`, used by many applications, including PHP.
Mailpit can also act as substitute for sendmail. For instructions on how to set this up, please refer to the [sendmail documentation](https://mailpit.axllent.org/docs/install/sendmail/).

View File

@ -1,7 +1,3 @@
/*
Copyright © 2022-Now() Ralph Slooten
This file is part of a CLI application.
*/
package cmd
import (

View File

@ -29,7 +29,7 @@ It acts as an SMTP server, and provides a web interface to view all captured ema
Documentation:
https://github.com/axllent/mailpit
https://github.com/axllent/mailpit/wiki`,
https://mailpit.axllent.org/docs/`,
Run: func(_ *cobra.Command, _ []string) {
if err := config.VerifyConfig(); err != nil {
logger.Log().Error(err.Error())

View File

@ -4,9 +4,9 @@ Mailpit provides a simple REST API to access and delete stored messages.
If the Mailpit server is set to use Basic Authentication, then API requests must use Basic Authentication too.
You can view the Swagger API documentation directly within Mailpit by going to `http://0.0.0.0:8025/api/v1/`.
You can view the Swagger API documentation directly within Mailpit by going to https://mailpit.axllent.org/docs/api-v1/.
The API is split into three main parts:
The API is split into four main parts:
- [Messages](Messages.md) - Listing, deleting & marking messages as read/unread.
- [Message](Message.md) - Return message data & attachments

6
go.mod
View File

@ -8,11 +8,11 @@ require (
github.com/axllent/semver v0.0.1
github.com/disintegration/imaging v1.6.2
github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386
github.com/google/uuid v1.3.1
github.com/google/uuid v1.4.0
github.com/gorilla/mux v1.8.0
github.com/gorilla/websocket v1.5.0
github.com/jhillyerd/enmime v1.0.1
github.com/klauspost/compress v1.17.1
github.com/klauspost/compress v1.17.2
github.com/leporo/sqlf v1.4.0
github.com/mhale/smtpd v0.8.0
github.com/reiver/go-telnet v0.0.0-20180421082511-9ff0b2ab096e
@ -60,7 +60,7 @@ require (
lukechampine.com/uint128 v1.3.0 // indirect
modernc.org/cc/v3 v3.41.0 // indirect
modernc.org/ccgo/v3 v3.16.15 // indirect
modernc.org/libc v1.24.1 // indirect
modernc.org/libc v1.29.0 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.7.2 // indirect
modernc.org/opt v0.1.3 // indirect

12
go.sum
View File

@ -55,8 +55,8 @@ github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386 h1:EcQR3gusLHN
github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
@ -71,8 +71,8 @@ github.com/jhillyerd/enmime v1.0.1 h1:y6RyqIgBOI2hIinOXIzmeB+ITRVls0zTJIm5GwgXnj
github.com/jhillyerd/enmime v1.0.1/go.mod h1:LMMbm6oTlzWHghPavqHtOrP/NosVv3l42CUrZjn03/Q=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/klauspost/compress v1.17.1 h1:NE3C767s2ak2bweCZo3+rdP4U/HoyVXLv/X9f2gPS5g=
github.com/klauspost/compress v1.17.1/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
@ -217,8 +217,8 @@ modernc.org/ccgo/v3 v3.16.15 h1:KbDR3ZAVU+wiLyMESPtbtE/Add4elztFyfsWoNTgxS0=
modernc.org/ccgo/v3 v3.16.15/go.mod h1:yT7B+/E2m43tmMOT51GMoM98/MtHIcQQSleGnddkUNI=
modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM=
modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak=
modernc.org/libc v1.29.0 h1:tTFRFq69YKCF2QyGNuRUQxKBm1uZZLubf6Cjh/pVHXs=
modernc.org/libc v1.29.0/go.mod h1:DaG/4Q3LRRdqpiLyP0C2m1B8ZMGkQ+cCgOIjEtQlYhQ=
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=

View File

@ -1,6 +1,6 @@
{
"api_version":"1.0.4",
"last_update_date":"2023-09-22 13:57:52 +0000",
"last_update_date":"2023-10-10 15:06:18 +0000",
"nicenames":{"family":{"gmail":"Gmail","outlook":"Outlook","yahoo":"Yahoo! Mail","apple-mail":"Apple Mail","aol":"AOL","thunderbird":"Mozilla Thunderbird","microsoft":"Microsoft","samsung-email":"Samsung Email","sfr":"SFR","orange":"Orange","protonmail":"ProtonMail","hey":"HEY","mail-ru":"Mail.ru","fastmail":"Fastmail","laposte":"LaPoste.net","t-online-de":"T-online.de","free-fr":"Free.fr","gmx":"GMX","web-de":"WEB.DE","ionos-1and1":"1&1","rainloop":"RainLoop"},"platform":{"desktop-app":"Desktop","desktop-webmail":"Desktop Webmail","mobile-webmail":"Mobile Webmail","webmail":"Webmail","ios":"iOS","android":"Android","windows":"Windows","macos":"macOS","windows-mail":"Windows Mail","outlook-com":"Outlook.com"},"support":{"supported":"Supported","mitigated":"Partially supported","unsupported":"Not supported","unknown":"Support unknown","mixed":"Mixed support"},"category":{"html":"HTML","css":"CSS","image":"Image formats","others":"Others"}},
"data":[
{
@ -169,7 +169,7 @@
"description":"This media query tests whether the user's input device[s] (i.e mouse, trackpad etc.) can hover over elements",
"url":"https://www.caniemail.com/features/css-at-media-hover/",
"category":"css",
"tags":[],
"tags":["accessibility"],
"keywords":"media, media query, hover, any-hover",
"last_test_date":"2022-08-29",
"test_url":"https://www.caniemail.com/tests/css-media-hover.html",
@ -201,7 +201,7 @@
"description":"This media query allows to theme for system light and dark mode.",
"url":"https://www.caniemail.com/features/css-at-media-prefers-color-scheme/",
"category":"css",
"tags":[],
"tags":["accessibility"],
"keywords":"media queries, media query, media feature, dark mode, light mode",
"last_test_date":"2023-03-08",
"test_url":"https://www.caniemail.com/tests/css-media-prefers-color-scheme.html",
@ -1561,7 +1561,7 @@
"description":null,
"url":"https://www.caniemail.com/features/css-pseudo-class-active/",
"category":"css",
"tags":[],
"tags":["accessibility"],
"keywords":"pseudo-class",
"last_test_date":"2019-10-28",
"test_url":"https://www.caniemail.com/tests/css-selectors-pseudo-classes.html",
@ -1625,7 +1625,7 @@
"description":null,
"url":"https://www.caniemail.com/features/css-pseudo-class-focus/",
"category":"css",
"tags":[],
"tags":["accessibility"],
"keywords":"pseudo-class",
"last_test_date":"2019-10-28",
"test_url":"https://www.caniemail.com/tests/css-selectors-pseudo-classes.html",
@ -1657,7 +1657,7 @@
"description":null,
"url":"https://www.caniemail.com/features/css-pseudo-class-hover/",
"category":"css",
"tags":[],
"tags":["accessibility"],
"keywords":"rollover, pseudo-class",
"last_test_date":"2019-10-23",
"test_url":"https://www.caniemail.com/tests/css-selectors-pseudo-classes.html",
@ -2683,10 +2683,10 @@
"category":"css",
"tags":[],
"keywords":"unit, vh",
"last_test_date":"2020-02-25",
"last_test_date":"2023-10-01",
"test_url":"https://www.caniemail.com/tests/css-units.html",
"test_results_url":"",
"stats":{"apple-mail":{"macos":{"13":"y"},"ios":{"13":"y"}},"gmail":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"},"mobile-webmail":{"2020-02":"y"}},"outlook":{"windows":{"2003":"n","2007":"n","2010":"n","2013":"n","2016":"n","2019":"n"},"windows-mail":{"2020-02":"n"},"macos":{"2016":"y"},"outlook-com":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"samsung-email":{"android":{"9.0":"y"}},"thunderbird":{"windows":{"2020-02":"y"},"macos":{"68.4":"y"}},"aol":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"yahoo":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"orange":{"desktop-webmail":{"2020-02":"y","2021-03":"n"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"sfr":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"n"}},"protonmail":{"desktop-webmail":{"2020-03":"y"},"ios":{"2020-03":"y"},"android":{"2020-03":"y"}},"hey":{"desktop-webmail":{"2020-06":"y"}},"mail-ru":{"desktop-webmail":{"2020-10":"y"}},"fastmail":{"desktop-webmail":{"2021-07":"n"}},"laposte":{"desktop-webmail":{"2021-08":"y"}},"gmx":{"desktop-webmail":{"2022-08":"n"},"ios":{"2022-08":"y"},"android":{"2022-08":"a #2"}},"web-de":{"desktop-webmail":{"2022-08":"n"},"ios":{"2022-08":"y"},"android":{"2022-08":"a #2"}},"ionos-1and1":{"desktop-webmail":{"2022-08":"y #1"},"android":{"2022-08":"y"}}},
"test_results_url":"https://app.emailonacid.com/app/acidtest/AhzTJnsoWULAInwe2B8h7uzlsa6vGOgAkVK1VA6BbuKaW/list",
"stats":{"apple-mail":{"macos":{"13":"y"},"ios":{"13":"y","15":"a #2","17":"a #2"}},"gmail":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"},"mobile-webmail":{"2020-02":"y"}},"outlook":{"windows":{"2003":"n","2007":"n","2010":"n","2013":"n","2016":"n","2019":"n"},"windows-mail":{"2020-02":"n"},"macos":{"2016":"y"},"outlook-com":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"samsung-email":{"android":{"9.0":"y"}},"thunderbird":{"windows":{"2020-02":"y"},"macos":{"68.4":"y"}},"aol":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"yahoo":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"orange":{"desktop-webmail":{"2020-02":"y","2021-03":"n"},"ios":{"2020-02":"y"},"android":{"2020-02":"y"}},"sfr":{"desktop-webmail":{"2020-02":"y"},"ios":{"2020-02":"y"},"android":{"2020-02":"n"}},"protonmail":{"desktop-webmail":{"2020-03":"y"},"ios":{"2020-03":"y"},"android":{"2020-03":"y"}},"hey":{"desktop-webmail":{"2020-06":"y"}},"mail-ru":{"desktop-webmail":{"2020-10":"y"}},"fastmail":{"desktop-webmail":{"2021-07":"n"}},"laposte":{"desktop-webmail":{"2021-08":"y"}},"gmx":{"desktop-webmail":{"2022-08":"n"},"ios":{"2022-08":"y"},"android":{"2022-08":"a #2"}},"web-de":{"desktop-webmail":{"2022-08":"n"},"ios":{"2022-08":"y"},"android":{"2022-08":"a #2"}},"ionos-1and1":{"desktop-webmail":{"2022-08":"y #1"},"android":{"2022-08":"y"}}},
"notes":"",
"notes_by_num":{"1":"Buggy. Can affect the preview window size, meaning content can get lost.","2":"Buggy. Value resolves to zero"}
},
@ -2867,6 +2867,22 @@
"notes_by_num":null
},
{
"slug":"html-abbr",
"title":"<abbr> element",
"description":"Represents an abbreviation or acronym.",
"url":"https://www.caniemail.com/features/html-abbr/",
"category":"html",
"tags":[],
"keywords":null,
"last_test_date":"2023-09-13",
"test_url":"https://www.caniemail.com/tests/html-abbr.html",
"test_results_url":"https://testi.at/proj/xlp4una8f926u48oco8",
"stats":{"apple-mail":{"macos":{"2023-09":"y"},"ios":{"2023-09":"y"}},"gmail":{"desktop-webmail":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"},"mobile-webmail":{"2023-09":"y"}},"orange":{"desktop-webmail":{"2023-10":"n"},"ios":{"2023-10":"n"},"android":{"2023-09":"u"}},"outlook":{"windows":{"2013":"n #1","2016":"n #1","2019":"n #1","2021":"n #1"},"windows-mail":{"2023-09":"n #1"},"macos":{"2023-09":"y"},"outlook-com":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"}},"samsung-email":{"android":{"2023-09":"y"}},"sfr":{"desktop-webmail":{"2023-10":"y"},"ios":{"2023-10":"y"},"android":{"2023-09":"u"}},"thunderbird":{"macos":{"2023-09":"y"}},"aol":{"desktop-webmail":{"2023-09":"n"},"ios":{"2023-09":"n"},"android":{"2023-09":"n"}},"yahoo":{"desktop-webmail":{"2023-09":"n"},"ios":{"2023-09":"n"},"android":{"2023-09":"n"}},"protonmail":{"desktop-webmail":{"2023-10":"y"},"ios":{"2023-10":"y"},"android":{"2023-09":"u"}},"hey":{"desktop-webmail":{"2023-10":"n"}},"mail-ru":{"desktop-webmail":{"2023-09":"n"}},"fastmail":{"desktop-webmail":{"2023-10":"y"}},"laposte":{"desktop-webmail":{"2023-10":"y"}},"free-fr":{"desktop-webmail":{"2023-10":"y"}},"t-online-de":{"desktop-webmail":{"2023-09":"y"}},"gmx":{"desktop-webmail":{"2023-09":"y"}},"web-de":{"desktop-webmail":{"2023-09":"y"}}},
"notes":null,
"notes_by_num":{"1":"Buggy. Element's content are still kept."}
},
{
"slug":"html-address",
"title":"address",
@ -3155,6 +3171,22 @@
"notes_by_num":{"1":"Partial. Not supported with non Gmail accounts."}
},
{
"slug":"html-dfn",
"title":"<def> element",
"description":"It is used to identify a term that is going to be described within the content.",
"url":"https://www.caniemail.com/features/html-dfn/",
"category":"html",
"tags":[],
"keywords":null,
"last_test_date":"2023-09-11",
"test_url":"https://www.caniemail.com/tests/html-dfn.html",
"test_results_url":"https://testi.at/proj/gy2dfo4j19d4176d08y",
"stats":{"apple-mail":{"macos":{"2023-09":"y"},"ios":{"2023-09":"y"}},"gmail":{"desktop-webmail":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"},"mobile-webmail":{"2023-09":"y"}},"orange":{"desktop-webmail":{"2023-09":"u"},"ios":{"2023-09":"u"},"android":{"2023-09":"u"}},"outlook":{"windows":{"2013":"a #1","2016":"a #1","2019":"a #1","2021":"a #1"},"windows-mail":{"2023-09":"a #1"},"macos":{"16.56":"y"},"outlook-com":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"}},"samsung-email":{"android":{"2023-09":"y"}},"sfr":{"desktop-webmail":{"2023-09":"u"},"ios":{"2023-09":"u"},"android":{"2023-09":"u"}},"thunderbird":{"macos":{"2023-09":"y"}},"aol":{"desktop-webmail":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"}},"yahoo":{"desktop-webmail":{"2023-09":"y"},"ios":{"2023-09":"y"},"android":{"2023-09":"y"}},"protonmail":{"desktop-webmail":{"2023-09":"u"},"ios":{"2023-09":"u"},"android":{"2023-09":"u"}},"hey":{"desktop-webmail":{"2023-09":"u"}},"mail-ru":{"desktop-webmail":{"2023-09":"n"}},"fastmail":{"desktop-webmail":{"2023-09":"u"}},"laposte":{"desktop-webmail":{"2023-09":"u"}},"free-fr":{"desktop-webmail":{"2023-09":"u"}},"t-online-de":{"desktop-webmail":{"2023-09":"n"}},"gmx":{"desktop-webmail":{"2023-09":"y"}},"web-de":{"desktop-webmail":{"2023-09":"y"}}},
"notes":null,
"notes_by_num":{"1":"Partial. The `title` attribute is removed."}
},
{
"slug":"html-dialog",
"title":"<dialog> element",

View File

@ -2,7 +2,7 @@ package htmlcheck
import (
"fmt"
"io/ioutil"
"io"
"net/http"
"net/url"
"strings"
@ -204,7 +204,7 @@ func downloadToBytes(url string) ([]byte, error) {
return nil, err
}
body, err := ioutil.ReadAll(resp.Body)
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}

View File

@ -1,3 +1,4 @@
// package Updater checks and downloads new versions
package updater
import (
@ -6,13 +7,14 @@ import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
"os/exec"
"path/filepath"
"runtime"
"time"
"github.com/axllent/mailpit/config"
"github.com/axllent/mailpit/internal/logger"
"github.com/axllent/semver"
)
@ -49,13 +51,27 @@ type Release struct {
func GithubLatest(repo, name string) (string, string, string, error) {
releaseURL := fmt.Sprintf("https://api.github.com/repos/%s/releases", repo)
resp, err := http.Get(releaseURL) // #nosec
timeout := time.Duration(5 * time.Second)
client := http.Client{
Timeout: timeout,
}
req, err := http.NewRequest("GET", releaseURL, nil)
if err != nil {
return "", "", "", err
}
req.Header.Set("User-Agent", "Mailpit/"+config.Version)
resp, err := client.Do(req)
if err != nil {
return "", "", "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
body, err := io.ReadAll(resp.Body)
if err != nil {
return "", "", "", err

465
package-lock.json generated
View File

@ -451,12 +451,12 @@
}
},
"node_modules/@swagger-api/apidom-ast": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.78.0.tgz",
"integrity": "sha512-mEXmRmkFlmO6dcBuakFkc2gevN4mC6incPAQE1UciaX4hLuJpiv/5DTH9gVWTR0CWUFw/dXROTD/x6ETV0y03A==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ast/-/apidom-ast-0.81.0.tgz",
"integrity": "sha512-klp9i25LcBIMc/JASec7hejNMsKhgCXLZmQ4qjaq97nC3T7uAYY0znvzQJxS0gtpK52r2EgcW6puSAyCDd8sWw==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-error": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -465,13 +465,13 @@
}
},
"node_modules/@swagger-api/apidom-core": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.78.0.tgz",
"integrity": "sha512-Qx9m+1u6H4Bsa38s73ANtGn8zFGqK0peguM+SFuUR5HirjpoFB8JB7IG5E8+ymUlpWhlU43q9QnJjcaYJw9MTg==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-core/-/apidom-core-0.81.0.tgz",
"integrity": "sha512-JWqUhZssF6OiT2poMcYtxhp7rQJoNjff/xBYOmZ0BILkCcc8ox+7IRmOUtF6jMw5EKuOMkvXm3gH4+M0FPpmNw==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-ast": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ast": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@types/ramda": "~0.29.6",
"minim": "~0.23.8",
"ramda": "~0.29.0",
@ -481,9 +481,9 @@
}
},
"node_modules/@swagger-api/apidom-error": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-error/-/apidom-error-0.78.0.tgz",
"integrity": "sha512-P0enIK3XymxCPHlhGtqc4TU5H+cHf7L0yDFmfjZEcsjDzGDv5A+m5tf429Pr/R+e51DzpT5/xIcPKTnti0gIOw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-error/-/apidom-error-0.81.0.tgz",
"integrity": "sha512-bgIlp+86+2RCq83TSbBl56z0R6QNh1NQHatqXPONhnlAIfGVLtgvMGp1KxNIfoH2Ma3ziTdI+nwmwx+nXmoPpA==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@types/ramda": "~0.29.6",
@ -492,28 +492,28 @@
}
},
"node_modules/@swagger-api/apidom-json-pointer": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.78.0.tgz",
"integrity": "sha512-Ly4ZfUGxxbNoHHc9vR814mU96ZLGsjaJflCW0jdZnMVfVv20fDCoDoOOmXat6ajxUbS2YKimgxPvdBth3K/CRQ==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.81.0.tgz",
"integrity": "sha512-XHccZotK1/YxVLPc/BeCGPOH/ErwfNT8QoDpPGTfsoyloFMyobeaN6RQJ2UhuqiFKut5FbLNLzBWBV+AcGieUA==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-ns-api-design-systems": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.78.0.tgz",
"integrity": "sha512-WoWE6w1P3qsokG3Qyc5F3xpz+e/WablE0EHGSgiYxk+MQJLqYmz5UhS5LxYGT9d6o9XUs24ykSbKrYWYwkpp4w==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.81.0.tgz",
"integrity": "sha512-6+mF7Guza9zFWX55EkwyuzV4aYhpGnAg5N3Yg0IJT3l/cZyRXyw822K4iMfk777tSsapEkcCAs1mxKcR9Z5e8A==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -521,14 +521,14 @@
}
},
"node_modules/@swagger-api/apidom-ns-asyncapi-2": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.78.0.tgz",
"integrity": "sha512-QWZohCtXf5UX/I9bnc4MQh16X9jGPdGrByWM93xRvh8X8rIF0BtF9S7lIx028aX3AHYIu4SwYr7JZlqEaZ92Kw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.81.0.tgz",
"integrity": "sha512-8+U7/aeuMc2bwaH8pXNjgqY5XdN2VwX8SVyryaYQf9FUWhU6UxW4qXF0jmYabdZwJk3jmn2oQ5/GQDwJ3bUsEw==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-json-schema-draft-7": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-json-schema-draft-7": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -536,13 +536,13 @@
}
},
"node_modules/@swagger-api/apidom-ns-json-schema-draft-4": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.78.0.tgz",
"integrity": "sha512-19NR9lTHMOQTIEV4tJq+FlHQAYnjyH+DgI4mmRu6UMFSZjRjutYF7B8lCGogSus9Uwy8YpUk00prLFTld00wgA==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.81.0.tgz",
"integrity": "sha512-9FGmyumk8FPGfOOa2587dYlxQz8AbTDXDidZ7CARjVTbd/u5nvdU2Gtga94GTUgx5RZVorESASgRWBwi0R/Tpw==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-ast": "^0.78.0",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ast": "^0.81.0",
"@swagger-api/apidom-core": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -550,15 +550,15 @@
}
},
"node_modules/@swagger-api/apidom-ns-json-schema-draft-6": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.78.0.tgz",
"integrity": "sha512-pHyCPU3OWDiPuLepo03rBpi2n+SCH6PZAgguqAB3lDJ2ymitrT2SNpmZ6CcHvPGR9Y7h4/fR5vAypVZfdNr/WQ==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.81.0.tgz",
"integrity": "sha512-HV+/JTUSOrq2GQLI4mnC90t0mSVhak/hlG8zxoOmyZlASZ/Cr+Z8QqzeDEEKIdxp8igzraEPWLZdw301SuObUQ==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ns-json-schema-draft-4": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@swagger-api/apidom-ns-json-schema-draft-4": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -566,15 +566,15 @@
}
},
"node_modules/@swagger-api/apidom-ns-json-schema-draft-7": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.78.0.tgz",
"integrity": "sha512-ScUiNNAdwnikH3Fo2rUsDmXOjV7zXfQ6CGE+QkY5Wj3t1M6siw2HpDjrBaaCyp6w/bemvogsh280GrzAnxKLIw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.81.0.tgz",
"integrity": "sha512-f4KMzUGP4ChbsfV0jo3YJRuuXYDnX69CkmVGte/nBAwd/0V5Sf8ub1UOkAAG4NBq1iO34z/rJT2YiwjEv0nxJA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ns-json-schema-draft-6": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@swagger-api/apidom-ns-json-schema-draft-6": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -582,14 +582,14 @@
}
},
"node_modules/@swagger-api/apidom-ns-openapi-3-0": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.78.0.tgz",
"integrity": "sha512-GRmUOknEzMG37y5sStvjEsk30RLVg5E7iZuougK1rEf+wzzX5XhorSgMx2NQmka5rb814BgzyiqGRmvKQErDBw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.81.0.tgz",
"integrity": "sha512-IC/KM/uuUkdihe8+J+Fl0zvYgh1dnP/Ofde4935Azee28Zu2SEso9r4V8OzzbNcO5I+DoQWgwxoodrb6PU954g==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ns-json-schema-draft-4": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@swagger-api/apidom-ns-json-schema-draft-4": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -597,14 +597,14 @@
}
},
"node_modules/@swagger-api/apidom-ns-openapi-3-1": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.78.0.tgz",
"integrity": "sha512-hHpUZLjIiaLK+99cAPiYNV9QzZQxFoMLqBNYo+GQwqizaVOjxQRi5y/hPkfFALqqufZ1L6XWeyjQrtli0ftqBQ==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.81.0.tgz",
"integrity": "sha512-k0lHS3Px5uy2+ubTYkCLniZsrqzx0O9BdmaCVoOKBF7jmpd5ewSNgaMuEYFpP8qabIZ9UEZBgVIy5m5UFZ2c0A==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-ast": "^0.78.0",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.78.0",
"@swagger-api/apidom-ast": "^0.81.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -612,75 +612,75 @@
}
},
"node_modules/@swagger-api/apidom-parser-adapter-api-design-systems-json": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.78.0.tgz",
"integrity": "sha512-g7VlfOrpTzbVV30Ugab0qAJITavLo39apvyFFv2cN2jfuIQa8MlzDP0mZmVtCGQy3IoT4Auns/qWeGcZX0li9w==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.81.0.tgz",
"integrity": "sha512-9x2wSaWygAlL+V4hvtxKPpZ3htmf0sFGS3BbWQ8p+Nmek3KsEisRnQOyQxMiMr7zgIjuZICE18YDajPAsTG0RA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-api-design-systems": "^0.78.0",
"@swagger-api/apidom-parser-adapter-json": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-api-design-systems": "^0.81.0",
"@swagger-api/apidom-parser-adapter-json": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-api-design-systems-yaml": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.78.0.tgz",
"integrity": "sha512-ZueYoHOJARRm84ntCggUZLKNwUHz2U0eG9KHIzw75UW43pyvQVbxAE2ELdyP5f8vr51wMuMp6XYRcFOsNi/oeQ==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.81.0.tgz",
"integrity": "sha512-e7CrCdSW0Ht3eoHI3g4zeG1zCC06AYI4Njx8axpOsnqEo3Py1WUVMBNUzHJI6f/R6uVnHASroUo/vxdd2jSpKQ==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-api-design-systems": "^0.78.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-api-design-systems": "^0.81.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-asyncapi-json-2": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.78.0.tgz",
"integrity": "sha512-Jm0hbNXWOH2QJIiF+5QgY+ioVSOBqV3WlhTeyrF5kSxHinah16nR1jUkz5tMsSc9sxTZHzWYVLneyBMW3VSHrw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.81.0.tgz",
"integrity": "sha512-4whlpVnteK79znQubclDlD+Let/FEdiYFPjIyD9Dsmn4yYqk0MJldz+RUXAXUObJk/75Tc+tafBxevVW0CSTRA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.78.0",
"@swagger-api/apidom-parser-adapter-json": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.81.0",
"@swagger-api/apidom-parser-adapter-json": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.78.0.tgz",
"integrity": "sha512-zpP8gQBXhrR/t91Z/Jl0nD/cUSzmYjzhE5qWHkfhbGvzaWatiLrNY+CnFS9RcgF4pb2LSqS5cjDVAExBbjdLdQ==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.81.0.tgz",
"integrity": "sha512-ryCpusKPPuyz9QQ3M3dgdgpji710N8ob5Ogys1GxD2eLmoZawrpej2/NuTKN1thypx3elsmKuPKVisIUlxp1lA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.78.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.81.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-json": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.78.0.tgz",
"integrity": "sha512-d/8gFj5cc+pnCo7ORGN5dJPGWzTleYkIwGfsyFuLZNjb4KlrOrKlPl0LKQ/t7MSEbVpSStxbgezoUtfdVhGscw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.81.0.tgz",
"integrity": "sha512-iToPxMZcC9mSo9o0BkGMeUSDUbHF+bvneu5xjm8viQeQuXMv7AluseL5DLokjOaf7YZYhTBRw2Qh+851tX/BTA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-ast": "^0.78.0",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ast": "^0.81.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -691,75 +691,75 @@
}
},
"node_modules/@swagger-api/apidom-parser-adapter-openapi-json-3-0": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.78.0.tgz",
"integrity": "sha512-MjXkPAiEyTZIljzjEgvAmqaZel0jpKBBqdtC8nWH/9C2ugkKHetKMSgYu+5wvFh//ixJZZE7dM1QHEIBoPl9nA==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.81.0.tgz",
"integrity": "sha512-ysLrcY6J/F5KC1A/RYsmeeDP6ItDspiyO8D8u/JOV6+GV+A3OO4B/BwHTPcepQ8LXsa34P9H+rwLL4qxDpiD7A==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.78.0",
"@swagger-api/apidom-parser-adapter-json": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.81.0",
"@swagger-api/apidom-parser-adapter-json": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-openapi-json-3-1": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.78.0.tgz",
"integrity": "sha512-k+rT6kwu1jAN1lYIP1wVshQdaLu9M+jjCfpvMXXkL/2VpZqq1yP6daFm0ExiHllVUcHWeqRXhubFV3wWkFm6eA==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.81.0.tgz",
"integrity": "sha512-ZEVorwljzA1DSSOBzMz5v7n2/iYMoLSQAf88X+Es9Nq7s1g0mJF1rwd+ZSBwGNE7Zc0meFTiKh70/kO+SNMQsw==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.78.0",
"@swagger-api/apidom-parser-adapter-json": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.81.0",
"@swagger-api/apidom-parser-adapter-json": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.78.0.tgz",
"integrity": "sha512-RzcqL0kvUl5G75H4qOFSi9FTaVfBtRnjzEcjd8SOKVLg3JJsCv3vrk68laRm8HXocyWgGstU51UzBqkMStXy4A==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.81.0.tgz",
"integrity": "sha512-hVMrdjOIXM0p6+ioW5ClC1gzDyBkAoPq6+qMfKw6QsGzdP2TnAflWY1OhpUt2d1pl8TgbtqCmfF0fWA6T5RvAQ==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.78.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.81.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.78.0.tgz",
"integrity": "sha512-1hB+mcEJd14RJC8lH3yJsoQRDhA8TNNKl3EyQ17eFY0dK29JlluDEbDHIRQpLT1l2jCK/NfqAk2hc37yIwydfw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.81.0.tgz",
"integrity": "sha512-rZWERW8nja8ypEYssr8TybwBAWvadXmlrd1Qh+zzBDB3aN7RdQ6AMcOSHocnsrQiD1ANUEEQEUCNHxNkoCoXyA==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.78.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.81.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.0.0"
}
},
"node_modules/@swagger-api/apidom-parser-adapter-yaml-1-2": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.78.0.tgz",
"integrity": "sha512-L37X+nRNp+2PyJkAwMdSQjP8tb3xoc6FVk2QXLHogghe1Phrmfaal3TPu2rWJNn7NSBcvSyiTAR7gEIULitugA==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.81.0.tgz",
"integrity": "sha512-17iL42Cv/je7QIcnwJwSBuX+hOAzSxlMkb6kDHFUO29IJaqnB1mJNqHMBr0ruay+M2U43gTi/Z4JClT8UyFxLQ==",
"optional": true,
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-ast": "^0.78.0",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-ast": "^0.81.0",
"@swagger-api/apidom-core": "^0.81.0",
"@swagger-api/apidom-error": "^0.81.0",
"@types/ramda": "~0.29.6",
"ramda": "~0.29.0",
"ramda-adjunct": "^4.1.1",
@ -770,12 +770,12 @@
}
},
"node_modules/@swagger-api/apidom-reference": {
"version": "0.78.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.78.0.tgz",
"integrity": "sha512-IiOaMgy+CzpQe5fFwyge4B/lkHQnBhiuNGPgIJELYXJMZle+pN6K/V4muLCG6JjAXllucbCqMpW/KLmPxGAXaw==",
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@swagger-api/apidom-reference/-/apidom-reference-0.81.0.tgz",
"integrity": "sha512-MhAkoQ7Z2mjN5YhkBUdVIHQl80VK4RARF7vYqcgVtpRr3fu6Fh1MQPreIaGUeTxsZqAt2RJzMU0xNLEWGYAxow==",
"dependencies": {
"@babel/runtime-corejs3": "^7.20.7",
"@swagger-api/apidom-core": "^0.78.0",
"@swagger-api/apidom-core": "^0.81.0",
"@types/ramda": "~0.29.6",
"axios": "^1.4.0",
"minimatch": "^7.4.3",
@ -785,21 +785,21 @@
"stampit": "^4.3.2"
},
"optionalDependencies": {
"@swagger-api/apidom-error": "^0.78.0",
"@swagger-api/apidom-json-pointer": "^0.78.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.78.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.78.0",
"@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.78.0",
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.78.0",
"@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.78.0",
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.78.0",
"@swagger-api/apidom-parser-adapter-json": "^0.78.0",
"@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.78.0",
"@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.78.0",
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.78.0",
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.78.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.78.0"
"@swagger-api/apidom-error": "^0.81.0",
"@swagger-api/apidom-json-pointer": "^0.81.0",
"@swagger-api/apidom-ns-asyncapi-2": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-0": "^0.81.0",
"@swagger-api/apidom-ns-openapi-3-1": "^0.81.0",
"@swagger-api/apidom-parser-adapter-api-design-systems-json": "^0.81.0",
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "^0.81.0",
"@swagger-api/apidom-parser-adapter-asyncapi-json-2": "^0.81.0",
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "^0.81.0",
"@swagger-api/apidom-parser-adapter-json": "^0.81.0",
"@swagger-api/apidom-parser-adapter-openapi-json-3-0": "^0.81.0",
"@swagger-api/apidom-parser-adapter-openapi-json-3-1": "^0.81.0",
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "^0.81.0",
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "^0.81.0",
"@swagger-api/apidom-parser-adapter-yaml-1-2": "^0.81.0"
}
},
"node_modules/@types/bootstrap": {
@ -831,36 +831,36 @@
"integrity": "sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA=="
},
"node_modules/@vue/compiler-core": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.5.tgz",
"integrity": "sha512-S8Ma+eICI40Y4UotR+iKR729Bma+wERn/xLc+Jz203s5WIW1Sx3qoiONqXGg3Q4vBMa+QHDncULya19ZSJuhog==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.7.tgz",
"integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==",
"dependencies": {
"@babel/parser": "^7.23.0",
"@vue/shared": "3.3.5",
"@vue/shared": "3.3.7",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.5.tgz",
"integrity": "sha512-dxt6QntN9T/NtnV6Pz+/nmcoo3ULnsYCnRpvEyY73wbk1tzzx7dnwngUN1cXkyGNu9c3UE7llhq/5T54lKwyhQ==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz",
"integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==",
"dependencies": {
"@vue/compiler-core": "3.3.5",
"@vue/shared": "3.3.5"
"@vue/compiler-core": "3.3.7",
"@vue/shared": "3.3.7"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.5.tgz",
"integrity": "sha512-M6ys4iReSbrF4NTcMCnJiBioCpzXjfkfXwkdziknRyps+pG0DkwpDfQT7zQ0q91/rCR/Ejz64b5H6C4HBhX41w==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz",
"integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==",
"dependencies": {
"@babel/parser": "^7.23.0",
"@vue/compiler-core": "3.3.5",
"@vue/compiler-dom": "3.3.5",
"@vue/compiler-ssr": "3.3.5",
"@vue/reactivity-transform": "3.3.5",
"@vue/shared": "3.3.5",
"@vue/compiler-core": "3.3.7",
"@vue/compiler-dom": "3.3.7",
"@vue/compiler-ssr": "3.3.7",
"@vue/reactivity-transform": "3.3.7",
"@vue/shared": "3.3.7",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5",
"postcss": "^8.4.31",
@ -868,12 +868,12 @@
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.5.tgz",
"integrity": "sha512-v7p2XuEpOcgjd6c49NqOnq3UTJOv5Uo9tirOyGnEadwxTov2O1J3/TUt4SgAAnwA+9gcUyH5c3lIOFsBe+UIyw==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz",
"integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==",
"dependencies": {
"@vue/compiler-dom": "3.3.5",
"@vue/shared": "3.3.5"
"@vue/compiler-dom": "3.3.7",
"@vue/shared": "3.3.7"
}
},
"node_modules/@vue/devtools-api": {
@ -882,60 +882,60 @@
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
},
"node_modules/@vue/reactivity": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.5.tgz",
"integrity": "sha512-P7OBfPjsbV5lDCwZQDtWFqPh3uAP3Q6bRqYVgsYr6ki7jiaiHGSLmeaevUi+Nkev8nhublUpApnWevNiACN3sw==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.7.tgz",
"integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==",
"dependencies": {
"@vue/shared": "3.3.5"
"@vue/shared": "3.3.7"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.5.tgz",
"integrity": "sha512-OhpBD1H32pIapRzqy31hWwTFLf9STP+0uk5bVOQWXACTa2Rt/RPhvX4zixbPgMGo6iP+S+tFpZzUdcG8AASn8A==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz",
"integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==",
"dependencies": {
"@babel/parser": "^7.23.0",
"@vue/compiler-core": "3.3.5",
"@vue/shared": "3.3.5",
"@vue/compiler-core": "3.3.7",
"@vue/shared": "3.3.7",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.5"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.5.tgz",
"integrity": "sha512-kxAW3fTzwzZQqiHV1SndTtLMlNfJ/bsvcYku6NDuPzTeG6sMOAIXvuz6N5NUox+P7sNCInESbSOrPMMvtWx3vA==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.7.tgz",
"integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==",
"dependencies": {
"@vue/reactivity": "3.3.5",
"@vue/shared": "3.3.5"
"@vue/reactivity": "3.3.7",
"@vue/shared": "3.3.7"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.5.tgz",
"integrity": "sha512-seYSeHmBNlTrR0eFyQFocEBtzljNlKzC2JfdebfBqoEmikyNYzLWTouv71DignLFXEXZKWNTqCIs4d7dk5Q3Ng==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz",
"integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==",
"dependencies": {
"@vue/runtime-core": "3.3.5",
"@vue/shared": "3.3.5",
"@vue/runtime-core": "3.3.7",
"@vue/shared": "3.3.7",
"csstype": "^3.1.2"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.5.tgz",
"integrity": "sha512-7VIZkohYn8GAnNT9chrm0vDpHJ6mWPL+TmUBKtDWcWxYcq33YJP/VHCPQN5TazkxXCtv3c1KfXAMZowX4giLoQ==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.7.tgz",
"integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==",
"dependencies": {
"@vue/compiler-ssr": "3.3.5",
"@vue/shared": "3.3.5"
"@vue/compiler-ssr": "3.3.7",
"@vue/shared": "3.3.7"
},
"peerDependencies": {
"vue": "3.3.5"
"vue": "3.3.7"
}
},
"node_modules/@vue/shared": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.5.tgz",
"integrity": "sha512-oNJN1rCtkqm1cIxU1BuZVEVRWIp4DhaxXucEzzZ/iDKHP71ZxhkBPNK+URySiECH6aiOZzC60PS2bd6JFznvNA=="
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.7.tgz",
"integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg=="
},
"node_modules/anymatch": {
"version": "3.1.3",
@ -961,9 +961,9 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz",
"integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
"integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
@ -1204,9 +1204,9 @@
}
},
"node_modules/core-js-pure": {
"version": "3.33.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.1.tgz",
"integrity": "sha512-wCXGbLjnsP10PlK/thHSQlOLlLKNEkaWbTzVvHHZ79fZNeN1gUmw2gBlpItxPv/pvqldevEXFh/d5stdNvl6EQ==",
"version": "3.33.2",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.2.tgz",
"integrity": "sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@ -1444,14 +1444,14 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
"integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -1486,20 +1486,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
"integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/has-property-descriptors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
"integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
"integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
"dependencies": {
"get-intrinsic": "^1.1.1"
"get-intrinsic": "^1.2.2"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -1533,6 +1525,17 @@
"integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
"dev": true
},
"node_modules/hasown": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@ -1583,12 +1586,12 @@
}
},
"node_modules/is-core-module": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
"integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
"integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
"hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -1782,9 +1785,9 @@
"optional": true
},
"node_modules/modern-screenshot": {
"version": "4.4.32",
"resolved": "https://registry.npmjs.org/modern-screenshot/-/modern-screenshot-4.4.32.tgz",
"integrity": "sha512-CWIEVwUep7PE56D3Et20/Nx2b7Bb9aSnfHCLgljnYhPAs3c5Lc20JrcnhRD6gOSb6J4L2PrkRDm3DZfyA1/ezg=="
"version": "4.4.33",
"resolved": "https://registry.npmjs.org/modern-screenshot/-/modern-screenshot-4.4.33.tgz",
"integrity": "sha512-uxxD4PdbIitXFlcNbO6kpRuxssfN+rJDfr8Pk2/eOx1dFz+LcaYDfbfeq7UxKuhsOVeN1tj996wEY3yJYwhnaQ=="
},
"node_modules/moment": {
"version": "2.29.4",
@ -2154,9 +2157,9 @@
"optional": true
},
"node_modules/sass": {
"version": "1.69.4",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.69.4.tgz",
"integrity": "sha512-+qEreVhqAy8o++aQfCJwp0sklr2xyEzkm9Pp/Igu9wNPoe7EZEQ8X/MBvvXggI2ql607cxKg/RKOwDj6pp2XDA==",
"version": "1.69.5",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
"integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@ -2441,9 +2444,9 @@
}
},
"node_modules/undici": {
"version": "5.26.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.26.4.tgz",
"integrity": "sha512-OG+QOf0fTLtazL9P9X7yqWxQ+Z0395Wk6DSkyTxtaq3wQEjIroVe7Y4asCX/vcCxYpNGMnwz8F0qbRYUoaQVMw==",
"version": "5.27.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.27.0.tgz",
"integrity": "sha512-l3ydWhlhOJzMVOYkymLykcRRXqbUaQriERtR70B9LzNkZ4bX52Fc8wbTDneMiwo8T+AemZXvXaTx+9o5ROxrXg==",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@ -2463,15 +2466,15 @@
"optional": true
},
"node_modules/vue": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.5.tgz",
"integrity": "sha512-xYpLEGb25yYU1ul9ZhCcavNZ4YW6PS7YTDdDAd0yc/3w69Tra2BwY4EpKguKddfD56QApXQ17XHq+fJJwEP+UQ==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.7.tgz",
"integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==",
"dependencies": {
"@vue/compiler-dom": "3.3.5",
"@vue/compiler-sfc": "3.3.5",
"@vue/runtime-dom": "3.3.5",
"@vue/server-renderer": "3.3.5",
"@vue/shared": "3.3.5"
"@vue/compiler-dom": "3.3.7",
"@vue/compiler-sfc": "3.3.7",
"@vue/runtime-dom": "3.3.7",
"@vue/server-renderer": "3.3.7",
"@vue/shared": "3.3.7"
},
"peerDependencies": {
"typescript": "*"

View File

@ -30,7 +30,7 @@ type appInformation struct {
}
// AppInfo returns some basic details about the running app, and latest release.
func AppInfo(w http.ResponseWriter, r *http.Request) {
func AppInfo(w http.ResponseWriter, _ *http.Request) {
// swagger:route GET /api/v1/info application AppInformation
//
// # Get application information

View File

@ -159,8 +159,12 @@ export default {
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="alert alert-warning mb-3" v-if="mailbox.appInfo.LatestVersion == ''">
There might be a newer version available. The check failed.
</div>
<a class="btn btn-warning d-block mb-3"
v-if="mailbox.appInfo.Version != mailbox.appInfo.LatestVersion"
v-else-if="mailbox.appInfo.Version != mailbox.appInfo.LatestVersion"
:href="'https://github.com/axllent/mailpit/releases/tag/' + mailbox.appInfo.LatestVersion">
A new version of Mailpit ({{ mailbox.appInfo.LatestVersion }}) is available.
</a>
@ -179,8 +183,7 @@ export default {
</a>
</div>
<div class="col-sm-6">
<a class="btn btn-primary w-100" href="https://github.com/axllent/mailpit/wiki"
target="_blank">
<a class="btn btn-primary w-100" href="https://mailpit.axllent.org/docs/" target="_blank">
Documentation
</a>
</div>

View File

@ -102,14 +102,14 @@ export default {
</div>
<div class="row flex-fill" style="min-height:0">
<div class="d-none d-md-block col-lg-2 col-md-3 mh-100 position-relative"
<div class="d-none d-md-block col-xl-2 col-md-3 mh-100 position-relative"
style="overflow-y: auto; overflow-x: hidden;">
<NavSearch @loadMessages="loadMessages" />
<NavTags />
<AboutMailpit />
</div>
<div class="col-lg-10 col-md-9 mh-100 ps-0 ps-md-2 pe-0">
<div class="col-xl-10 col-md-9 mh-100 ps-0 ps-md-2 pe-0">
<div class="mh-100" style="overflow-y: auto;" id="message-page">
<ListMessages :loading-messages="loading" />
</div>