diff --git a/docs/content/en/integration/proxies/nginx-proxy-manager/index.md b/docs/content/en/integration/proxies/nginx-proxy-manager/index.md index 8532112ab..e6d52270d 100644 --- a/docs/content/en/integration/proxies/nginx-proxy-manager/index.md +++ b/docs/content/en/integration/proxies/nginx-proxy-manager/index.md @@ -68,7 +68,7 @@ services: volumes: - ${PWD}/data/nginx-proxy-manager/data:/data - ${PWD}/data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt - - ${PWD}/data/nginx/snippets:/config/nginx/snippets:ro + - ${PWD}/data/nginx/snippets:/snippets:ro environment: TZ: 'Australia/Melbourne' authelia: diff --git a/docs/content/en/integration/proxies/swag.md b/docs/content/en/integration/proxies/swag.md index 46d86060b..27bf138f8 100644 --- a/docs/content/en/integration/proxies/swag.md +++ b/docs/content/en/integration/proxies/swag.md @@ -42,22 +42,67 @@ bootstrapping *Authelia*. ### SWAG Caveat -One current caveat of the [SWAG] implementation is that it serves Authelia as a subpath for each domain. We -*__strongly recommend__* instead of using the out of the box method and guide for [SWAG] that you follow the -[NGINX](nginx.md) guide (which *can be used* with [SWAG]) and run Authelia as it's own subdomain. +One current caveat of the [SWAG] implementation is that it serves Authelia as a subpath for each domain by default. We +*__strongly recommend__* instead of using the defaults that you configure Authelia as a subdomain if possible. -This is partly because Webauthn requires that the domain is an exact match when registering and authenticating and it is +There are two potential ways to achieve this: + +1. Adjust the default `authelia-server.conf` as per the included directions. +2. Use the supplementary configuration snippets provided officially by Authelia. + +This is partly because WebAuthn requires that the domain is an exact match when registering and authenticating and it is possible that due to web standards this will never change. In addition this represents a bad user experience in some instances such as: - - Users sometimes visit the `https://app.example.com/authelia` URL which doesn't automatically redirect the user to - `https://app.example.com` (if they visit `https://app.example.com` then they'll be redirected to authenticate then - redirected back to their original URL). - - Administrators may wish to setup OpenID Connect 1.0 in which case it also doesn't represent a good user experience. +- Users sometimes visit the `https://app.example.com/authelia` URL which doesn't automatically redirect the user to + `https://app.example.com` (if they visit `https://app.example.com` then they'll be redirected to authenticate then + redirected back to their original URL). +- Administrators may wish to setup [OpenID Connect 1.0](../../configuration/identity-providers/open-id-connect.md) in + which case it also doesn't represent a good user experience as the `issuer` will be + `https://app.example.com/authelia` for example +- Using the [SWAG] default configurations are more difficult to support as our specific familiarity is with our own + example snippets -Taking these factors into consideration we're adapting our [SWAG] guide to use what we consider best for the users and -most easily supported. Users who wish to use the [SWAG] guide are free to do so but may not receive the same support. +#### Option 1: Adjusting the Default Configuration + +Open the generated `authelia-server.conf`. Adjust the following sections. There are two snippets, one before and one +after. The only lines that change are the `set $authelia_backend` lines, and this configuration assumes you're +serving Authelia at `auth.example.com`. + +```nginx + ## Set $authelia_backend to route requests to the current domain by default + set $authelia_backend $http_host; + ## In order for Webauthn to work with multiple domains authelia must operate on a separate subdomain + ## To use authelia on a separate subdomain: + ## * comment the $authelia_backend line above + ## * rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf + ## * make sure that your dns has a cname set for authelia + ## * uncomment the $authelia_backend line below and change example.com to your domain + ## * restart the swag container + #set $authelia_backend authelia.example.com; + + return 302 https://$authelia_backend/authelia/?rd=$target_url; +``` + +```nginx + ## Set $authelia_backend to route requests to the current domain by default + # set $authelia_backend $http_host; + ## In order for Webauthn to work with multiple domains authelia must operate on a separate subdomain + ## To use authelia on a separate subdomain: + ## * comment the $authelia_backend line above + ## * rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf + ## * make sure that your dns has a cname set for authelia + ## * uncomment the $authelia_backend line below and change example.com to your domain + ## * restart the swag container + set $authelia_backend auth.example.com; + + return 302 https://$authelia_backend/authelia/?rd=$target_url; +``` + +#### Option 2: Using the Authelia Supplementary Configuration Snippets + +See standard [NGINX](nginx.md) guide (which *can be used* with [SWAG]) and run Authelia as it's own subdomain. ## Trusted Proxies @@ -102,6 +147,8 @@ services: - '443:443' volumes: - ${PWD}/data/swag:/config + #- ${PWD}/data/nginx/snippets:/snippets:ro + ## Uncomment the above line if you want to use the Authelia configuration snippets. environment: PUID: '1000' PGID: '1000' diff --git a/go.mod b/go.mod index 3bb38a5d8..11a8a829c 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-asn1-ber/asn1-ber v1.5.4 github.com/go-crypt/crypt v0.2.6 github.com/go-ldap/ldap/v3 v3.4.4 - github.com/go-rod/rod v0.112.5 + github.com/go-rod/rod v0.112.6 github.com/go-sql-driver/mysql v1.7.0 github.com/go-webauthn/webauthn v0.8.2 github.com/golang-jwt/jwt/v4 v4.5.0 @@ -33,7 +33,7 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/ory/fosite v0.44.0 github.com/ory/herodot v0.9.13 - github.com/ory/x v0.0.537 + github.com/ory/x v0.0.541 github.com/otiai10/copy v1.9.0 github.com/pkg/errors v0.9.1 github.com/pquerna/otp v1.4.0 diff --git a/go.sum b/go.sum index d88058a8d..5d3b81daf 100644 --- a/go.sum +++ b/go.sum @@ -160,8 +160,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= -github.com/go-rod/rod v0.112.5 h1:2mH97UK8We4D2MfX388WqPjG1lDbxx8lLi5MzfvnEo0= -github.com/go-rod/rod v0.112.5/go.mod h1:ElViL9ABbcshNQw93+11FrYRH92RRhMKleuILo6+5V0= +github.com/go-rod/rod v0.112.6 h1:zMirUmhsBeshMWyf285BD0UGtGq54HfThLDGSjcP3lU= +github.com/go-rod/rod v0.112.6/go.mod h1:ElViL9ABbcshNQw93+11FrYRH92RRhMKleuILo6+5V0= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -387,8 +387,8 @@ github.com/ory/go-convenience v0.1.0/go.mod h1:uEY/a60PL5c12nYz4V5cHY03IBmwIAEm8 github.com/ory/herodot v0.9.13 h1:cN/Z4eOkErl/9W7hDIDLb79IO/bfsH+8yscBjRpB4IU= github.com/ory/herodot v0.9.13/go.mod h1:IWDs9kSvFQqw/cQ8zi5ksyYvITiUU4dI7glUrhZcJYo= github.com/ory/viper v1.7.5/go.mod h1:ypOuyJmEUb3oENywQZRgeAMwqgOyDqwboO1tj3DjTaM= -github.com/ory/x v0.0.537 h1:FB8Tioza6pihvy/RsVNzX08Qg3/VpIhI9vBnEQ4iFmQ= -github.com/ory/x v0.0.537/go.mod h1:CQopDsCC9t0tQsddE9UlyRFVEFd2xjKBVcw4nLMMMS0= +github.com/ory/x v0.0.541 h1:rp8AD7X5/WiZIJws5kBwFgXoSeunxNMD54QV58+pcew= +github.com/ory/x v0.0.541/go.mod h1:ktXUvx51Ok1gMGr3ysvktanqr+eiB4FXglt4nF4w2Uo= github.com/otiai10/copy v1.9.0 h1:7KFNiCgZ91Ru4qW4CWPf/7jqtxLagGRmIxWldPP9VY4= github.com/otiai10/copy v1.9.0/go.mod h1:hsfX19wcn0UWIHUQ3/4fHuehhk2UyArQ9dVFAn3FczI= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= diff --git a/internal/commands/const.go b/internal/commands/const.go index 605b71796..b95b480b6 100644 --- a/internal/commands/const.go +++ b/internal/commands/const.go @@ -777,3 +777,12 @@ Layouts: const ( fmtLogServerListening = "Listening for %s connections on '%s' path '%s'" ) + +const ( + logFieldService = "service" + logFieldFile = "file" + logFieldOP = "op" + + serviceTypeServer = "server" + serviceTypeWatcher = "watcher" +) diff --git a/internal/commands/services.go b/internal/commands/services.go index 3d5223ed8..10eef7e7d 100644 --- a/internal/commands/services.go +++ b/internal/commands/services.go @@ -10,6 +10,7 @@ import ( "strings" "sync" "syscall" + "time" "github.com/fsnotify/fsnotify" "github.com/sirupsen/logrus" @@ -23,11 +24,12 @@ import ( // NewServerService creates a new ServerService with the appropriate logger etc. func NewServerService(name string, server *fasthttp.Server, listener net.Listener, paths []string, isTLS bool, log *logrus.Logger) (service *ServerService) { return &ServerService{ + name: name, server: server, listener: listener, paths: paths, isTLS: isTLS, - log: log.WithFields(map[string]any{"service": "server", "server": name}), + log: log.WithFields(map[string]any{logFieldService: serviceTypeServer, serviceTypeServer: name}), } } @@ -53,10 +55,11 @@ func NewFileWatcherService(name, path string, reload ProviderReload, log *logrus return nil, err } - entry := log.WithFields(map[string]any{"service": "watcher", "watcher": name}) + entry := log.WithFields(map[string]any{logFieldService: serviceTypeWatcher, serviceTypeWatcher: name}) if info.IsDir() { service = &FileWatcherService{ + name: name, watcher: watcher, reload: reload, log: entry, @@ -64,6 +67,7 @@ func NewFileWatcherService(name, path string, reload ProviderReload, log *logrus } } else { service = &FileWatcherService{ + name: name, watcher: watcher, reload: reload, log: entry, @@ -86,12 +90,25 @@ type ProviderReload interface { // Service represents the required methods to support handling a service. type Service interface { + // ServiceType returns the type name for the Service. + ServiceType() string + + // ServiceName returns the individual name for the Service. + ServiceName() string + + // Run performs the running operations for the Service. Run() (err error) + + // Shutdown perform the shutdown cleanup and termination operations for the Service. Shutdown() + + // Log returns the logger configured for the service. + Log() *logrus.Entry } // ServerService is a Service which runs a webserver. type ServerService struct { + name string server *fasthttp.Server paths []string isTLS bool @@ -99,6 +116,16 @@ type ServerService struct { log *logrus.Entry } +// ServiceType returns the service type for this service, which is always 'server'. +func (service *ServerService) ServiceType() string { + return serviceTypeServer +} + +// ServiceName returns the individual name for this service. +func (service *ServerService) ServiceName() string { + return service.name +} + // Run the ServerService. func (service *ServerService) Run() (err error) { defer func() { @@ -120,13 +147,24 @@ func (service *ServerService) Run() (err error) { // Shutdown the ServerService. func (service *ServerService) Shutdown() { - if err := service.server.Shutdown(); err != nil { + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + + defer cancel() + + if err := service.server.ShutdownWithContext(ctx); err != nil { service.log.WithError(err).Error("Error occurred during shutdown") } } +// Log returns the *logrus.Entry of the ServerService. +func (service *ServerService) Log() *logrus.Entry { + return service.log +} + // FileWatcherService is a Service that watches files for changes. type FileWatcherService struct { + name string + watcher *fsnotify.Watcher reload ProviderReload @@ -135,6 +173,16 @@ type FileWatcherService struct { directory string } +// ServiceType returns the service type for this service, which is always 'watcher'. +func (service *FileWatcherService) ServiceType() string { + return serviceTypeWatcher +} + +// ServiceName returns the individual name for this service. +func (service *FileWatcherService) ServiceName() string { + return service.name +} + // Run the FileWatcherService. func (service *FileWatcherService) Run() (err error) { defer func() { @@ -143,7 +191,7 @@ func (service *FileWatcherService) Run() (err error) { } }() - service.log.WithField("file", filepath.Join(service.directory, service.file)).Info("Watching for file changes to the file") + service.log.WithField(logFieldFile, filepath.Join(service.directory, service.file)).Info("Watching file for changes") for { select { @@ -152,34 +200,36 @@ func (service *FileWatcherService) Run() (err error) { return nil } + log := service.log.WithFields(map[string]any{logFieldFile: event.Name, logFieldOP: event.Op}) + if service.file != "" && service.file != filepath.Base(event.Name) { - service.log.WithFields(map[string]any{"file": event.Name, "op": event.Op}).Tracef("File modification detected to irrelevant file") + log.Trace("File modification detected to irrelevant file") break } switch { case event.Op&fsnotify.Write == fsnotify.Write, event.Op&fsnotify.Create == fsnotify.Create: - service.log.WithFields(map[string]any{"file": event.Name, "op": event.Op}).Debug("File modification was detected") + log.Debug("File modification was detected") var reloaded bool switch reloaded, err = service.reload.Reload(); { case err != nil: - service.log.WithFields(map[string]any{"file": event.Name, "op": event.Op}).WithError(err).Error("Error occurred during reload") + log.WithError(err).Error("Error occurred during reload") case reloaded: - service.log.WithField("file", event.Name).Info("Reloaded successfully") + log.Info("Reloaded successfully") default: - service.log.WithField("file", event.Name).Debug("Reload of was triggered but it was skipped") + log.Debug("Reload was triggered but it was skipped") } case event.Op&fsnotify.Remove == fsnotify.Remove: - service.log.WithFields(map[string]any{"file": event.Name, "op": event.Op}).Debug("File remove was detected") + log.Debug("File remove was detected") } case err, ok := <-service.watcher.Errors: if !ok { return nil } - service.log.WithError(err).Errorf("Error while watching files") + service.log.WithError(err).Error("Error while watching file for changes") } } } @@ -191,6 +241,11 @@ func (service *FileWatcherService) Shutdown() { } } +// Log returns the *logrus.Entry of the FileWatcherService. +func (service *FileWatcherService) Log() *logrus.Entry { + return service.log +} + func svcSvrMainFunc(ctx *CmdCtx) (service Service) { switch svr, listener, paths, isTLS, err := server.CreateDefaultServer(ctx.config, ctx.providers); { case err != nil: @@ -267,34 +322,35 @@ func servicesRun(ctx *CmdCtx) { } } - ctx.log.Info("Startup Complete") + ctx.log.Info("Startup complete") select { case s := <-quit: - switch s { - case syscall.SIGINT: - ctx.log.WithField("signal", "SIGINT").Debugf("Shutdown started due to signal") - case syscall.SIGTERM: - ctx.log.WithField("signal", "SIGTERM").Debugf("Shutdown started due to signal") - } + ctx.log.WithField("signal", s.String()).Debug("Shutdown initiated due to process signal") case <-cctx.Done(): - ctx.log.Debugf("Shutdown started due to context completion") + ctx.log.Debug("Shutdown initiated due to context completion") } cancel() - ctx.log.Infof("Shutting down") + ctx.log.Info("Shutdown initiated") wgShutdown := &sync.WaitGroup{} + ctx.log.Tracef("Shutdown of %d services is required", len(services)) + for _, service := range services { - go func() { + wgShutdown.Add(1) + + go func(service Service) { + service.Log().Trace("Shutdown of service initiated") + service.Shutdown() wgShutdown.Done() - }() - wgShutdown.Add(1) + service.Log().Trace("Shutdown of service complete") + }(service) } wgShutdown.Wait() @@ -306,6 +362,8 @@ func servicesRun(ctx *CmdCtx) { } if err = group.Wait(); err != nil { - ctx.log.WithError(err).Errorf("Error occurred waiting for shutdown") + ctx.log.WithError(err).Error("Error occurred waiting for shutdown") } + + ctx.log.Info("Shutdown complete") } diff --git a/internal/suites/environment.go b/internal/suites/environment.go index 0c79b898d..1149ac9f0 100644 --- a/internal/suites/environment.go +++ b/internal/suites/environment.go @@ -42,7 +42,7 @@ func waitUntilAutheliaBackendIsReady(dockerEnvironment *DockerEnvironment) error 90*time.Second, dockerEnvironment, "authelia-backend", - []string{"Startup Complete"}) + []string{"Startup complete"}) } func waitUntilAutheliaFrontendIsReady(dockerEnvironment *DockerEnvironment) error { diff --git a/web/package.json b/web/package.json index 60f5bf77a..ab864f579 100644 --- a/web/package.json +++ b/web/package.json @@ -30,11 +30,11 @@ "@fortawesome/free-solid-svg-icons": "6.3.0", "@fortawesome/react-fontawesome": "0.2.0", "@mui/icons-material": "5.11.9", - "@mui/material": "5.11.9", + "@mui/material": "5.11.10", "@mui/styles": "5.11.9", "@simplewebauthn/browser": "7.1.0", "@simplewebauthn/typescript-types": "7.0.0", - "axios": "1.3.3", + "axios": "1.3.4", "broadcast-channel": "4.20.2", "classnames": "2.3.2", "i18next": "22.4.10", @@ -43,7 +43,7 @@ "qrcode.react": "3.1.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-i18next": "12.1.5", + "react-i18next": "12.2.0", "react-loading": "2.0.3", "react-router-dom": "6.8.1", "react18-input-otp": "1.1.2", @@ -154,15 +154,15 @@ "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "14.0.0", "@types/jest": "29.4.0", - "@types/node": "18.14.0", + "@types/node": "18.14.1", "@types/qrcode.react": "1.0.2", "@types/react": "18.0.28", "@types/react-dom": "18.0.11", "@types/zxcvbn": "4.4.1", - "@typescript-eslint/eslint-plugin": "5.52.0", - "@typescript-eslint/parser": "5.52.0", + "@typescript-eslint/eslint-plugin": "5.53.0", + "@typescript-eslint/parser": "5.53.0", "@vitejs/plugin-react": "3.1.0", - "esbuild": "0.17.8", + "esbuild": "0.17.10", "esbuild-jest": "0.5.0", "eslint": "8.34.0", "eslint-config-prettier": "8.6.0", @@ -182,7 +182,7 @@ "prettier": "2.8.4", "react-test-renderer": "18.2.0", "typescript": "4.9.5", - "vite": "4.1.2", + "vite": "4.1.4", "vite-plugin-eslint": "1.8.1", "vite-plugin-istanbul": "4.0.0", "vite-plugin-svgr": "2.4.0", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index fcdaacc04..bd64c5be3 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -12,25 +12,25 @@ specifiers: '@fortawesome/react-fontawesome': 0.2.0 '@limegrass/eslint-plugin-import-alias': 1.0.6 '@mui/icons-material': 5.11.9 - '@mui/material': 5.11.9 + '@mui/material': 5.11.10 '@mui/styles': 5.11.9 '@simplewebauthn/browser': 7.1.0 '@simplewebauthn/typescript-types': 7.0.0 '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 14.0.0 '@types/jest': 29.4.0 - '@types/node': 18.14.0 + '@types/node': 18.14.1 '@types/qrcode.react': 1.0.2 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 '@types/zxcvbn': 4.4.1 - '@typescript-eslint/eslint-plugin': 5.52.0 - '@typescript-eslint/parser': 5.52.0 + '@typescript-eslint/eslint-plugin': 5.53.0 + '@typescript-eslint/parser': 5.53.0 '@vitejs/plugin-react': 3.1.0 - axios: 1.3.3 + axios: 1.3.4 broadcast-channel: 4.20.2 classnames: 2.3.2 - esbuild: 0.17.8 + esbuild: 0.17.10 esbuild-jest: 0.5.0 eslint: 8.34.0 eslint-config-prettier: 8.6.0 @@ -54,13 +54,13 @@ specifiers: qrcode.react: 3.1.0 react: 18.2.0 react-dom: 18.2.0 - react-i18next: 12.1.5 + react-i18next: 12.2.0 react-loading: 2.0.3 react-router-dom: 6.8.1 react-test-renderer: 18.2.0 react18-input-otp: 1.1.2 typescript: 4.9.5 - vite: 4.1.2 + vite: 4.1.4 vite-plugin-eslint: 1.8.1 vite-plugin-istanbul: 4.0.0 vite-plugin-svgr: 2.4.0 @@ -75,12 +75,12 @@ dependencies: '@fortawesome/free-regular-svg-icons': 6.3.0 '@fortawesome/free-solid-svg-icons': 6.3.0 '@fortawesome/react-fontawesome': 0.2.0_d5rbrisxfyemehbvmdbryvgjte - '@mui/icons-material': 5.11.9_ofpk46txu7v2f5mzrtv4xsczka - '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli + '@mui/icons-material': 5.11.9_ylmaxqh5wvme7ymgn4ys5vax6u + '@mui/material': 5.11.10_xqeqsl5kvjjtyxwyi3jhw3yuli '@mui/styles': 5.11.9_pmekkgnqduwlme35zpnqhenc34 '@simplewebauthn/browser': 7.1.0 '@simplewebauthn/typescript-types': 7.0.0 - axios: 1.3.3 + axios: 1.3.4 broadcast-channel: 4.20.2 classnames: 2.3.2 i18next: 22.4.10 @@ -89,7 +89,7 @@ dependencies: qrcode.react: 3.1.0_react@18.2.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-i18next: 12.1.5_3yopsigl4h4eb2nqrqfsy65uwi + react-i18next: 12.2.0_3yopsigl4h4eb2nqrqfsy65uwi react-loading: 2.0.3_react@18.2.0 react-router-dom: 6.8.1_biqbaboplfbrettd7655fr4n2y react18-input-otp: 1.1.2_biqbaboplfbrettd7655fr4n2y @@ -102,38 +102,38 @@ devDependencies: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 14.0.0_biqbaboplfbrettd7655fr4n2y '@types/jest': 29.4.0 - '@types/node': 18.14.0 + '@types/node': 18.14.1 '@types/qrcode.react': 1.0.2 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 '@types/zxcvbn': 4.4.1 - '@typescript-eslint/eslint-plugin': 5.52.0_6cfvjsbua5ptj65675bqcn6oza - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - '@vitejs/plugin-react': 3.1.0_vite@4.1.2 - esbuild: 0.17.8 - esbuild-jest: 0.5.0_esbuild@0.17.8 + '@typescript-eslint/eslint-plugin': 5.53.0_ny4s7qc6yg74faf3d6xty2ofzy + '@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm + '@vitejs/plugin-react': 3.1.0_vite@4.1.4 + esbuild: 0.17.10 + esbuild-jest: 0.5.0_esbuild@0.17.10 eslint: 8.34.0 eslint-config-prettier: 8.6.0_eslint@8.34.0 eslint-config-react-app: 7.0.1_oytcih6zi32cgkyximlrbvtvxe eslint-formatter-rdjson: 1.0.5 eslint-import-resolver-typescript: 3.5.3_mvgyw3chnqkp6sgfmmtihyjpnm - eslint-plugin-import: 2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi + eslint-plugin-import: 2.27.5_2hqppaeqs2axgzqg6vttejknky eslint-plugin-jsx-a11y: 6.7.1_eslint@8.34.0 eslint-plugin-prettier: 4.2.1_u5wnrdwibbfomslmnramz52buy eslint-plugin-react: 7.32.2_eslint@8.34.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 husky: 8.0.3 - jest: 29.4.3_@types+node@18.14.0 + jest: 29.4.3_@types+node@18.14.1 jest-environment-jsdom: 29.4.3 jest-transform-stub: 2.0.0 jest-watch-typeahead: 2.2.2_jest@29.4.3 prettier: 2.8.4 react-test-renderer: 18.2.0_react@18.2.0 typescript: 4.9.5 - vite: 4.1.2_@types+node@18.14.0 - vite-plugin-eslint: 1.8.1_eslint@8.34.0+vite@4.1.2 - vite-plugin-istanbul: 4.0.0_vite@4.1.2 - vite-plugin-svgr: 2.4.0_vite@4.1.2 + vite: 4.1.4_@types+node@18.14.1 + vite-plugin-eslint: 1.8.1_eslint@8.34.0+vite@4.1.4 + vite-plugin-istanbul: 4.0.0_vite@4.1.4 + vite-plugin-svgr: 2.4.0_vite@4.1.4 vite-tsconfig-paths: 4.0.5_typescript@4.9.5 packages: @@ -2098,15 +2098,15 @@ packages: '@commitlint/execute-rule': 17.4.0 '@commitlint/resolve-extends': 17.4.4 '@commitlint/types': 17.4.4 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 cosmiconfig: 8.0.0 - cosmiconfig-typescript-loader: 4.0.0_s4pcbtlgqacu4kgwwbljosb5om + cosmiconfig-typescript-loader: 4.0.0_im5iiyjloqu4eqfz3uy3qu5avu lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.0_tncu2ai53lzgmizdedur7lbibe + ts-node: 10.9.0_uayvamxqnl5yeiojjysxwopmsy typescript: 4.9.5 transitivePeerDependencies: - '@swc/core' @@ -2312,8 +2312,8 @@ packages: dev: true optional: true - /@esbuild/android-arm/0.17.8: - resolution: {integrity: sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==} + /@esbuild/android-arm/0.17.10: + resolution: {integrity: sha512-7YEBfZ5lSem9Tqpsz+tjbdsEshlO9j/REJrfv4DXgKTt1+/MHqGwbtlyxQuaSlMeUZLxUKBaX8wdzlTfHkmnLw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2330,8 +2330,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64/0.17.8: - resolution: {integrity: sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==} + /@esbuild/android-arm64/0.17.10: + resolution: {integrity: sha512-ht1P9CmvrPF5yKDtyC+z43RczVs4rrHpRqrmIuoSvSdn44Fs1n6DGlpZKdK6rM83pFLbVaSUwle8IN+TPmkv7g==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2348,8 +2348,8 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.17.8: - resolution: {integrity: sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==} + /@esbuild/android-x64/0.17.10: + resolution: {integrity: sha512-CYzrm+hTiY5QICji64aJ/xKdN70IK8XZ6iiyq0tZkd3tfnwwSWTYH1t3m6zyaaBxkuj40kxgMyj1km/NqdjQZA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2366,8 +2366,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.17.8: - resolution: {integrity: sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==} + /@esbuild/darwin-arm64/0.17.10: + resolution: {integrity: sha512-3HaGIowI+nMZlopqyW6+jxYr01KvNaLB5znXfbyyjuo4lE0VZfvFGcguIJapQeQMS4cX/NEispwOekJt3gr5Dg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2384,8 +2384,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.17.8: - resolution: {integrity: sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==} + /@esbuild/darwin-x64/0.17.10: + resolution: {integrity: sha512-J4MJzGchuCRG5n+B4EHpAMoJmBeAE1L3wGYDIN5oWNqX0tEr7VKOzw0ymSwpoeSpdCa030lagGUfnfhS7OvzrQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2402,8 +2402,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.17.8: - resolution: {integrity: sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==} + /@esbuild/freebsd-arm64/0.17.10: + resolution: {integrity: sha512-ZkX40Z7qCbugeK4U5/gbzna/UQkM9d9LNV+Fro8r7HA7sRof5Rwxc46SsqeMvB5ZaR0b1/ITQ/8Y1NmV2F0fXQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2420,8 +2420,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.17.8: - resolution: {integrity: sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==} + /@esbuild/freebsd-x64/0.17.10: + resolution: {integrity: sha512-0m0YX1IWSLG9hWh7tZa3kdAugFbZFFx9XrvfpaCMMvrswSTvUZypp0NFKriUurHpBA3xsHVE9Qb/0u2Bbi/otg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2438,8 +2438,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.17.8: - resolution: {integrity: sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==} + /@esbuild/linux-arm/0.17.10: + resolution: {integrity: sha512-whRdrrl0X+9D6o5f0sTZtDM9s86Xt4wk1bf7ltx6iQqrIIOH+sre1yjpcCdrVXntQPCNw/G+XqsD4HuxeS+2QA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2456,8 +2456,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64/0.17.8: - resolution: {integrity: sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==} + /@esbuild/linux-arm64/0.17.10: + resolution: {integrity: sha512-g1EZJR1/c+MmCgVwpdZdKi4QAJ8DCLP5uTgLWSAVd9wlqk9GMscaNMEViG3aE1wS+cNMzXXgdWiW/VX4J+5nTA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2474,8 +2474,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.17.8: - resolution: {integrity: sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==} + /@esbuild/linux-ia32/0.17.10: + resolution: {integrity: sha512-1vKYCjfv/bEwxngHERp7huYfJ4jJzldfxyfaF7hc3216xiDA62xbXJfRlradiMhGZbdNLj2WA1YwYFzs9IWNPw==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2492,8 +2492,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.17.8: - resolution: {integrity: sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==} + /@esbuild/linux-loong64/0.17.10: + resolution: {integrity: sha512-mvwAr75q3Fgc/qz3K6sya3gBmJIYZCgcJ0s7XshpoqIAIBszzfXsqhpRrRdVFAyV1G9VUjj7VopL2HnAS8aHFA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2510,8 +2510,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.17.8: - resolution: {integrity: sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==} + /@esbuild/linux-mips64el/0.17.10: + resolution: {integrity: sha512-XilKPgM2u1zR1YuvCsFQWl9Fc35BqSqktooumOY2zj7CSn5czJn279j9TE1JEqSqz88izJo7yE4x3LSf7oxHzg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2528,8 +2528,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.17.8: - resolution: {integrity: sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==} + /@esbuild/linux-ppc64/0.17.10: + resolution: {integrity: sha512-kM4Rmh9l670SwjlGkIe7pYWezk8uxKHX4Lnn5jBZYBNlWpKMBCVfpAgAJqp5doLobhzF3l64VZVrmGeZ8+uKmQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2546,8 +2546,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.17.8: - resolution: {integrity: sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==} + /@esbuild/linux-riscv64/0.17.10: + resolution: {integrity: sha512-r1m9ZMNJBtOvYYGQVXKy+WvWd0BPvSxMsVq8Hp4GzdMBQvfZRvRr5TtX/1RdN6Va8JMVQGpxqde3O+e8+khNJQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2564,8 +2564,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.17.8: - resolution: {integrity: sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==} + /@esbuild/linux-s390x/0.17.10: + resolution: {integrity: sha512-LsY7QvOLPw9WRJ+fU5pNB3qrSfA00u32ND5JVDrn/xG5hIQo3kvTxSlWFRP0NJ0+n6HmhPGG0Q4jtQsb6PFoyg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2582,8 +2582,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.17.8: - resolution: {integrity: sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==} + /@esbuild/linux-x64/0.17.10: + resolution: {integrity: sha512-zJUfJLebCYzBdIz/Z9vqwFjIA7iSlLCFvVi7glMgnu2MK7XYigwsonXshy9wP9S7szF+nmwrelNaP3WGanstEg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2600,8 +2600,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.17.8: - resolution: {integrity: sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==} + /@esbuild/netbsd-x64/0.17.10: + resolution: {integrity: sha512-lOMkailn4Ok9Vbp/q7uJfgicpDTbZFlXlnKT2DqC8uBijmm5oGtXAJy2ZZVo5hX7IOVXikV9LpCMj2U8cTguWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2618,8 +2618,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.17.8: - resolution: {integrity: sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==} + /@esbuild/openbsd-x64/0.17.10: + resolution: {integrity: sha512-/VE0Kx6y7eekqZ+ZLU4AjMlB80ov9tEz4H067Y0STwnGOYL8CsNg4J+cCmBznk1tMpxMoUOf0AbWlb1d2Pkbig==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2636,8 +2636,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.17.8: - resolution: {integrity: sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==} + /@esbuild/sunos-x64/0.17.10: + resolution: {integrity: sha512-ERNO0838OUm8HfUjjsEs71cLjLMu/xt6bhOlxcJ0/1MG3hNqCmbWaS+w/8nFLa0DDjbwZQuGKVtCUJliLmbVgg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2654,8 +2654,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.17.8: - resolution: {integrity: sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==} + /@esbuild/win32-arm64/0.17.10: + resolution: {integrity: sha512-fXv+L+Bw2AeK+XJHwDAQ9m3NRlNemG6Z6ijLwJAAVdu4cyoFbBWbEtyZzDeL+rpG2lWI51cXeMt70HA8g2MqIg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2672,8 +2672,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.17.8: - resolution: {integrity: sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==} + /@esbuild/win32-ia32/0.17.10: + resolution: {integrity: sha512-3s+HADrOdCdGOi5lnh5DMQEzgbsFsd4w57L/eLKKjMnN0CN4AIEP0DCP3F3N14xnxh3ruNc32A0Na9zYe1Z/AQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2690,8 +2690,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.17.8: - resolution: {integrity: sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==} + /@esbuild/win32-x64/0.17.10: + resolution: {integrity: sha512-oP+zFUjYNaMNmjTwlFtWep85hvwUu19cZklB3QsBOcZSs6y7hmH4LNCJ7075bsqzYaNvZFXJlAVaQ2ApITDXtw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2798,7 +2798,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 jest-message-util: 29.4.3 jest-util: 29.4.3 @@ -2819,14 +2819,14 @@ packages: '@jest/test-result': 29.4.3 '@jest/transform': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.3.2 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.4.3 - jest-config: 29.4.3_@types+node@18.14.0 + jest-config: 29.4.3_@types+node@18.14.1 jest-haste-map: 29.4.3 jest-message-util: 29.4.3 jest-regex-util: 29.4.3 @@ -2853,7 +2853,7 @@ packages: dependencies: '@jest/fake-timers': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-mock: 29.4.3 dev: true @@ -2887,7 +2887,7 @@ packages: dependencies: '@jest/types': 29.4.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-message-util: 29.4.3 jest-mock: 29.4.3 jest-util: 29.4.3 @@ -2920,7 +2920,7 @@ packages: '@jest/transform': 29.4.3 '@jest/types': 29.4.3 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -3037,7 +3037,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.14.0 + '@types/node': 18.14.1 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true @@ -3049,7 +3049,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.14.0 + '@types/node': 18.14.1 '@types/yargs': 17.0.10 chalk: 4.1.2 dev: true @@ -3140,7 +3140,7 @@ packages: resolution: {integrity: sha512-YGEtucQ/Nl91VZkzYaLad47Cdui51n/hW+OQm4210g4N3/nZzBxmGeKfubEalf+ShKH4aYDS86XTO6q/TpZnjQ==} dev: false - /@mui/icons-material/5.11.9_ofpk46txu7v2f5mzrtv4xsczka: + /@mui/icons-material/5.11.9_ylmaxqh5wvme7ymgn4ys5vax6u: resolution: {integrity: sha512-SPANMk6K757Q1x48nCwPGdSNb8B71d+2hPMJ0V12VWerpSsbjZtvAPi5FAn13l2O5mwWkvI0Kne+0tCgnNxMNw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3152,13 +3152,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.20.13 - '@mui/material': 5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli + '@mui/material': 5.11.10_xqeqsl5kvjjtyxwyi3jhw3yuli '@types/react': 18.0.28 react: 18.2.0 dev: false - /@mui/material/5.11.9_xqeqsl5kvjjtyxwyi3jhw3yuli: - resolution: {integrity: sha512-Wb3WzjzYyi/WKSl/XlF7aC8kk2NE21IoHMF7hNQMkPb0GslbWwR4OUjlBpxtG+RSZn44wMZkEDNB9Hw0TDsd8g==} + /@mui/material/5.11.10_xqeqsl5kvjjtyxwyi3jhw3yuli: + resolution: {integrity: sha512-hs1WErbiedqlJIZsljgoil908x4NMp8Lfk8di+5c7o809roqKcFTg2+k3z5ucKvs29AXcsdXrDB/kn2K6dGYIw==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -3673,7 +3673,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 dev: true /@types/istanbul-lib-coverage/2.0.4: @@ -3702,7 +3702,7 @@ packages: /@types/jsdom/20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 '@types/tough-cookie': 4.0.2 parse5: 7.0.0 dev: true @@ -3719,8 +3719,8 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node/18.14.0: - resolution: {integrity: sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==} + /@types/node/18.14.1: + resolution: {integrity: sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==} dev: true /@types/normalize-package-data/2.4.1: @@ -3809,8 +3809,8 @@ packages: resolution: {integrity: sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==} dev: true - /@typescript-eslint/eslint-plugin/5.52.0_6cfvjsbua5ptj65675bqcn6oza: - resolution: {integrity: sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==} + /@typescript-eslint/eslint-plugin/5.53.0_ny4s7qc6yg74faf3d6xty2ofzy: + resolution: {integrity: sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3820,10 +3820,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/type-utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm - '@typescript-eslint/utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/scope-manager': 5.53.0 + '@typescript-eslint/type-utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 4.3.4 eslint: 8.34.0 grapheme-splitter: 1.0.4 @@ -3850,8 +3850,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==} + /@typescript-eslint/parser/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm: + resolution: {integrity: sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3860,9 +3860,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 + '@typescript-eslint/scope-manager': 5.53.0 + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5 debug: 4.3.4 eslint: 8.34.0 typescript: 4.9.5 @@ -3878,16 +3878,16 @@ packages: '@typescript-eslint/visitor-keys': 5.30.6 dev: true - /@typescript-eslint/scope-manager/5.52.0: - resolution: {integrity: sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==} + /@typescript-eslint/scope-manager/5.53.0: + resolution: {integrity: sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/visitor-keys': 5.52.0 + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/visitor-keys': 5.53.0 dev: true - /@typescript-eslint/type-utils/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==} + /@typescript-eslint/type-utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm: + resolution: {integrity: sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3896,8 +3896,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5 + '@typescript-eslint/utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 4.3.4 eslint: 8.34.0 tsutils: 3.21.0_typescript@4.9.5 @@ -3911,8 +3911,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.52.0: - resolution: {integrity: sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==} + /@typescript-eslint/types/5.53.0: + resolution: {integrity: sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3937,8 +3937,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.52.0_typescript@4.9.5: - resolution: {integrity: sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==} + /@typescript-eslint/typescript-estree/5.53.0_typescript@4.9.5: + resolution: {integrity: sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3946,8 +3946,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/visitor-keys': 5.52.0 + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/visitor-keys': 5.53.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3976,17 +3976,17 @@ packages: - typescript dev: true - /@typescript-eslint/utils/5.52.0_7kw3g6rralp5ps6mg3uyzz6azm: - resolution: {integrity: sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==} + /@typescript-eslint/utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm: + resolution: {integrity: sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.12 - '@typescript-eslint/scope-manager': 5.52.0 - '@typescript-eslint/types': 5.52.0 - '@typescript-eslint/typescript-estree': 5.52.0_typescript@4.9.5 + '@typescript-eslint/scope-manager': 5.53.0 + '@typescript-eslint/types': 5.53.0 + '@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5 eslint: 8.34.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.34.0 @@ -4004,15 +4004,15 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.52.0: - resolution: {integrity: sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==} + /@typescript-eslint/visitor-keys/5.53.0: + resolution: {integrity: sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.52.0 + '@typescript-eslint/types': 5.53.0 eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-react/3.1.0_vite@4.1.2: + /@vitejs/plugin-react/3.1.0_vite@4.1.4: resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4023,7 +4023,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.1.2_@types+node@18.14.0 + vite: 4.1.4_@types+node@18.14.1 transitivePeerDependencies: - supports-color dev: true @@ -4287,8 +4287,8 @@ packages: engines: {node: '>=4'} dev: true - /axios/1.3.3: - resolution: {integrity: sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==} + /axios/1.3.4: + resolution: {integrity: sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==} dependencies: follow-redirects: 1.15.1 form-data: 4.0.0 @@ -4865,7 +4865,7 @@ packages: semver: 7.0.0 dev: true - /cosmiconfig-typescript-loader/4.0.0_s4pcbtlgqacu4kgwwbljosb5om: + /cosmiconfig-typescript-loader/4.0.0_im5iiyjloqu4eqfz3uy3qu5avu: resolution: {integrity: sha512-cVpucSc2Tf+VPwCCR7SZzmQTQkPbkk4O01yXsYqXBIbjE1bhwqSyAgYQkRK1un4i0OPziTleqFhdkmOc4RQ/9g==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4874,9 +4874,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 cosmiconfig: 8.0.0 - ts-node: 10.9.0_tncu2ai53lzgmizdedur7lbibe + ts-node: 10.9.0_uayvamxqnl5yeiojjysxwopmsy typescript: 4.9.5 dev: true @@ -5269,7 +5269,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-jest/0.5.0_esbuild@0.17.8: + /esbuild-jest/0.5.0_esbuild@0.17.10: resolution: {integrity: sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ==} peerDependencies: esbuild: '>=0.8.50' @@ -5277,7 +5277,7 @@ packages: '@babel/core': 7.18.6 '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.18.6 babel-jest: 26.6.3_@babel+core@7.18.6 - esbuild: 0.17.8 + esbuild: 0.17.10 transitivePeerDependencies: - supports-color dev: true @@ -5311,33 +5311,33 @@ packages: '@esbuild/win32-x64': 0.16.17 dev: true - /esbuild/0.17.8: - resolution: {integrity: sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==} + /esbuild/0.17.10: + resolution: {integrity: sha512-n7V3v29IuZy5qgxx25TKJrEm0FHghAlS6QweUcyIgh/U0zYmQcvogWROitrTyZId1mHSkuhhuyEXtI9OXioq7A==} engines: {node: '>=12'} requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.8 - '@esbuild/android-arm64': 0.17.8 - '@esbuild/android-x64': 0.17.8 - '@esbuild/darwin-arm64': 0.17.8 - '@esbuild/darwin-x64': 0.17.8 - '@esbuild/freebsd-arm64': 0.17.8 - '@esbuild/freebsd-x64': 0.17.8 - '@esbuild/linux-arm': 0.17.8 - '@esbuild/linux-arm64': 0.17.8 - '@esbuild/linux-ia32': 0.17.8 - '@esbuild/linux-loong64': 0.17.8 - '@esbuild/linux-mips64el': 0.17.8 - '@esbuild/linux-ppc64': 0.17.8 - '@esbuild/linux-riscv64': 0.17.8 - '@esbuild/linux-s390x': 0.17.8 - '@esbuild/linux-x64': 0.17.8 - '@esbuild/netbsd-x64': 0.17.8 - '@esbuild/openbsd-x64': 0.17.8 - '@esbuild/sunos-x64': 0.17.8 - '@esbuild/win32-arm64': 0.17.8 - '@esbuild/win32-ia32': 0.17.8 - '@esbuild/win32-x64': 0.17.8 + '@esbuild/android-arm': 0.17.10 + '@esbuild/android-arm64': 0.17.10 + '@esbuild/android-x64': 0.17.10 + '@esbuild/darwin-arm64': 0.17.10 + '@esbuild/darwin-x64': 0.17.10 + '@esbuild/freebsd-arm64': 0.17.10 + '@esbuild/freebsd-x64': 0.17.10 + '@esbuild/linux-arm': 0.17.10 + '@esbuild/linux-arm64': 0.17.10 + '@esbuild/linux-ia32': 0.17.10 + '@esbuild/linux-loong64': 0.17.10 + '@esbuild/linux-mips64el': 0.17.10 + '@esbuild/linux-ppc64': 0.17.10 + '@esbuild/linux-riscv64': 0.17.10 + '@esbuild/linux-s390x': 0.17.10 + '@esbuild/linux-x64': 0.17.10 + '@esbuild/netbsd-x64': 0.17.10 + '@esbuild/openbsd-x64': 0.17.10 + '@esbuild/sunos-x64': 0.17.10 + '@esbuild/win32-arm64': 0.17.10 + '@esbuild/win32-ia32': 0.17.10 + '@esbuild/win32-x64': 0.17.10 dev: true /escalade/3.1.1: @@ -5391,14 +5391,14 @@ packages: '@babel/core': 7.18.6 '@babel/eslint-parser': 7.18.2_4hiysdvhwszrzvk6njkclnrv5u '@rushstack/eslint-patch': 1.1.4 - '@typescript-eslint/eslint-plugin': 5.52.0_6cfvjsbua5ptj65675bqcn6oza - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/eslint-plugin': 5.53.0_ny4s7qc6yg74faf3d6xty2ofzy + '@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.34.0 eslint-plugin-flowtype: 8.0.3_eslint@8.34.0 - eslint-plugin-import: 2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi - eslint-plugin-jest: 25.7.0_t72awa2z3vpak2uwxwh5zj752m + eslint-plugin-import: 2.27.5_2hqppaeqs2axgzqg6vttejknky + eslint-plugin-jest: 25.7.0_qiaazqnd2prtenz7j3bxl5vleu eslint-plugin-jsx-a11y: 6.7.1_eslint@8.34.0 eslint-plugin-react: 7.32.2_eslint@8.34.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.34.0 @@ -5437,7 +5437,7 @@ packages: debug: 4.3.4 enhanced-resolve: 5.10.0 eslint: 8.34.0 - eslint-plugin-import: 2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi + eslint-plugin-import: 2.27.5_2hqppaeqs2axgzqg6vttejknky get-tsconfig: 4.2.0 globby: 13.1.2 is-core-module: 2.10.0 @@ -5447,7 +5447,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_cvrl34cvgpgac5pvqi7ag6zw7e: + /eslint-module-utils/2.7.4_yfzt44nswbaazp63chcrlz6vvq: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -5468,7 +5468,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm debug: 3.2.7 eslint: 8.34.0 eslint-import-resolver-node: 0.3.7 @@ -5495,7 +5495,7 @@ packages: string-natural-compare: 3.0.1 dev: true - /eslint-plugin-import/2.27.5_gndiqgw2wrzfeqy4ccfxbmtnsi: + /eslint-plugin-import/2.27.5_2hqppaeqs2axgzqg6vttejknky: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5505,7 +5505,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -5513,7 +5513,7 @@ packages: doctrine: 2.1.0 eslint: 8.34.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_cvrl34cvgpgac5pvqi7ag6zw7e + eslint-module-utils: 2.7.4_yfzt44nswbaazp63chcrlz6vvq has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -5528,7 +5528,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest/25.7.0_t72awa2z3vpak2uwxwh5zj752m: + /eslint-plugin-jest/25.7.0_qiaazqnd2prtenz7j3bxl5vleu: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -5541,10 +5541,10 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.52.0_6cfvjsbua5ptj65675bqcn6oza + '@typescript-eslint/eslint-plugin': 5.53.0_ny4s7qc6yg74faf3d6xty2ofzy '@typescript-eslint/experimental-utils': 5.30.6_7kw3g6rralp5ps6mg3uyzz6azm eslint: 8.34.0 - jest: 29.4.3_@types+node@18.14.0 + jest: 29.4.3_@types+node@18.14.1 transitivePeerDependencies: - supports-color - typescript @@ -5631,7 +5631,7 @@ packages: peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.52.0_7kw3g6rralp5ps6mg3uyzz6azm + '@typescript-eslint/utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm eslint: 8.34.0 transitivePeerDependencies: - supports-color @@ -6814,7 +6814,7 @@ packages: '@jest/expect': 29.4.3 '@jest/test-result': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -6833,7 +6833,7 @@ packages: - supports-color dev: true - /jest-cli/29.4.3_@types+node@18.14.0: + /jest-cli/29.4.3_@types+node@18.14.1: resolution: {integrity: sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6849,7 +6849,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.4.3_@types+node@18.14.0 + jest-config: 29.4.3_@types+node@18.14.1 jest-util: 29.4.3 jest-validate: 29.4.3 prompts: 2.4.2 @@ -6860,7 +6860,7 @@ packages: - ts-node dev: true - /jest-config/29.4.3_@types+node@18.14.0: + /jest-config/29.4.3_@types+node@18.14.1: resolution: {integrity: sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -6875,7 +6875,7 @@ packages: '@babel/core': 7.20.12 '@jest/test-sequencer': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 babel-jest: 29.4.3_@babel+core@7.20.12 chalk: 4.1.2 ci-info: 3.3.2 @@ -6940,7 +6940,7 @@ packages: '@jest/fake-timers': 29.4.3 '@jest/types': 29.4.3 '@types/jsdom': 20.0.0 - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-mock: 29.4.3 jest-util: 29.4.3 jsdom: 20.0.0 @@ -6957,7 +6957,7 @@ packages: '@jest/environment': 29.4.3 '@jest/fake-timers': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-mock: 29.4.3 jest-util: 29.4.3 dev: true @@ -6978,7 +6978,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.5 - '@types/node': 18.14.0 + '@types/node': 18.14.1 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -7001,7 +7001,7 @@ packages: dependencies: '@jest/types': 29.4.3 '@types/graceful-fs': 4.1.5 - '@types/node': 18.14.0 + '@types/node': 18.14.1 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -7077,7 +7077,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-util: 29.4.3 dev: true @@ -7142,7 +7142,7 @@ packages: '@jest/test-result': 29.4.3 '@jest/transform': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -7173,7 +7173,7 @@ packages: '@jest/test-result': 29.4.3 '@jest/transform': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -7196,7 +7196,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 graceful-fs: 4.2.10 dev: true @@ -7241,7 +7241,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 graceful-fs: 4.2.10 is-ci: 2.0.0 @@ -7253,7 +7253,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 ci-info: 3.3.2 graceful-fs: 4.2.10 @@ -7265,7 +7265,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 chalk: 4.1.2 ci-info: 3.3.2 graceful-fs: 4.2.10 @@ -7292,7 +7292,7 @@ packages: dependencies: ansi-escapes: 6.0.0 chalk: 5.2.0 - jest: 29.4.3_@types+node@18.14.0 + jest: 29.4.3_@types+node@18.14.1 jest-regex-util: 29.2.0 jest-watcher: 29.4.0 slash: 5.0.0 @@ -7306,7 +7306,7 @@ packages: dependencies: '@jest/test-result': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7320,7 +7320,7 @@ packages: dependencies: '@jest/test-result': 29.4.3 '@jest/types': 29.4.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7332,7 +7332,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -7341,13 +7341,13 @@ packages: resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 jest-util: 29.4.3 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest/29.4.3_@types+node@18.14.0: + /jest/29.4.3_@types+node@18.14.1: resolution: {integrity: sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -7359,7 +7359,7 @@ packages: '@jest/core': 29.4.3 '@jest/types': 29.4.3 import-local: 3.1.0 - jest-cli: 29.4.3_@types+node@18.14.0 + jest-cli: 29.4.3_@types+node@18.14.1 transitivePeerDependencies: - '@types/node' - supports-color @@ -8348,8 +8348,8 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-i18next/12.1.5_3yopsigl4h4eb2nqrqfsy65uwi: - resolution: {integrity: sha512-7PQAv6DA0TcStG96fle+8RfTwxVbHVlZZJPoEszwUNvDuWpGldJmNWa3ZPesEsZQZGF6GkzwvEh6p57qpFD2gQ==} + /react-i18next/12.2.0_3yopsigl4h4eb2nqrqfsy65uwi: + resolution: {integrity: sha512-5XeVgSygaGfyFmDd2WcXvINRw2WEC1XviW1LXY/xLOEMzsCFRwKqfnHN+hUjla8ZipbVJR27GCMSuTr0BhBBBQ==} peerDependencies: i18next: '>= 19.0.0' react: '>= 16.8.0 || 18' @@ -8361,7 +8361,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.20.7 + '@babel/runtime': 7.20.13 html-parse-stringify: 3.0.1 i18next: 22.4.10 react: 18.2.0 @@ -9202,7 +9202,7 @@ packages: engines: {node: '>=8'} dev: true - /ts-node/10.9.0_tncu2ai53lzgmizdedur7lbibe: + /ts-node/10.9.0_uayvamxqnl5yeiojjysxwopmsy: resolution: {integrity: sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==} peerDependencies: '@swc/core': '>=1.2.50' @@ -9220,7 +9220,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.14.0 + '@types/node': 18.14.1 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -9444,7 +9444,7 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-plugin-eslint/1.8.1_eslint@8.34.0+vite@4.1.2: + /vite-plugin-eslint/1.8.1_eslint@8.34.0+vite@4.1.4: resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' @@ -9454,10 +9454,10 @@ packages: '@types/eslint': 8.4.5 eslint: 8.34.0 rollup: 2.78.0 - vite: 4.1.2_@types+node@18.14.0 + vite: 4.1.4_@types+node@18.14.1 dev: true - /vite-plugin-istanbul/4.0.0_vite@4.1.2: + /vite-plugin-istanbul/4.0.0_vite@4.1.4: resolution: {integrity: sha512-r5TUlEprFyp+L+by/waG1RsIMiqfy7LBAZvheFlXjxzm69146rHGW6bh9TDzXg7wJB6DsyjqKFtvAX50d/I/IQ==} peerDependencies: vite: '>=2.9.1 <= 5' @@ -9466,19 +9466,19 @@ packages: istanbul-lib-instrument: 5.2.0 picocolors: 1.0.0 test-exclude: 6.0.0 - vite: 4.1.2_@types+node@18.14.0 + vite: 4.1.4_@types+node@18.14.1 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-svgr/2.4.0_vite@4.1.2: + /vite-plugin-svgr/2.4.0_vite@4.1.4: resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} peerDependencies: vite: ^2.6.0 || 3 || 4 dependencies: '@rollup/pluginutils': 5.0.2 '@svgr/core': 6.5.1 - vite: 4.1.2_@types+node@18.14.0 + vite: 4.1.4_@types+node@18.14.1 transitivePeerDependencies: - rollup - supports-color @@ -9495,8 +9495,8 @@ packages: - typescript dev: true - /vite/4.1.2_@types+node@18.14.0: - resolution: {integrity: sha512-MWDb9Rfy3DI8omDQySbMK93nQqStwbsQWejXRY2EBzEWKmLAXWb1mkI9Yw2IJrc+oCvPCI1Os5xSSIBYY6DEAw==} + /vite/4.1.4_@types+node@18.14.1: + resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/node': '>= 14' @@ -9519,7 +9519,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.14.0 + '@types/node': 18.14.1 esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1