From e902806ea27f2f87368834d1091cf3e66f1684df Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 28 Sep 2023 16:05:44 +1300 Subject: [PATCH 1/6] UI: Add option to delete a message after release See #169 --- server/ui-src/components/message/Release.vue | 18 ++++++++++++++++++ server/ui-src/views/MessageView.vue | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/ui-src/components/message/Release.vue b/server/ui-src/components/message/Release.vue index ee3d9ef..9491a27 100644 --- a/server/ui-src/components/message/Release.vue +++ b/server/ui-src/components/message/Release.vue @@ -14,9 +14,12 @@ export default { AjaxLoader, }, + emits: ['delete'], + data() { return { addresses: [], + deleteAfterRelease: false, mailbox, allAddresses: [], } @@ -62,6 +65,9 @@ export default { self.post(self.resolve('/api/v1/message/' + self.message.ID + '/release'), data, function (response) { self.modal("ReleaseModal").hide() + if (self.deleteAfterRelease) { + self.$emit('delete') + } }) }, 100) } @@ -108,6 +114,18 @@ export default {
Invalid email address
+
+
+
+ + +
+ +
+
Note: A recipient allowlist has been configured. Any mail address not matching it will be rejected.
diff --git a/server/ui-src/views/MessageView.vue b/server/ui-src/views/MessageView.vue index 927cd11..6bf72c7 100644 --- a/server/ui-src/views/MessageView.vue +++ b/server/ui-src/views/MessageView.vue @@ -341,6 +341,6 @@ export default { - + From 0ab4210640f7c07fffa0a7eb017bb921dc90f14d Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Fri, 29 Sep 2023 16:40:23 +1300 Subject: [PATCH 2/6] Feature: Set auth credentials directly from environment variables Credentials for the UI and SMTP can now be exported via the `MP_UI_AUTH` and `MP_SMTP_AUTH` environment variables. See #173 --- cmd/root.go | 40 ++++++++------------- config/config.go | 34 +++++++++--------- internal/auth/auth.go | 69 +++++++++++++++++++++++++++++++++++++ server/server.go | 27 +++++++++++---- server/smtpd/smtpd.go | 13 +++---- server/websockets/client.go | 22 ++++++------ 6 files changed, 138 insertions(+), 67 deletions(-) create mode 100644 internal/auth/auth.go diff --git a/cmd/root.go b/cmd/root.go index 2345b67..be7a4bd 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -8,6 +8,7 @@ import ( "strings" "github.com/axllent/mailpit/config" + "github.com/axllent/mailpit/internal/auth" "github.com/axllent/mailpit/internal/logger" "github.com/axllent/mailpit/internal/storage" "github.com/axllent/mailpit/server" @@ -91,7 +92,7 @@ func init() { rootCmd.Flags().BoolVar(&config.DisableHTMLCheck, "disable-html-check", config.DisableHTMLCheck, "Disable the HTML check functionality (web UI & API)") rootCmd.Flags().BoolVar(&config.BlockRemoteCSSAndFonts, "block-remote-css-and-fonts", config.BlockRemoteCSSAndFonts, "Block access to remote CSS & fonts") - rootCmd.Flags().StringVar(&config.UIAuthFile, "ui-auth-file", config.UIAuthFile, "A password file for web UI authentication") + rootCmd.Flags().StringVar(&config.UIAuthFile, "ui-auth-file", config.UIAuthFile, "A password file for web UI & API authentication") rootCmd.Flags().StringVar(&config.UITLSCert, "ui-tls-cert", config.UITLSCert, "TLS certificate for web UI (HTTPS) - requires ui-tls-key") rootCmd.Flags().StringVar(&config.UITLSKey, "ui-tls-key", config.UITLSKey, "TLS key for web UI (HTTPS) - requires ui-tls-cert") @@ -143,9 +144,7 @@ func init() { // Load settings from environment func initConfigFromEnv() { // inherit from environment if provided - if len(os.Getenv("MP_DATA_FILE")) > 0 { - config.DataFile = os.Getenv("MP_DATA_FILE") - } + config.DataFile = os.Getenv("MP_DATA_FILE") if len(os.Getenv("MP_SMTP_BIND_ADDR")) > 0 { config.SMTPListen = os.Getenv("MP_SMTP_BIND_ADDR") } @@ -160,26 +159,16 @@ func initConfigFromEnv() { } // UI - if len(os.Getenv("MP_UI_AUTH_FILE")) > 0 { - config.UIAuthFile = os.Getenv("MP_UI_AUTH_FILE") - } - if len(os.Getenv("MP_UI_TLS_CERT")) > 0 { - config.UITLSCert = os.Getenv("MP_UI_TLS_CERT") - } - if len(os.Getenv("MP_UI_TLS_KEY")) > 0 { - config.UITLSKey = os.Getenv("MP_UI_TLS_KEY") - } + config.UIAuthFile = os.Getenv("MP_UI_AUTH_FILE") + auth.SetUIAuth(os.Getenv("MP_UI_AUTH")) + config.UITLSCert = os.Getenv("MP_UI_TLS_CERT") + config.UITLSKey = os.Getenv("MP_UI_TLS_KEY") // SMTP - if len(os.Getenv("MP_SMTP_AUTH_FILE")) > 0 { - config.SMTPAuthFile = os.Getenv("MP_SMTP_AUTH_FILE") - } - if len(os.Getenv("MP_SMTP_TLS_CERT")) > 0 { - config.SMTPTLSCert = os.Getenv("MP_SMTP_TLS_CERT") - } - if len(os.Getenv("MP_SMTP_TLS_KEY")) > 0 { - config.SMTPTLSKey = os.Getenv("MP_SMTP_TLS_KEY") - } + config.SMTPAuthFile = os.Getenv("MP_SMTP_AUTH_FILE") + auth.SetSMTPAuth(os.Getenv("MP_SMTP_AUTH")) + config.SMTPTLSCert = os.Getenv("MP_SMTP_TLS_CERT") + config.SMTPTLSKey = os.Getenv("MP_SMTP_TLS_KEY") if getEnabledFromEnv("MP_SMTP_AUTH_ACCEPT_ANY") { config.SMTPAuthAcceptAny = true } @@ -191,9 +180,7 @@ func initConfigFromEnv() { } // Relay server config - if len(os.Getenv("MP_SMTP_RELAY_CONFIG")) > 0 { - config.SMTPRelayConfigFile = os.Getenv("MP_SMTP_RELAY_CONFIG") - } + config.SMTPRelayConfigFile = os.Getenv("MP_SMTP_RELAY_CONFIG") if getEnabledFromEnv("MP_SMTP_RELAY_ALL") { config.SMTPRelayAllIncoming = true } @@ -252,14 +239,17 @@ func initDeprecatedConfigFromEnv() { fmt.Println("ENV MP_UI_SSL_CERT has been deprecated, use MP_UI_TLS_CERT") config.UITLSCert = os.Getenv("MP_UI_SSL_CERT") } + // deprecated 2023/03/12 if len(os.Getenv("MP_UI_SSL_KEY")) > 0 { fmt.Println("ENV MP_UI_SSL_KEY has been deprecated, use MP_UI_TLS_KEY") config.UITLSKey = os.Getenv("MP_UI_SSL_KEY") } + // deprecated 2023/03/12 if len(os.Getenv("MP_SMTP_SSL_CERT")) > 0 { fmt.Println("ENV MP_SMTP_CERT has been deprecated, use MP_SMTP_TLS_CERT") config.SMTPTLSCert = os.Getenv("MP_SMTP_SSL_CERT") } + // deprecated 2023/03/12 if len(os.Getenv("MP_SMTP_SSL_KEY")) > 0 { fmt.Println("ENV MP_SMTP_KEY has been deprecated, use MP_SMTP_TLS_KEY") config.SMTPTLSKey = os.Getenv("MP_SMTP_SMTP_KEY") diff --git a/config/config.go b/config/config.go index b76effc..7e07389 100644 --- a/config/config.go +++ b/config/config.go @@ -10,9 +10,9 @@ import ( "regexp" "strings" + "github.com/axllent/mailpit/internal/auth" "github.com/axllent/mailpit/internal/logger" "github.com/axllent/mailpit/internal/tools" - "github.com/tg123/go-htpasswd" "gopkg.in/yaml.v3" ) @@ -38,12 +38,9 @@ var ( // UITLSKey file UITLSKey string - // UIAuthFile for basic authentication + // UIAuthFile for UI & API authentication UIAuthFile string - // UIAuth used for authentication - UIAuth *htpasswd.File - // Webroot to define the base path for the UI and API Webroot = "/" @@ -56,9 +53,6 @@ var ( // SMTPAuthFile for SMTP authentication SMTPAuthFile string - // SMTPAuthConfig used for authentication auto-generated from SMTPAuthFile - SMTPAuthConfig *htpasswd.File - // SMTPAuthAllowInsecure allows PLAIN & LOGIN unencrypted authentication SMTPAuthAllowInsecure bool @@ -161,12 +155,13 @@ func VerifyConfig() error { if !isFile(UIAuthFile) { return fmt.Errorf("HTTP password file not found: %s", UIAuthFile) } - - a, err := htpasswd.New(UIAuthFile, htpasswd.DefaultSystems, nil) + b, err := os.ReadFile(UIAuthFile) if err != nil { return err } - UIAuth = a + if err := auth.SetUIAuth(string(b)); err != nil { + return err + } } if UITLSCert != "" && UITLSKey == "" || UITLSCert == "" && UITLSKey != "" { @@ -202,18 +197,21 @@ func VerifyConfig() error { return fmt.Errorf("SMTP password file not found: %s", SMTPAuthFile) } - if SMTPAuthAcceptAny { - return errors.New("SMTP authentication can either use --smtp-auth-file or --smtp-auth-accept-any") - } - - a, err := htpasswd.New(SMTPAuthFile, htpasswd.DefaultSystems, nil) + b, err := os.ReadFile(SMTPAuthFile) if err != nil { return err } - SMTPAuthConfig = a + + if err := auth.SetSMTPAuth(string(b)); err != nil { + return err + } } - if SMTPTLSCert == "" && (SMTPAuthFile != "" || SMTPAuthAcceptAny) && !SMTPAuthAllowInsecure { + if auth.SMTPCredentials != nil && SMTPAuthAcceptAny { + return errors.New("SMTP authentication cannot use both credentials and --smtp-auth-accept-any") + } + + if SMTPTLSCert == "" && (auth.SMTPCredentials != nil || SMTPAuthAcceptAny) && !SMTPAuthAllowInsecure { return errors.New("SMTP authentication requires TLS encryption, run with `--smtp-auth-allow-insecure` to allow insecure authentication") } diff --git a/internal/auth/auth.go b/internal/auth/auth.go new file mode 100644 index 0000000..5bd9a9d --- /dev/null +++ b/internal/auth/auth.go @@ -0,0 +1,69 @@ +// Package auth handles the web UI and SMTP authentication +package auth + +import ( + "regexp" + "strings" + + "github.com/tg123/go-htpasswd" +) + +var ( + // UICredentials passwords + UICredentials *htpasswd.File + // SMTPCredentials passwords + SMTPCredentials *htpasswd.File +) + +// SetUIAuth will set Basic Auth credentials required for the UI & API +func SetUIAuth(s string) error { + var err error + + credentials := credentialsFromString(s) + if len(credentials) == 0 { + return nil + } + + r := strings.NewReader(strings.Join(credentials, "\n")) + + UICredentials, err = htpasswd.NewFromReader(r, htpasswd.DefaultSystems, nil) + if err != nil { + return err + } + + return nil +} + +// SetSMTPAuth will set SMTP credentials +func SetSMTPAuth(s string) error { + var err error + + credentials := credentialsFromString(s) + if len(credentials) == 0 { + return nil + } + + r := strings.NewReader(strings.Join(credentials, "\n")) + + SMTPCredentials, err = htpasswd.NewFromReader(r, htpasswd.DefaultSystems, nil) + if err != nil { + return err + } + + return nil +} + +func credentialsFromString(s string) []string { + // split string by any whitespace character + re := regexp.MustCompile(`\s+`) + + words := re.Split(s, -1) + credentials := []string{} + for _, w := range words { + if w != "" { + credentials = append(credentials, w) + } + } + + return credentials +} diff --git a/server/server.go b/server/server.go index 71d1f03..084ffd8 100644 --- a/server/server.go +++ b/server/server.go @@ -15,6 +15,7 @@ import ( "text/template" "github.com/axllent/mailpit/config" + "github.com/axllent/mailpit/internal/auth" "github.com/axllent/mailpit/internal/logger" "github.com/axllent/mailpit/internal/storage" "github.com/axllent/mailpit/server/apiv1" @@ -79,8 +80,8 @@ func Listen() { // put it all together http.Handle("/", r) - if config.UIAuthFile != "" { - logger.Log().Info("[http] enabling web UI basic authentication") + if auth.UICredentials != nil { + logger.Log().Info("[http] enabling basic authentication") } // Mark the application here as ready @@ -158,7 +159,7 @@ func middleWareFunc(fn http.HandlerFunc) http.HandlerFunc { w.Header().Set("Access-Control-Allow-Headers", "*") } - if config.UIAuthFile != "" { + if auth.UICredentials != nil { user, pass, ok := r.BasicAuth() if !ok { @@ -166,7 +167,21 @@ func middleWareFunc(fn http.HandlerFunc) http.HandlerFunc { return } - if !config.UIAuth.Match(user, pass) { + if !auth.UICredentials.Match(user, pass) { + basicAuthResponse(w) + return + } + } + + if auth.UICredentials != nil { + user, pass, ok := r.BasicAuth() + + if !ok { + basicAuthResponse(w) + return + } + + if !auth.UICredentials.Match(user, pass) { basicAuthResponse(w) return } @@ -197,7 +212,7 @@ func middlewareHandler(h http.Handler) http.Handler { w.Header().Set("Access-Control-Allow-Headers", "*") } - if config.UIAuthFile != "" { + if auth.UICredentials != nil { user, pass, ok := r.BasicAuth() if !ok { @@ -205,7 +220,7 @@ func middlewareHandler(h http.Handler) http.Handler { return } - if !config.UIAuth.Match(user, pass) { + if !auth.UICredentials.Match(user, pass) { basicAuthResponse(w) return } diff --git a/server/smtpd/smtpd.go b/server/smtpd/smtpd.go index 482cb32..e953106 100644 --- a/server/smtpd/smtpd.go +++ b/server/smtpd/smtpd.go @@ -10,6 +10,7 @@ import ( "strings" "github.com/axllent/mailpit/config" + "github.com/axllent/mailpit/internal/auth" "github.com/axllent/mailpit/internal/logger" "github.com/axllent/mailpit/internal/storage" "github.com/mhale/smtpd" @@ -129,7 +130,7 @@ func mailHandler(origin net.Addr, from string, to []string, data []byte) error { } func authHandler(remoteAddr net.Addr, mechanism string, username []byte, password []byte, _ []byte) (bool, error) { - allow := config.SMTPAuthConfig.Match(string(username), string(password)) + allow := auth.SMTPCredentials.Match(string(username), string(password)) if allow { logger.Log().Debugf("[smtpd] allow %s login:%q from:%s", mechanism, string(username), cleanIP(remoteAddr)) } else { @@ -149,14 +150,14 @@ func authHandlerAny(remoteAddr net.Addr, mechanism string, username []byte, _ [] // Listen starts the SMTPD server func Listen() error { if config.SMTPAuthAllowInsecure { - if config.SMTPAuthFile != "" { - logger.Log().Infof("[smtpd] enabling login auth via %s (insecure)", config.SMTPAuthFile) + if auth.SMTPCredentials != nil { + logger.Log().Info("[smtpd] enabling login auth (insecure)") } else if config.SMTPAuthAcceptAny { logger.Log().Info("[smtpd] enabling all auth (insecure)") } } else { - if config.SMTPAuthFile != "" { - logger.Log().Infof("[smtpd] enabling login auth via %s (TLS)", config.SMTPAuthFile) + if auth.SMTPCredentials != nil { + logger.Log().Info("[smtpd] enabling login auth (TLS)") } else if config.SMTPAuthAcceptAny { logger.Log().Info("[smtpd] enabling any auth (TLS)") } @@ -181,7 +182,7 @@ func listenAndServe(addr string, handler smtpd.Handler, authHandler smtpd.AuthHa srv.AuthMechs = map[string]bool{"CRAM-MD5": false, "PLAIN": true, "LOGIN": true} } - if config.SMTPAuthFile != "" { + if auth.SMTPCredentials != nil { srv.AuthMechs = map[string]bool{"CRAM-MD5": false, "PLAIN": true, "LOGIN": true} srv.AuthHandler = authHandler srv.AuthRequired = true diff --git a/server/websockets/client.go b/server/websockets/client.go index aebdcc8..51e7bb3 100644 --- a/server/websockets/client.go +++ b/server/websockets/client.go @@ -8,7 +8,7 @@ import ( "net/http" "time" - "github.com/axllent/mailpit/config" + "github.com/axllent/mailpit/internal/auth" "github.com/axllent/mailpit/internal/logger" "github.com/gorilla/websocket" ) @@ -99,19 +99,17 @@ func (c *Client) writePump() { // ServeWs handles websocket requests from the peer. func ServeWs(hub *Hub, w http.ResponseWriter, r *http.Request) { - if config.UIAuthFile != "" { - if config.UIAuthFile != "" { - user, pass, ok := r.BasicAuth() + if auth.UICredentials != nil { + user, pass, ok := r.BasicAuth() - if !ok { - basicAuthResponse(w) - return - } + if !ok { + basicAuthResponse(w) + return + } - if !config.UIAuth.Match(user, pass) { - basicAuthResponse(w) - return - } + if !auth.UICredentials.Match(user, pass) { + basicAuthResponse(w) + return } } From 044525fcca4c0045b72cd76fef648a6d75565b81 Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Fri, 29 Sep 2023 16:44:03 +1300 Subject: [PATCH 3/6] Chore: Remove some flags deprecated 08/2022 --- cmd/root.go | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index be7a4bd..1f4d623 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -110,22 +110,6 @@ func init() { rootCmd.Flags().BoolVarP(&logger.QuietLogging, "quiet", "q", logger.QuietLogging, "Quiet logging (errors only)") rootCmd.Flags().BoolVarP(&logger.VerboseLogging, "verbose", "v", logger.VerboseLogging, "Verbose logging") - // deprecated flags 2022/08/06 - rootCmd.Flags().StringVarP(&config.UIAuthFile, "auth-file", "a", config.UIAuthFile, "A password file for web UI authentication") - rootCmd.Flags().StringVar(&config.UITLSCert, "ssl-cert", config.UITLSCert, "SSL certificate - requires ssl-key") - rootCmd.Flags().StringVar(&config.UITLSKey, "ssl-key", config.UITLSKey, "SSL key - requires ssl-cert") - rootCmd.Flags().Lookup("auth-file").Hidden = true - rootCmd.Flags().Lookup("auth-file").Deprecated = "use --ui-auth-file" - rootCmd.Flags().Lookup("ssl-cert").Hidden = true - rootCmd.Flags().Lookup("ssl-cert").Deprecated = "use --ui-tls-cert" - rootCmd.Flags().Lookup("ssl-key").Hidden = true - rootCmd.Flags().Lookup("ssl-key").Deprecated = "use --ui-tls-key" - - // deprecated flags 2022/08/30 - rootCmd.Flags().StringVar(&config.DataFile, "data", config.DataFile, "Database file to store persistent data") - rootCmd.Flags().Lookup("data").Hidden = true - rootCmd.Flags().Lookup("data").Deprecated = "use --db-file" - // deprecated flags 2023/03/12 rootCmd.Flags().StringVar(&config.UITLSCert, "ui-ssl-cert", config.UITLSCert, "SSL certificate for web UI - requires ui-ssl-key") rootCmd.Flags().StringVar(&config.UITLSKey, "ui-ssl-key", config.UITLSKey, "SSL key for web UI - requires ui-ssl-cert") @@ -214,26 +198,6 @@ func initConfigFromEnv() { // load deprecated settings from environment and warn func initDeprecatedConfigFromEnv() { - // deprecated 2022/08/06 - if len(os.Getenv("MP_AUTH_FILE")) > 0 { - fmt.Println("ENV MP_AUTH_FILE has been deprecated, use MP_UI_AUTH_FILE") - config.UIAuthFile = os.Getenv("MP_AUTH_FILE") - } - // deprecated 2022/08/06 - if len(os.Getenv("MP_SSL_CERT")) > 0 { - fmt.Println("ENV MP_SSL_CERT has been deprecated, use MP_UI_TLS_CERT") - config.UITLSCert = os.Getenv("MP_SSL_CERT") - } - // deprecated 2022/08/06 - if len(os.Getenv("MP_SSL_KEY")) > 0 { - fmt.Println("ENV MP_SSL_KEY has been deprecated, use MP_UI_TLS_KEY") - config.UITLSKey = os.Getenv("MP_TLS_KEY") - } - // deprecated 2022/08/28 - if len(os.Getenv("MP_DATA_DIR")) > 0 { - fmt.Println("ENV MP_DATA_DIR has been deprecated, use MP_DATA_FILE") - config.DataFile = os.Getenv("MP_DATA_DIR") - } // deprecated 2023/03/12 if len(os.Getenv("MP_UI_SSL_CERT")) > 0 { fmt.Println("ENV MP_UI_SSL_CERT has been deprecated, use MP_UI_TLS_CERT") From 4f6caca352de20cb94075102fbb2bc2caa704b45 Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Fri, 29 Sep 2023 16:46:49 +1300 Subject: [PATCH 4/6] Libs: Update Go modules --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9bc9fbd..f38cd5e 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( modernc.org/ccgo/v3 v3.16.15 // indirect modernc.org/libc v1.24.1 // indirect modernc.org/mathutil v1.6.0 // indirect - modernc.org/memory v1.7.1 // indirect + modernc.org/memory v1.7.2 // indirect modernc.org/opt v0.1.3 // indirect modernc.org/strutil v1.2.0 // indirect modernc.org/token v1.1.0 // indirect diff --git a/go.sum b/go.sum index c6a6bbf..16b2c2b 100644 --- a/go.sum +++ b/go.sum @@ -233,8 +233,8 @@ modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM= modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak= 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.1 h1:9J+2/GKTlV503mk3yv8QJ6oEpRCUrRy0ad8TXEPoV8M= -modernc.org/memory v1.7.1/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= +modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= +modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sqlite v1.25.0 h1:AFweiwPNd/b3BoKnBOfFm+Y260guGMF+0UFk0savqeA= From 67dedd8accaa1917f1e182969d6d13c3314d3e46 Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Fri, 29 Sep 2023 16:49:42 +1300 Subject: [PATCH 5/6] Libs: Update node modules --- package-lock.json | 212 +++++++++++++++++++++++----------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/package-lock.json b/package-lock.json index f29a500..583a408 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,9 +41,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -52,9 +52,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.15.tgz", - "integrity": "sha512-SAj8oKi8UogVi6eXQXKNPu8qZ78Yzy7zawrlTr0M+IuW/g8Qe9gVDhGcF9h1S69OyACpYoLxEzpjs1M15sI5wQ==", + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.1.tgz", + "integrity": "sha512-OKKfytwoc0tr7cDHwQm0RLVR3y+hDGFz3EPuvLNU/0fOeXJeKNIHj7ffNVFnncWt3sC58uyUCRSzf8nBQbyF6A==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -64,9 +64,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.3.tgz", - "integrity": "sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", + "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", "cpu": [ "arm" ], @@ -80,9 +80,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.3.tgz", - "integrity": "sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", + "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", "cpu": [ "arm64" ], @@ -96,9 +96,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.3.tgz", - "integrity": "sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", + "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", "cpu": [ "x64" ], @@ -112,9 +112,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.3.tgz", - "integrity": "sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", + "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", "cpu": [ "arm64" ], @@ -128,9 +128,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.3.tgz", - "integrity": "sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", + "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", "cpu": [ "x64" ], @@ -144,9 +144,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.3.tgz", - "integrity": "sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", + "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", "cpu": [ "arm64" ], @@ -160,9 +160,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.3.tgz", - "integrity": "sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", + "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", "cpu": [ "x64" ], @@ -176,9 +176,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.3.tgz", - "integrity": "sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", + "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", "cpu": [ "arm" ], @@ -192,9 +192,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.3.tgz", - "integrity": "sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", + "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", "cpu": [ "arm64" ], @@ -208,9 +208,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.3.tgz", - "integrity": "sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", + "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", "cpu": [ "ia32" ], @@ -224,9 +224,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.3.tgz", - "integrity": "sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", + "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", "cpu": [ "loong64" ], @@ -240,9 +240,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.3.tgz", - "integrity": "sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", + "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", "cpu": [ "mips64el" ], @@ -256,9 +256,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.3.tgz", - "integrity": "sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", + "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", "cpu": [ "ppc64" ], @@ -272,9 +272,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.3.tgz", - "integrity": "sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", + "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", "cpu": [ "riscv64" ], @@ -288,9 +288,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.3.tgz", - "integrity": "sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", + "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", "cpu": [ "s390x" ], @@ -304,9 +304,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.3.tgz", - "integrity": "sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", + "integrity": "sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==", "cpu": [ "x64" ], @@ -320,9 +320,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.3.tgz", - "integrity": "sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", + "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", "cpu": [ "x64" ], @@ -336,9 +336,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.3.tgz", - "integrity": "sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", + "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", "cpu": [ "x64" ], @@ -352,9 +352,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.3.tgz", - "integrity": "sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", + "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", "cpu": [ "x64" ], @@ -368,9 +368,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.3.tgz", - "integrity": "sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", + "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", "cpu": [ "arm64" ], @@ -384,9 +384,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.3.tgz", - "integrity": "sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", + "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", "cpu": [ "ia32" ], @@ -400,9 +400,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.3.tgz", - "integrity": "sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", + "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", "cpu": [ "x64" ], @@ -803,9 +803,9 @@ } }, "node_modules/@types/ramda": { - "version": "0.29.4", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.4.tgz", - "integrity": "sha512-bd3nyfkZd5EVxuBf1kW6wvFz61SvAEfXXISIEIePJOj2XRjCHyro1ikvDXTXIlpRtuC6lwTMfYdkXCD+oiXQfw==", + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.29.5.tgz", + "integrity": "sha512-oBBdRfoZoCl/aBIpBbct/uUHAbJ5i7vSOHK83SvH2Qr9ermYITRNKnEYgGJlnkagUY2cu8L2//Jq7o1355Go5A==", "dependencies": { "types-ramda": "^0.29.4" } @@ -952,9 +952,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -1278,9 +1278,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.3.tgz", - "integrity": "sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", + "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", "dev": true, "hasInstallScript": true, "bin": { @@ -1290,28 +1290,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.3", - "@esbuild/android-arm64": "0.19.3", - "@esbuild/android-x64": "0.19.3", - "@esbuild/darwin-arm64": "0.19.3", - "@esbuild/darwin-x64": "0.19.3", - "@esbuild/freebsd-arm64": "0.19.3", - "@esbuild/freebsd-x64": "0.19.3", - "@esbuild/linux-arm": "0.19.3", - "@esbuild/linux-arm64": "0.19.3", - "@esbuild/linux-ia32": "0.19.3", - "@esbuild/linux-loong64": "0.19.3", - "@esbuild/linux-mips64el": "0.19.3", - "@esbuild/linux-ppc64": "0.19.3", - "@esbuild/linux-riscv64": "0.19.3", - "@esbuild/linux-s390x": "0.19.3", - "@esbuild/linux-x64": "0.19.3", - "@esbuild/netbsd-x64": "0.19.3", - "@esbuild/openbsd-x64": "0.19.3", - "@esbuild/sunos-x64": "0.19.3", - "@esbuild/win32-arm64": "0.19.3", - "@esbuild/win32-ia32": "0.19.3", - "@esbuild/win32-x64": "0.19.3" + "@esbuild/android-arm": "0.19.4", + "@esbuild/android-arm64": "0.19.4", + "@esbuild/android-x64": "0.19.4", + "@esbuild/darwin-arm64": "0.19.4", + "@esbuild/darwin-x64": "0.19.4", + "@esbuild/freebsd-arm64": "0.19.4", + "@esbuild/freebsd-x64": "0.19.4", + "@esbuild/linux-arm": "0.19.4", + "@esbuild/linux-arm64": "0.19.4", + "@esbuild/linux-ia32": "0.19.4", + "@esbuild/linux-loong64": "0.19.4", + "@esbuild/linux-mips64el": "0.19.4", + "@esbuild/linux-ppc64": "0.19.4", + "@esbuild/linux-riscv64": "0.19.4", + "@esbuild/linux-s390x": "0.19.4", + "@esbuild/linux-x64": "0.19.4", + "@esbuild/netbsd-x64": "0.19.4", + "@esbuild/openbsd-x64": "0.19.4", + "@esbuild/sunos-x64": "0.19.4", + "@esbuild/win32-arm64": "0.19.4", + "@esbuild/win32-ia32": "0.19.4", + "@esbuild/win32-x64": "0.19.4" } }, "node_modules/esbuild-plugin-vue-next": { @@ -1890,9 +1890,9 @@ } }, "node_modules/postcss": { - "version": "8.4.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", - "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", From 1ac8e3a79f177f4d12719bed62b67dad3d554e31 Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Fri, 29 Sep 2023 16:52:02 +1300 Subject: [PATCH 6/6] Release v1.9.4 --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f889f99..80ff5fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ Notable changes to Mailpit will be documented in this file. +## [v1.9.4] + +### Chore +- Remove some flags deprecated 08/2022 + +### Feature +- Set auth credentials directly from environment variables + +### Libs +- Update node modules +- Update Go modules + +### UI +- Add option to delete a message after release + + ## [v1.9.3] ### Chore