diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index b6a9f4b434..7a4793dbe0 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -37,7 +37,7 @@ jobs: - name: linting uses: golangci/golangci-lint-action@v3 with: - version: v1.50.1 + version: v1.52 only-new-issues: true skip-pkg-cache: true - name: Publish go coverage diff --git a/.github/workflows/zitadel.yml b/.github/workflows/zitadel.yml index 34fd88696f..2691109f80 100644 --- a/.github/workflows/zitadel.yml +++ b/.github/workflows/zitadel.yml @@ -66,7 +66,7 @@ jobs: with: distribution: goreleaser version: v1.11.0 - args: release + args: release --timeout 50m env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GORELEASER_TOKEN_TAP: ${{ steps.generate-token.outputs.token }} @@ -78,3 +78,11 @@ jobs: with: file: .artifacts/codecov/profile.cov name: go-codecov + - name: Bump Chart Version + uses: peter-evans/repository-dispatch@v2 + if: steps.semantic.outputs.new_release_published == 'true' && github.ref == 'refs/heads/main' + with: + token: ${{ steps.generate-token.outputs.token }} + repository: zitadel/zitadel-charts + event-type: zitadel-released + client-payload: '{"semanticoutputs": "${{ steps.semantic.outputs }}"}' diff --git a/.releaserc.js b/.releaserc.js index ed7f41295b..c5503ecea1 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -1,8 +1,7 @@ module.exports = { branches: [ {name: 'main'}, - {name: 'next'}, - {name: '1.87.x', range: '1.87.x', channel: '1.87.x'} + {name: 'next'} ], plugins: [ "@semantic-release/commit-analyzer" diff --git a/README.md b/README.md index 996e5120f3..18c9ae3e4a 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Do you have project that requires a multi-tenant user management with self-servi Look no further — ZITADEL combines the ease of Auth0 with the versatility of Keycloak. We provide you with a wide range of out of the box features to accelerate your project. -Multi-tenancy with branding customization, secure login, self-service, OpenID Connect, OAuth2.x, SAML2, Passwordless with FIDO2 (including Passkeys), OTP, U2F, and an unlimited audit trail is there for you, ready to use. +Multi-tenancy with branding customization, secure login, self-service, OpenID Connect, OAuth2.x, SAML2, LDAP, Passwordless with FIDO2 (including Passkeys), OTP, U2F, and an unlimited audit trail is there for you, ready to use. With ZITADEL you can rely on a hardened and extensible turnkey solution to solve all of your authentication and authorization needs. @@ -90,20 +90,34 @@ Yet it offers everything you need for a customer identity ([CIAM](https://zitade ## Features +Authentication - Single Sign On (SSO) - Passwordless with FIDO2 support (Including Passkeys) - Username / Password -- Multifactor authentication with OTP, U2F -- [Identity Brokering](https://zitadel.com/docs/guides/integrate/identity-brokering) -- [Machine-to-machine (JWT profile)](https://zitadel.com/docs/guides/integrate/serviceusers) -- Personal Access Tokens (PAT) -- Role Based Access Control (RBAC) -- [Delegate role management to third-parties](https://zitadel.com/docs/guides/manage/console/projects) -- [Self-registration](https://zitadel.com/docs/concepts/features/selfservice#registration) including verification -- [Self-service](https://zitadel.com/docs/concepts/features/selfservice) for end-users, business customers, and administrators +- Multifactor authentication with OTP, U2F, SMS +- LDAP - [OpenID Connect certified](https://openid.net/certification/#OPs) => [OIDC Endpoints](https://zitadel.com/docs/apis/openidoauth/endpoints) - [SAML 2.0](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html) => [SAML Endpoints](https://zitadel.com/docs/apis/saml/endpoints) +- [Machine-to-machine](https://zitadel.com/docs/guides/integrate/serviceusers) with JWT profile, Personal Access Tokens (PAT), and Client Credentials + +Multi-Tenancy +- [Identity Brokering](https://zitadel.com/docs/guides/integrate/identity-brokering) with templates for popular identity providers +- [Delegate role management to third-parties](https://zitadel.com/docs/guides/manage/console/projects) +- Domain discovery + +Integration +- [GRPC and REST APIs](https://zitadel.com/docs/apis/introduction) +- [Actions](https://zitadel.com/docs/apis/actions/introduction) to call any API, send webhooks, adjust workflows, or customize tokens +- Role Based Access Control (RBAC) + +Self-Service +- [Self-registration](https://zitadel.com/docs/concepts/features/selfservice#registration) including verification +- [Self-service](https://zitadel.com/docs/concepts/features/selfservice) for end-users, business customers, and administrators +- [Administration UI (Console)](https://zitadel.com/docs/guides/manage/console/overview) + +Deployment - [Postgres](https://zitadel.com/docs/self-hosting/manage/database#postgres) (version >= 14) or [CockroachDB](https://zitadel.com/docs/self-hosting/manage/database#cockroach) (version >= 22.0) +- [Zero Downtime Updates](https://zitadel.com/docs/concepts/architecture/solution#zero-downtime-updates) Track upcoming features on our [roadmap](https://zitadel.com/roadmap). diff --git a/build/zitadel/generate-grpc.sh b/build/zitadel/generate-grpc.sh index 93053eedb5..02d1fa86b1 100755 --- a/build/zitadel/generate-grpc.sh +++ b/build/zitadel/generate-grpc.sh @@ -93,4 +93,36 @@ protoc \ mv ${ZITADEL_PATH}/pkg/grpc/auth/zitadel/* ${ZITADEL_PATH}/pkg/grpc/auth rm -r ${ZITADEL_PATH}/pkg/grpc/auth/zitadel +protoc \ + -I=/proto/include \ + --grpc-gateway_out ${GOPATH}/src \ + --grpc-gateway_opt logtostderr=true \ + --grpc-gateway_opt allow_delete_body=true \ + --openapiv2_out ${OPENAPI_PATH} \ + --openapiv2_opt logtostderr=true \ + --openapiv2_opt allow_delete_body=true \ + --authoption_out=${GRPC_PATH}/user \ + --validate_out=lang=go:${GOPATH}/src \ + ${PROTO_PATH}/user/v2alpha/user_service.proto + +# authoptions are generated into the wrong folder +cp -r ${ZITADEL_PATH}/pkg/grpc/user/zitadel/* ${ZITADEL_PATH}/pkg/grpc +rm -r ${ZITADEL_PATH}/pkg/grpc/user/zitadel + +protoc \ + -I=/proto/include \ + --grpc-gateway_out ${GOPATH}/src \ + --grpc-gateway_opt logtostderr=true \ + --grpc-gateway_opt allow_delete_body=true \ + --openapiv2_out ${OPENAPI_PATH} \ + --openapiv2_opt logtostderr=true \ + --openapiv2_opt allow_delete_body=true \ + --authoption_out=${GRPC_PATH}/session \ + --validate_out=lang=go:${GOPATH}/src \ + ${PROTO_PATH}/session/v2alpha/session_service.proto + +# authoptions are generated into the wrong folder +cp -r ${ZITADEL_PATH}/pkg/grpc/session/zitadel/* ${ZITADEL_PATH}/pkg/grpc +rm -r ${ZITADEL_PATH}/pkg/grpc/session/zitadel + echo "done generating grpc" diff --git a/cmd/defaults.yaml b/cmd/defaults.yaml index 625a03dafc..8996e384c6 100644 --- a/cmd/defaults.yaml +++ b/cmd/defaults.yaml @@ -554,7 +554,7 @@ DefaultInstance: Title: Zitadel - User initialisieren PreHeader: User initialisieren Subject: User initialisieren - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Dieser Benutzer wurde soeben im Zitadel erstellt. Mit dem Benutzernamen <br><strong>{{.PreferredLoginName}}</strong><br> kannst du dich anmelden. Nutze den untenstehenden Button, um die Initialisierung abzuschliessen <br>(Code <strong>{{.Code}}</strong>).<br> Falls du dieses Mail nicht angefordert hast, kannst du es einfach ignorieren. ButtonText: Initialisierung abschliessen - MessageTextType: PasswordReset @@ -562,7 +562,7 @@ DefaultInstance: Title: Zitadel - Passwort zurücksetzen PreHeader: Passwort zurücksetzen Subject: Passwort zurücksetzen - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Wir haben eine Anfrage für das Zurücksetzen deines Passwortes bekommen. Du kannst den untenstehenden Button verwenden, um dein Passwort zurückzusetzen <br>(Code <strong>{{.Code}}</strong>).<br> Falls du dieses Mail nicht angefordert hast, kannst du es ignorieren. ButtonText: Passwort zurücksetzen - MessageTextType: VerifyEmail @@ -570,7 +570,7 @@ DefaultInstance: Title: Zitadel - Email verifizieren PreHeader: Email verifizieren Subject: Email verifizieren - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Eine neue E-Mail Adresse wurde hinzugefügt. Bitte verwende den untenstehenden Button um diese zu verifizieren <br>(Code <strong>{{.Code}}</strong>).<br> Falls du deine E-Mail Adresse nicht selber hinzugefügt hast, kannst du dieses E-Mail ignorieren. ButtonText: Email verifizieren - MessageTextType: VerifyPhone @@ -578,7 +578,7 @@ DefaultInstance: Title: Zitadel - Telefonnummer verifizieren PreHeader: Telefonnummer verifizieren Subject: Telefonnummer verifizieren - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Eine Telefonnummer wurde hinzugefügt. Bitte verifiziere diese in dem du folgenden Code eingibst (Code {{.Code}}) ButtonText: Telefon verifizieren - MessageTextType: DomainClaimed @@ -586,7 +586,7 @@ DefaultInstance: Title: Zitadel - Domain wurde beansprucht PreHeader: Email / Username ändern Subject: Domain wurde beansprucht - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Die Domain {{.Domain}} wurde von einer Organisation beansprucht. Dein derzeitiger User {{.Username}} ist nicht Teil dieser Organisation. Daher musst du beim nächsten Login eine neue Email hinterlegen. Für diesen Login haben wir dir einen temporären Usernamen ({{.TempUsername}}) erstellt. ButtonText: Login - MessageTextType: PasswordChange @@ -594,7 +594,7 @@ DefaultInstance: Title: ZITADEL - Passwort von Benutzer wurde geändert PreHeader: Passwort Änderung Subject: Passwort von Benutzer wurde geändert - Greeting: Hallo {{.FirstName}} {{.LastName}}, + Greeting: Hallo {{.DisplayName}}, Text: Das Password vom Benutzer wurde geändert. Wenn diese Änderung von jemand anderem gemacht wurde, empfehlen wir die sofortige Zurücksetzung ihres Passworts. ButtonText: Login - MessageTextType: InitCode @@ -602,7 +602,7 @@ DefaultInstance: Title: Zitadel - Initialize User PreHeader: Initialize User Subject: Initialize User - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: This user was created in Zitadel. Use the username {{.PreferredLoginName}} to login. Please click the button below to finish the initialization process. (Code {{.Code}}) If you didn't ask for this mail, please ignore it. ButtonText: Finish initialization - MessageTextType: PasswordReset @@ -610,7 +610,7 @@ DefaultInstance: Title: Zitadel - Reset password PreHeader: Reset password Subject: Reset password - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: We received a password reset request. Please use the button below to reset your password. (Code {{.Code}}) If you didn't ask for this mail, please ignore it. ButtonText: Reset password - MessageTextType: VerifyEmail @@ -618,7 +618,7 @@ DefaultInstance: Title: Zitadel - Verify email PreHeader: Verify email Subject: Verify email - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: A new email has been added. Please use the button below to verify your mail. (Code {{.Code}}) If you din't add a new email, please ignore this email. ButtonText: Verify email - MessageTextType: VerifyPhone @@ -626,7 +626,7 @@ DefaultInstance: Title: Zitadel - Verify phone PreHeader: Verify phone Subject: Verify phone - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: A new phonenumber has been added. Please use the following code to verify it {{.Code}}. ButtonText: Verify phone - MessageTextType: DomainClaimed @@ -634,7 +634,7 @@ DefaultInstance: Title: Zitadel - Domain has been claimed PreHeader: Change email / username Subject: Domain has been claimed - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: The domain {{.Domain}} has been claimed by an organisation. Your current user {{.UserName}} is not part of this organisation. Therefore you'll have to change your email when you login. We have created a temporary username ({{.TempUsername}}) for this login. ButtonText: Login - MessageTextType: PasswordChange @@ -642,7 +642,7 @@ DefaultInstance: Title: ZITADEL - Password of user has changed PreHeader: Change password Subject: Password of user has changed - Greeting: Hello {{.FirstName}} {{.LastName}}, + Greeting: Hello {{.DisplayName}}, Text: The password of your user has changed. If this change was not done by you, please be advised to immediately reset your password. ButtonText: Login diff --git a/cmd/setup/10.go b/cmd/setup/10.go new file mode 100644 index 0000000000..77db7c6c5e --- /dev/null +++ b/cmd/setup/10.go @@ -0,0 +1,53 @@ +package setup + +import ( + "context" + _ "embed" + + "github.com/zitadel/logging" + + "github.com/zitadel/zitadel/internal/database" +) + +var ( + //go:embed 10.sql + correctCreationDate10 string +) + +type CorrectCreationDate struct { + dbClient *database.DB +} + +func (mig *CorrectCreationDate) Execute(ctx context.Context) (err error) { + tx, err := mig.dbClient.Begin() + if err != nil { + return err + } + if mig.dbClient.Type() == "cockroach" { + if _, err := tx.Exec("SET experimental_enable_temp_tables=on"); err != nil { + return err + } + } + defer func() { + if err != nil { + logging.OnError(tx.Rollback()).Debug("rollback failed") + return + } + err = tx.Commit() + }() + for { + res, err := tx.ExecContext(ctx, correctCreationDate10) + if err != nil { + return err + } + affected, _ := res.RowsAffected() + logging.WithFields("count", affected).Info("creation dates changed") + if affected == 0 { + return nil + } + } +} + +func (mig *CorrectCreationDate) String() string { + return "10_correct_creation_date" +} diff --git a/cmd/setup/10.sql b/cmd/setup/10.sql new file mode 100644 index 0000000000..ae2af741dc --- /dev/null +++ b/cmd/setup/10.sql @@ -0,0 +1,28 @@ +CREATE temporary TABLE IF NOT EXISTS wrong_events ( + instance_id STRING + , event_sequence INT8 + , current_cd TIMESTAMPTZ + , next_cd TIMESTAMPTZ +); + +TRUNCATE wrong_events; + +INSERT INTO wrong_events ( + SELECT * FROM ( + SELECT + instance_id + , event_sequence + , creation_date AS current_cd + , lead(creation_date) OVER ( + PARTITION BY instance_id + ORDER BY event_sequence DESC + ) AS next_cd + FROM + eventstore.events + ) WHERE + current_cd < next_cd + ORDER BY + event_sequence DESC +); + +UPDATE eventstore.events e SET creation_date = we.next_cd FROM wrong_events we WHERE e.event_sequence = we.event_sequence and e.instance_id = we.instance_id; \ No newline at end of file diff --git a/cmd/setup/config.go b/cmd/setup/config.go index e557676047..eb55ba492a 100644 --- a/cmd/setup/config.go +++ b/cmd/setup/config.go @@ -56,15 +56,16 @@ func MustNewConfig(v *viper.Viper) *Config { } type Steps struct { - s1ProjectionTable *ProjectionTable - s2AssetsTable *AssetTable - FirstInstance *FirstInstance - s4EventstoreIndexes *EventstoreIndexesNew - s5LastFailed *LastFailed - s6OwnerRemoveColumns *OwnerRemoveColumns - s7LogstoreTables *LogstoreTables - s8AuthTokens *AuthTokenIndexes - s9EventstoreIndexes2 *EventstoreIndexesNew + s1ProjectionTable *ProjectionTable + s2AssetsTable *AssetTable + FirstInstance *FirstInstance + s4EventstoreIndexes *EventstoreIndexesNew + s5LastFailed *LastFailed + s6OwnerRemoveColumns *OwnerRemoveColumns + s7LogstoreTables *LogstoreTables + s8AuthTokens *AuthTokenIndexes + s9EventstoreIndexes2 *EventstoreIndexesNew + s10EventstoreCreationDate *CorrectCreationDate } type encryptionKeyConfig struct { diff --git a/cmd/setup/setup.go b/cmd/setup/setup.go index bc37decb58..a7deef0071 100644 --- a/cmd/setup/setup.go +++ b/cmd/setup/setup.go @@ -88,6 +88,7 @@ func Setup(config *Config, steps *Steps, masterKey string) { steps.s7LogstoreTables = &LogstoreTables{dbClient: dbClient.DB, username: config.Database.Username(), dbType: config.Database.Type()} steps.s8AuthTokens = &AuthTokenIndexes{dbClient: dbClient} steps.s9EventstoreIndexes2 = New09(dbClient) + steps.s10EventstoreCreationDate = &CorrectCreationDate{dbClient: dbClient} err = projection.Create(ctx, dbClient, eventstoreClient, config.Projections, nil, nil) logging.OnError(err).Fatal("unable to start projections") @@ -123,6 +124,8 @@ func Setup(config *Config, steps *Steps, masterKey string) { logging.OnError(err).Fatal("unable to migrate step 8") err = migration.Migrate(ctx, eventstoreClient, steps.s9EventstoreIndexes2) logging.OnError(err).Fatal("unable to migrate step 9") + err = migration.Migrate(ctx, eventstoreClient, steps.s10EventstoreCreationDate) + logging.OnError(err).Fatal("unable to migrate step 10") for _, repeatableStep := range repeatableSteps { err = migration.Migrate(ctx, eventstoreClient, repeatableStep) diff --git a/cmd/start/start.go b/cmd/start/start.go index f01060bef4..f80fc6fef1 100644 --- a/cmd/start/start.go +++ b/cmd/start/start.go @@ -33,7 +33,9 @@ import ( "github.com/zitadel/zitadel/internal/api/grpc/admin" "github.com/zitadel/zitadel/internal/api/grpc/auth" "github.com/zitadel/zitadel/internal/api/grpc/management" + "github.com/zitadel/zitadel/internal/api/grpc/session/v2" "github.com/zitadel/zitadel/internal/api/grpc/system" + "github.com/zitadel/zitadel/internal/api/grpc/user/v2" http_util "github.com/zitadel/zitadel/internal/api/http" "github.com/zitadel/zitadel/internal/api/http/middleware" "github.com/zitadel/zitadel/internal/api/oidc" @@ -223,7 +225,10 @@ func startAPIs( logging.Warn("access logs are currently in beta") } accessInterceptor := middleware.NewAccessInterceptor(accessSvc, config.Quotas.Access) - apis := api.New(config.Port, router, queries, verifier, config.InternalAuthZ, tlsConfig, config.HTTP2HostHeader, config.HTTP1HostHeader, accessSvc) + apis, err := api.New(ctx, config.Port, router, queries, verifier, config.InternalAuthZ, tlsConfig, config.HTTP2HostHeader, config.HTTP1HostHeader, accessSvc) + if err != nil { + return fmt.Errorf("error creating api %w", err) + } authRepo, err := auth_es.Start(ctx, config.Auth, config.SystemDefaults, commands, queries, dbClient, eventstore, keys.OIDC, keys.User) if err != nil { return fmt.Errorf("error starting auth repo: %w", err) @@ -244,9 +249,15 @@ func startAPIs( if err := apis.RegisterServer(ctx, auth.CreateServer(commands, queries, authRepo, config.SystemDefaults, keys.User, config.ExternalSecure, config.AuditLogRetention)); err != nil { return err } + if err := apis.RegisterService(ctx, user.CreateServer(commands, queries)); err != nil { + return err + } + if err := apis.RegisterService(ctx, session.CreateServer(commands, queries)); err != nil { + return err + } instanceInterceptor := middleware.InstanceInterceptor(queries, config.HTTP1HostHeader, login.IgnoreInstanceEndpoints...) assetsCache := middleware.AssetsCacheInterceptor(config.AssetStorage.Cache.MaxAge, config.AssetStorage.Cache.SharedMaxAge) - apis.RegisterHandler(assets.HandlerPrefix, assets.NewHandler(commands, verifier, config.InternalAuthZ, id.SonyFlakeGenerator(), store, queries, middleware.CallDurationHandler, instanceInterceptor.Handler, assetsCache.Handler, accessInterceptor.Handle)) + apis.RegisterHandlerOnPrefix(assets.HandlerPrefix, assets.NewHandler(commands, verifier, config.InternalAuthZ, id.SonyFlakeGenerator(), store, queries, middleware.CallDurationHandler, instanceInterceptor.Handler, assetsCache.Handler, accessInterceptor.Handle)) userAgentInterceptor, err := middleware.NewUserAgentHandler(config.UserAgentCookie, keys.UserAgentCookieKey, id.SonyFlakeGenerator(), config.ExternalSecure, login.EndpointResources) if err != nil { @@ -258,37 +269,34 @@ func startAPIs( if err != nil { return fmt.Errorf("unable to start openapi handler: %w", err) } - apis.RegisterHandler(openapi.HandlerPrefix, openAPIHandler) + apis.RegisterHandlerOnPrefix(openapi.HandlerPrefix, openAPIHandler) - oidcProvider, err := oidc.NewProvider(ctx, config.OIDC, login.DefaultLoggedOutPath, config.ExternalSecure, commands, queries, authRepo, keys.OIDC, keys.OIDCKey, eventstore, dbClient, userAgentInterceptor, instanceInterceptor.Handler, accessInterceptor.Handle) + oidcProvider, err := oidc.NewProvider(config.OIDC, login.DefaultLoggedOutPath, config.ExternalSecure, commands, queries, authRepo, keys.OIDC, keys.OIDCKey, eventstore, dbClient, userAgentInterceptor, instanceInterceptor.Handler, accessInterceptor.Handle) if err != nil { return fmt.Errorf("unable to start oidc provider: %w", err) } + apis.RegisterHandlerPrefixes(oidcProvider.HttpHandler(), "/.well-known/openid-configuration", "/oidc/v1", "/oauth/v2") - samlProvider, err := saml.NewProvider(ctx, config.SAML, config.ExternalSecure, commands, queries, authRepo, keys.OIDC, keys.SAML, eventstore, dbClient, instanceInterceptor.Handler, userAgentInterceptor, accessInterceptor.Handle) + samlProvider, err := saml.NewProvider(config.SAML, config.ExternalSecure, commands, queries, authRepo, keys.OIDC, keys.SAML, eventstore, dbClient, instanceInterceptor.Handler, userAgentInterceptor, accessInterceptor.Handle) if err != nil { return fmt.Errorf("unable to start saml provider: %w", err) } - apis.RegisterHandler(saml.HandlerPrefix, samlProvider.HttpHandler()) + apis.RegisterHandlerOnPrefix(saml.HandlerPrefix, samlProvider.HttpHandler()) c, err := console.Start(config.Console, config.ExternalSecure, oidcProvider.IssuerFromRequest, middleware.CallDurationHandler, instanceInterceptor.Handler, accessInterceptor.Handle, config.CustomerPortal) if err != nil { return fmt.Errorf("unable to start console: %w", err) } - apis.RegisterHandler(console.HandlerPrefix, c) + apis.RegisterHandlerOnPrefix(console.HandlerPrefix, c) l, err := login.CreateLogin(config.Login, commands, queries, authRepo, store, console.HandlerPrefix+"/", op.AuthCallbackURL(oidcProvider), provider.AuthCallbackURL(samlProvider), config.ExternalSecure, userAgentInterceptor, op.NewIssuerInterceptor(oidcProvider.IssuerFromRequest).Handler, provider.NewIssuerInterceptor(samlProvider.IssuerFromRequest).Handler, instanceInterceptor.Handler, assetsCache.Handler, accessInterceptor.Handle, keys.User, keys.IDPConfig, keys.CSRFCookieKey) if err != nil { return fmt.Errorf("unable to start login: %w", err) } - apis.RegisterHandler(login.HandlerPrefix, l.Handler()) + apis.RegisterHandlerOnPrefix(login.HandlerPrefix, l.Handler()) - //handle oidc at last, to be able to handle the root - //we might want to change that in the future - //esp. if we want to have multiple well-known endpoints - //it might make sense to handle the discovery endpoint and oauth and oidc prefixes individually - //but this will require a change in the oidc lib - apis.RegisterHandler("", oidcProvider.HttpHandler()) + // handle grpc at last to be able to handle the root, because grpc and gateway require a lot of different prefixes + apis.RouteGRPC() return nil } diff --git a/console/.browserslistrc b/console/.browserslistrc deleted file mode 100644 index 80848532e4..0000000000 --- a/console/.browserslistrc +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/console/angular.json b/console/angular.json index b369ec7795..ec2bab7847 100644 --- a/console/angular.json +++ b/console/angular.json @@ -22,6 +22,7 @@ "main": "src/main.ts", "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", "assets": ["src/favicon.ico", "src/assets", "src/manifest.webmanifest"], "styles": ["src/styles.scss"], "scripts": ["./node_modules/tinycolor2/dist/tinycolor-min.js"], @@ -33,59 +34,16 @@ "@angular/common/locales/de", "codemirror/mode/javascript/javascript", "codemirror/mode/xml/xml", - "src/app/proto/generated/zitadel/admin_pb", - "src/app/proto/generated/zitadel/org_pb", - "src/app/proto/generated/zitadel/management_pb", - "src/app/proto/generated/zitadel/user_pb", - "src/app/proto/generated/**", - "google-protobuf/google/protobuf/empty_pb", "file-saver", "qrcode" - ], - "vendorChunk": true, - "extractLicenses": false, - "buildOptimizer": false, - "sourceMap": true, - "optimization": { - "scripts": true, - "fonts": { - "inline": true - }, - "styles": { - "minify": true, - "inlineCritical": false - } - }, - "namedChunks": true + ] }, "configurations": { "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": { - "scripts": true, - "fonts": { - "inline": false - }, - "styles": { - "minify": true, - "inlineCritical": false - } - }, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, "budgets": [ { "type": "initial", - "maximumWarning": "7mb", + "maximumWarning": "6mb", "maximumError": "7mb" }, { @@ -94,16 +52,21 @@ "maximumError": "10kb" } ], - "serviceWorker": false, - "ngswConfigPath": "ngsw-config.json" + "outputHashing": "all" }, - "development": {} + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } }, - "defaultConfiguration": "production" + "defaultConfiguration": "development" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", - "options": {}, "configurations": { "production": { "browserTarget": "console:build:production" @@ -123,13 +86,12 @@ "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "main": "src/test.ts", - "polyfills": ["zone.js"], + "polyfills": ["zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", - "karmaConfig": "karma.conf.js", - "assets": ["src/favicon.ico", "src/assets", "src/manifest.webmanifest"], - "styles": ["./node_modules/@angular/material/prebuilt-themes/pink-bluegrey.css", "src/styles.scss"], - "scripts": ["./node_modules/tinycolor2/dist/tinycolor-min.js"] + "inlineStyleLanguage": "scss", + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.scss"], + "scripts": [] } }, "lint": { @@ -137,35 +99,12 @@ "options": { "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"] } - }, - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js" - }, - "configurations": { - "production": { - "devServerTarget": "console:serve:production" - }, - "development": { - "devServerTarget": "console:serve:development" - } - }, - "defaultConfiguration": "development" } } } }, "cli": { - "analytics": "2b4e8e6c-f053-4562-b7a6-00c6c06a6791", + "analytics": false, "schematicCollections": ["@angular-eslint/schematics"] - }, - "schematics": { - "@angular-eslint/schematics:application": { - "setParserOptionsProject": true - }, - "@angular-eslint/schematics:library": { - "setParserOptionsProject": true - } } } diff --git a/console/package-lock.json b/console/package-lock.json index 70a17dc527..f8ea65a828 100644 --- a/console/package-lock.json +++ b/console/package-lock.json @@ -8,18 +8,18 @@ "name": "console", "version": "0.0.0", "dependencies": { - "@angular/animations": "^15.2.2", - "@angular/cdk": "^15.2.2", - "@angular/common": "^15.2.2", - "@angular/compiler": "^15.2.2", - "@angular/core": "^15.2.2", - "@angular/forms": "^15.2.2", - "@angular/material": "^15.2.2", - "@angular/material-moment-adapter": "^15.2.2", - "@angular/platform-browser": "^15.2.2", - "@angular/platform-browser-dynamic": "^15.2.2", - "@angular/router": "^15.2.2", - "@angular/service-worker": "^15.2.2", + "@angular/animations": "^15.2.6", + "@angular/cdk": "^15.2.6", + "@angular/common": "^15.2.6", + "@angular/compiler": "^15.2.6", + "@angular/core": "^15.2.6", + "@angular/forms": "^15.2.6", + "@angular/material": "^15.2.6", + "@angular/material-moment-adapter": "^15.2.6", + "@angular/platform-browser": "^15.2.6", + "@angular/platform-browser-dynamic": "^15.2.6", + "@angular/router": "^15.2.6", + "@angular/service-worker": "^15.2.6", "@ctrl/ngx-codemirror": "^6.1.0", "@grpc/grpc-js": "^1.8.12", "@ngx-translate/core": "^14.0.0", @@ -37,7 +37,7 @@ "google-protobuf": "^3.21.2", "grpc-web": "^1.4.1", "i18n-iso-countries": "^7.5.0", - "libphonenumber-js": "^1.10.19", + "libphonenumber-js": "^1.10.24", "material-design-icons-iconfont": "^6.1.1", "moment": "^2.29.4", "ngx-color": "^8.0.3", @@ -45,36 +45,36 @@ "tinycolor2": "^1.6.0", "tslib": "^2.4.1", "uuid": "^9.0.0", - "zone.js": "~0.12.0" + "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.2", - "@angular-eslint/builder": "^15.2.1", - "@angular-eslint/eslint-plugin": "^15.2.1", - "@angular-eslint/eslint-plugin-template": "^15.2.1", - "@angular-eslint/schematics": "^15.2.1", - "@angular-eslint/template-parser": "^15.2.1", - "@angular/cli": "^15.2.2", - "@angular/compiler-cli": "^15.2.2", - "@angular/language-service": "^15.2.2", + "@angular-devkit/build-angular": "^15.2.5", + "@angular-eslint/builder": "15.2.1", + "@angular-eslint/eslint-plugin": "15.2.1", + "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/schematics": "15.2.1", + "@angular-eslint/template-parser": "15.2.1", + "@angular/cli": "^15.2.5", + "@angular/compiler-cli": "^15.2.6", + "@angular/language-service": "^15.2.6", "@bufbuild/buf": "^1.14.0", "@types/jasmine": "~4.3.0", "@types/jasminewd2": "~2.0.10", "@types/jsonwebtoken": "^9.0.1", - "@types/node": "^18.13.0", + "@types/node": "^18.15.11", "@types/qrcode": "^1.5.0", - "@typescript-eslint/eslint-plugin": "5.54.1", - "@typescript-eslint/parser": "5.54.1", + "@typescript-eslint/eslint-plugin": "5.48.2", + "@typescript-eslint/parser": "5.48.2", "codelyzer": "^6.0.2", "eslint": "^8.33.0", - "jasmine-core": "~4.5.0", + "jasmine-core": "~4.6.0", "jasmine-spec-reporter": "~7.0.0", "karma": "~6.4.1", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.0.0", - "prettier": "^2.8.4", + "prettier": "^2.8.7", "prettier-plugin-organize-imports": "^3.2.2", "protractor": "~7.0.0", "typescript": "^4.9.5" @@ -82,8 +82,9 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -93,12 +94,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1502.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.2.tgz", - "integrity": "sha512-+NE2IV+tuPgcBdC+1ac7eYIBqZDH0VskXTqbhHiRKySbK0vF3/cwTw6Ie07phl0xC1dxLXeRE52L5YwX5jERFQ==", + "version": "0.1502.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.5.tgz", + "integrity": "sha512-6KVrXQ/X7W88WSJvYe69ed/2QzQNlObKpj3BWzmcKnA+IvJB37/mvw8VaGFP9y+pDa/b1D1yCDtAJLeP5QY3xg==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.2", + "@angular-devkit/core": "15.2.5", "rxjs": "6.6.7" }, "engines": { @@ -126,15 +127,15 @@ "dev": true }, "node_modules/@angular-devkit/build-angular": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.2.tgz", - "integrity": "sha512-iSav72D66ZguuIg7yZz/VcbrITidRmjBUApu1GAVfXd4rYZhdWygR072LAsAUNnSDAGwmIICFzj86c8LxYOtzA==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.5.tgz", + "integrity": "sha512-D2LxjBtUlgJnPxybOIN0XsENEGkVkqCGBBii5oK84HvgBHXO/EyP1WXpOdb2lOYSUZyjhOOs0q42LCobJoaxUw==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1502.2", - "@angular-devkit/build-webpack": "0.1502.2", - "@angular-devkit/core": "15.2.2", + "@angular-devkit/architect": "0.1502.5", + "@angular-devkit/build-webpack": "0.1502.5", + "@angular-devkit/core": "15.2.5", "@babel/core": "7.20.12", "@babel/generator": "7.20.14", "@babel/helper-annotate-as-pure": "7.18.6", @@ -146,7 +147,7 @@ "@babel/runtime": "7.20.13", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.2.2", + "@ngtools/webpack": "15.2.5", "ansi-colors": "4.1.3", "autoprefixer": "10.4.13", "babel-loader": "9.1.2", @@ -186,7 +187,7 @@ "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.5.0", - "webpack": "5.75.0", + "webpack": "5.76.1", "webpack-dev-middleware": "6.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0", @@ -235,59 +236,11 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.20.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -297,16 +250,17 @@ }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1502.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.2.tgz", - "integrity": "sha512-y/K6mi4oYjxdSuktdI/HznfxwWc2U8d6SJHdQeoPA6TRsBbWjEk1gcOt3f54PIsExLiDe6Oq1KjbfLTpNSu0kA==", + "version": "0.1502.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.5.tgz", + "integrity": "sha512-gPkAa4AvQ7BxU+jmVJqrAO18kw/6iks+VUQ+2BVPyHCdqhroANHYdGbZ/pFlZdPmZVzSpusjd6VIbLhbHr/Ohw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.2", + "@angular-devkit/architect": "0.1502.5", "rxjs": "6.6.7" }, "engines": { @@ -338,9 +292,9 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.2.tgz", - "integrity": "sha512-YPwDSldpVcuSJuIkXy5iRzaPA78ySXKc80OicHR6XtMsrHlwY7DuxQoSWr+ih9LAqpeeBz9ECMalztwohdy0MA==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.5.tgz", + "integrity": "sha512-ZfjEkAe2yYeekc3xjZ/U4pK9nb+w6BFwAEjou6mE8PWZH7iYskm0YCCXkmu+B+zViEcCLhAkJAxu9MwX4efd8g==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -382,12 +336,12 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.2.tgz", - "integrity": "sha512-i1yQzzv1bJtVrhWPixdXg61nkR/mO5/mQ6SA8rq9t0NAjs4W08MBZ6TUspPvt4iLy9+W6pImW45tUmnfkdhhdQ==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.5.tgz", + "integrity": "sha512-zm7chQRQtPXQzzSAvK/mbZ+RJ3eP7hlU53yyJ/i6kjWAh3Y5uiSHNYGmqhhAHFuzw4Jhb4OC2S9iycxrqmI8TA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.2", + "@angular-devkit/core": "15.2.5", "jsonc-parser": "3.2.0", "magic-string": "0.29.0", "ora": "5.4.1", @@ -399,18 +353,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/magic-string": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", - "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -522,9 +464,9 @@ } }, "node_modules/@angular/animations": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.2.tgz", - "integrity": "sha512-2XYJn+my4Gf02QAziO+WJJLOQyw0Ao79xAp6IWj/rUOCxNDlRPY3TwoMqLZVtjSmWxSdmx/fPqd393vPawrPLg==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.2.6.tgz", + "integrity": "sha512-2fEhhj7xTzWHD61B502eXwDclsurkOK7CU+iRdl8EAtEobLRt62sG/XHmJ71UaaniWyI/H0sUSEJuF8TIPcaoQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -532,13 +474,13 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.2" + "@angular/core": "15.2.6" } }, "node_modules/@angular/cdk": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.2.2.tgz", - "integrity": "sha512-mgh8QCJUmxVNT+vX7A3GDp48NVZ/CUrBBXN7ZGYs8hrupLyHLerjadWX8pRa7XIOJzreoOOdHH5THc51+SCGJw==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.2.6.tgz", + "integrity": "sha512-c6XFKMFowllHxb4tUt9en3bXBDqXKG2k4O9XGggJ1TL668d3Uhlk9qULywFNVWmNQSamkERmhFKAN4hEO3TPAQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -552,15 +494,15 @@ } }, "node_modules/@angular/cli": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.2.tgz", - "integrity": "sha512-r0VrQ+3CHp/y6GHzWDD8CPRqtAuV2iUZ1pbl4AiCnjAlUpPBXJMkJ2kzFn6rTlMoqPeFBnjyhTWyL/azi7GEcw==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.5.tgz", + "integrity": "sha512-TmkkeJkdfDkC6b2SNQcLlr1rsl2anc5rrrY3gawOVXYXBExMxAi2SNJsHZzUXfiitW52aZkAyajF1VFazs8PRw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1502.2", - "@angular-devkit/core": "15.2.2", - "@angular-devkit/schematics": "15.2.2", - "@schematics/angular": "15.2.2", + "@angular-devkit/architect": "0.1502.5", + "@angular-devkit/core": "15.2.5", + "@angular-devkit/schematics": "15.2.5", + "@schematics/angular": "15.2.5", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -586,9 +528,9 @@ } }, "node_modules/@angular/common": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.2.tgz", - "integrity": "sha512-407yHyMR5CGFWjZPeiBNHa4UKwOTTMCNn7gmfi243AxIaPjIHwCDvIOx2w5OfrV+OUKSMIuqMRHLP4eUYkJDjA==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.6.tgz", + "integrity": "sha512-kPGJoSkFPXsIeHzcjlal8JC8/jYK9qAr+wv+HDX8O1J2FEzQjwoX4SYvpnvVk5WTqUkxMkRCTMu2YFAAmU1+qg==", "dependencies": { "tslib": "^2.3.0" }, @@ -596,14 +538,14 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.2", + "@angular/core": "15.2.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.2.tgz", - "integrity": "sha512-Zv2XpyOoiRDzTxkB5YaMx8egEf7hkVYkCSPvES5IXAlcs4lA1SdWHiNk7zstGMjqQlMt6RNgN8E+2BYrOJh6DQ==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.6.tgz", + "integrity": "sha512-6oBAIY5KcC1UNsrnWGLcopZ9RD7c0HzpTCQY46N6HytHtUjBvzLbGWZu5MfahPtIjKz9FMVYBX9hugcbVpWnTA==", "dependencies": { "tslib": "^2.3.0" }, @@ -611,7 +553,7 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.2.2" + "@angular/core": "15.2.6" }, "peerDependenciesMeta": { "@angular/core": { @@ -620,9 +562,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.2.tgz", - "integrity": "sha512-tS4RrqA0JI37rsqtTjKqkpP9pD21pG+Wxqki3X/w/tjISh7xuXCyG6vSbOsAjXAqkC8LwJN1S1IF1zp4F+mcLQ==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.6.tgz", + "integrity": "sha512-GHwL4l+NkaUGGdypF+nMFWCmTqvGusTzIriIwpnp38wc8lpmVME2jVodB6sHAkrxFmaHXU/gOCDFK4AnOi6Gmw==", "dev": true, "dependencies": { "@babel/core": "7.19.3", @@ -645,7 +587,7 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.2.2", + "@angular/compiler": "15.2.6", "typescript": ">=4.8.2 <5.0" } }, @@ -688,10 +630,22 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@angular/core": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.2.tgz", - "integrity": "sha512-Rn9LKeeryV0hVrOxlOPnQJdgUxbKdB8NByhptzB6XSzZ0ODx0ZN+iYVRLqu0Fu95zh5oSeYYU+2yT6+FIIX65w==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.6.tgz", + "integrity": "sha512-eN46OfSOLQGN6AciUvyHOJ8xQxmiEakkxJeoG1jwcSRXCjwSYYnQ/6drnhUpq5p43XXBAIduKfJXNztEPvLAkA==", "dependencies": { "tslib": "^2.3.0" }, @@ -704,9 +658,9 @@ } }, "node_modules/@angular/forms": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.2.tgz", - "integrity": "sha512-X2cXhD8gQBn03RZJ5XD2mgf90vyeH2HABbNLelv3GCQRgn4SCTHM4cP1J9OCdX0r6cz+JBjz13fDChdWb624Mg==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.6.tgz", + "integrity": "sha512-SdZxsE9MUOVMz0FjOwtx1RN/SGpObnAyZBqXNrN0c4BmJg+faJzvKIBBN102CKpWZOGRoq2YYrgxow9StMhxTw==", "dependencies": { "tslib": "^2.3.0" }, @@ -714,25 +668,25 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.2", - "@angular/core": "15.2.2", - "@angular/platform-browser": "15.2.2", + "@angular/common": "15.2.6", + "@angular/core": "15.2.6", + "@angular/platform-browser": "15.2.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-15.2.2.tgz", - "integrity": "sha512-U91MPkBULdvzYXeuuah+n6AUEJ335C0MRUrDGHS1XfD3QQd/+nvC2lgGz9g1qhW9iYO4SNKOtIFSsUAavHQdVQ==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-15.2.6.tgz", + "integrity": "sha512-q6u4XhFReJ3GtA7dC5rJaEBQPjJUjOz9PlwHSOxZxugFP99ddDNBBFd0caa446G54kQdZFG7j7w7BiAp2/srmQ==", "dev": true, "engines": { "node": "^14.20.0 || ^16.13.0 || >=18.10.0" } }, "node_modules/@angular/material": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-15.2.2.tgz", - "integrity": "sha512-ZPWTGy05UMJb3MEu0katkm3I3isO7hB7mZ+imHZC1A/+yKMKc+mdZwSaUj2x6aJFEfHUnXbI9Z0Em26HUCJwbw==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-15.2.6.tgz", + "integrity": "sha512-r5feEcgs+xufI+GaO01XCehpnJVNB8sMS4l8DRV72DzgEIXhqYoLSWnQy7gYOKRXCUT66r1BxDmPG5fGa7jNzg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/auto-init": "15.0.0-canary.684e33d25.0", @@ -785,7 +739,7 @@ }, "peerDependencies": { "@angular/animations": "^15.0.0 || ^16.0.0", - "@angular/cdk": "15.2.2", + "@angular/cdk": "15.2.6", "@angular/common": "^15.0.0 || ^16.0.0", "@angular/core": "^15.0.0 || ^16.0.0", "@angular/forms": "^15.0.0 || ^16.0.0", @@ -794,22 +748,22 @@ } }, "node_modules/@angular/material-moment-adapter": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-15.2.2.tgz", - "integrity": "sha512-Io2OEuQAWKqJUr+6Krzn/OZrtlUnJGPUWnegwUgGh2dmuq8odrRIPpA2sGsU37hS3tmOn7VeXJ2BHSgbtS/m3w==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-15.2.6.tgz", + "integrity": "sha512-jE9dOQ3dYmNcPBqzWIdh3OQTPJymiUZLTuayPB3LqJ8hCfZ51W6hQ3c8WpZX3GyTlsDGmaveLXxcYWOufFp3cg==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^15.0.0 || ^16.0.0", - "@angular/material": "15.2.2", + "@angular/material": "15.2.6", "moment": "^2.18.1" } }, "node_modules/@angular/platform-browser": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.2.tgz", - "integrity": "sha512-kH1vUsFF7iRQ+DCQ/UkQtCWAzXzTDRO1p40RMf2IzDduESMcMwyWtheZflOuL1l4ubMbLitQiL846Hj/4CUl4g==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.6.tgz", + "integrity": "sha512-8afckDEWfYf+cyxs2SboZBJkiCwFgYE8IH24RUW1t3zLC+wfrTr7UEfrCoD4YJRVJdqnPoRWN5gjz98n3n4zsA==", "dependencies": { "tslib": "^2.3.0" }, @@ -817,9 +771,9 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "15.2.2", - "@angular/common": "15.2.2", - "@angular/core": "15.2.2" + "@angular/animations": "15.2.6", + "@angular/common": "15.2.6", + "@angular/core": "15.2.6" }, "peerDependenciesMeta": { "@angular/animations": { @@ -828,9 +782,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.2.tgz", - "integrity": "sha512-kYn57NkjOMkLHrWyZiqwfHUg4Td5hCrq9kADJRimbgSKusi9yHN7Whkd5HhySpF4yZU15XXsJHnl1KvqGNtWOw==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.6.tgz", + "integrity": "sha512-ZSyiigpxBWIM5f8t/a28Y3BCzHn1FtI2KsJysE7di5UUflOzwbxbfycVlpiZp0girbDYRyF18vvefvitNh17Gw==", "dependencies": { "tslib": "^2.3.0" }, @@ -838,16 +792,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.2", - "@angular/compiler": "15.2.2", - "@angular/core": "15.2.2", - "@angular/platform-browser": "15.2.2" + "@angular/common": "15.2.6", + "@angular/compiler": "15.2.6", + "@angular/core": "15.2.6", + "@angular/platform-browser": "15.2.6" } }, "node_modules/@angular/router": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.2.tgz", - "integrity": "sha512-Yo9l9ZEWkKERvc8Fu9R5NNmUWcOB8ic+MX4GDWYOlgAnK0ZoM1/m0G2OtKFNmLwTj9CMfDqE0n5QZPbLCvjR9w==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.6.tgz", + "integrity": "sha512-yB9uc9Xi9N0dErsugleywBA1KYG+GQ9WWSlri34oe2VsCqZazImn71n4wKPtrm2Xiy/mI23wJcr+jiCAtzp49Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -855,16 +809,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.2", - "@angular/core": "15.2.2", - "@angular/platform-browser": "15.2.2", + "@angular/common": "15.2.6", + "@angular/core": "15.2.6", + "@angular/platform-browser": "15.2.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-15.2.2.tgz", - "integrity": "sha512-2v+7HH4o9DOBLkISPn0rl1M7mvKHaBxn5Hz9JyV0y9pT+rL4wIAmZVqgImCCnOOhXlP2Bi7AnlL/mts5dc0/fw==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-15.2.6.tgz", + "integrity": "sha512-7CoZqfWtDPYbyGRVPzgk26Fx49sd+hjboMGGDis3R47rJLfk+Hdkba2r43F2k1GGqD/goSpxHmnuocKe7oQi8g==", "dependencies": { "tslib": "^2.3.0" }, @@ -875,19 +829,21 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.2.2", - "@angular/core": "15.2.2" + "@angular/common": "15.2.6", + "@angular/core": "15.2.6" } }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.18.6", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -896,32 +852,34 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.5", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.2", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -934,8 +892,9 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -955,9 +914,10 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -969,8 +929,9 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -980,8 +941,9 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" @@ -991,12 +953,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -1008,38 +971,28 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.5", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -1050,12 +1003,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "regexpu-core": "^5.3.1" }, "engines": { "node": ">=6.9.0" @@ -1066,8 +1020,9 @@ }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", @@ -1082,24 +1037,27 @@ }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1108,12 +1066,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -1121,8 +1080,9 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1131,31 +1091,34 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -1163,8 +1126,8 @@ "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" }, "engines": { "node": ">=6.9.0" @@ -1172,8 +1135,9 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1183,16 +1147,18 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", @@ -1207,15 +1173,17 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1223,8 +1191,9 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.2" }, @@ -1234,8 +1203,9 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.0" }, @@ -1245,8 +1215,9 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1256,32 +1227,36 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", @@ -1293,13 +1268,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.13", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" }, "engines": { "node": ">=6.9.0" @@ -1307,8 +1283,9 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -1319,9 +1296,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.15", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -1331,8 +1309,9 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -1344,13 +1323,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1361,8 +1341,9 @@ }, "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.20.2", @@ -1378,8 +1359,9 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1392,12 +1374,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1409,8 +1392,9 @@ }, "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1424,8 +1408,9 @@ }, "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1439,8 +1424,9 @@ }, "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1453,11 +1439,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1469,8 +1456,9 @@ }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1484,8 +1472,9 @@ }, "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1498,15 +1487,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1517,8 +1507,9 @@ }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1531,12 +1522,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1548,8 +1540,9 @@ }, "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1562,12 +1555,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1580,8 +1574,9 @@ }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1595,8 +1590,9 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1606,8 +1602,9 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -1617,8 +1614,9 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1631,8 +1629,9 @@ }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1642,8 +1641,9 @@ }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1653,8 +1653,9 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" }, @@ -1667,8 +1668,9 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1678,8 +1680,9 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1689,8 +1692,9 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1700,8 +1704,9 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1711,8 +1716,9 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1722,8 +1728,9 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1733,8 +1740,9 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1744,8 +1752,9 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1758,8 +1767,9 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1771,11 +1781,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1786,8 +1797,9 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", @@ -1802,8 +1814,9 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -1815,9 +1828,10 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.5", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" }, @@ -1829,17 +1843,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.2", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-replace-supers": "^7.20.7", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, @@ -1851,11 +1866,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1865,9 +1882,10 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.2", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" }, @@ -1880,8 +1898,9 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1895,8 +1914,9 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -1909,8 +1929,9 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1923,11 +1944,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1938,8 +1960,9 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", @@ -1954,8 +1977,9 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -1968,8 +1992,9 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -1981,12 +2006,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1996,13 +2022,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2012,13 +2039,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { @@ -2030,8 +2058,9 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2045,8 +2074,9 @@ }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.20.5", "@babel/helper-plugin-utils": "^7.20.2" @@ -2060,8 +2090,9 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2074,8 +2105,9 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" @@ -2088,9 +2120,10 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.5", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" }, @@ -2103,8 +2136,9 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2117,8 +2151,9 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "regenerator-transform": "^0.15.1" @@ -2132,8 +2167,9 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2146,8 +2182,9 @@ }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.19.0", @@ -2165,16 +2202,18 @@ }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2186,12 +2225,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -2202,8 +2242,9 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2216,8 +2257,9 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2230,8 +2272,9 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2244,8 +2287,9 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2258,8 +2302,9 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2273,8 +2318,9 @@ }, "node_modules/@babel/preset-env": { "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.1", "@babel/helper-compilation-targets": "^7.20.0", @@ -2361,16 +2407,18 @@ }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", @@ -2382,6 +2430,12 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { "version": "7.20.13", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", @@ -2396,8 +2450,9 @@ }, "node_modules/@babel/template": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -2408,18 +2463,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.13", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", + "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2427,10 +2483,40 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/types": { - "version": "7.20.7", + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -2441,9 +2527,9 @@ } }, "node_modules/@bufbuild/buf": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf/-/buf-1.14.0.tgz", - "integrity": "sha512-hW6wua/V+goxF99TSoQ/ps/gLdLkyuMjUs6zm15rpNvYOqB5UNg3t4N29SOWqfGhwVU5eeAC2XubT24eVOCcRQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf/-/buf-1.15.0.tgz", + "integrity": "sha512-HX6AjKiI8TVFJKWdDGIUC/zZQG/8sf5FbmU5VdbK/U8tbfCwBADkJ6I+qP6HnDDtSU4obS164J0sibdGhAJKqg==", "dev": true, "hasInstallScript": true, "bin": { @@ -2455,18 +2541,18 @@ "node": ">=12" }, "optionalDependencies": { - "@bufbuild/buf-darwin-arm64": "1.14.0", - "@bufbuild/buf-darwin-x64": "1.14.0", - "@bufbuild/buf-linux-aarch64": "1.14.0", - "@bufbuild/buf-linux-x64": "1.14.0", - "@bufbuild/buf-win32-arm64": "1.14.0", - "@bufbuild/buf-win32-x64": "1.14.0" + "@bufbuild/buf-darwin-arm64": "1.15.0", + "@bufbuild/buf-darwin-x64": "1.15.0", + "@bufbuild/buf-linux-aarch64": "1.15.0", + "@bufbuild/buf-linux-x64": "1.15.0", + "@bufbuild/buf-win32-arm64": "1.15.0", + "@bufbuild/buf-win32-x64": "1.15.0" } }, "node_modules/@bufbuild/buf-darwin-arm64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-arm64/-/buf-darwin-arm64-1.14.0.tgz", - "integrity": "sha512-V6WonyHSLtrCd+xl5XAqzpDXUMLhJF3seVD6ap4yJW6nigHw49+Oz38oE0DgwOlkIOoNgS8TWsRZFUyBXfV9vQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-arm64/-/buf-darwin-arm64-1.15.0.tgz", + "integrity": "sha512-sLN6uGc8sIBALa7Q4fB6rW9NM0MXK32pH6RRDUdl7aDrp/3A6TLKKBGiHcY81axUyxDTUNFb8dOwhHTI2H8FzQ==", "cpu": [ "arm64" ], @@ -2480,9 +2566,9 @@ } }, "node_modules/@bufbuild/buf-darwin-x64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-x64/-/buf-darwin-x64-1.14.0.tgz", - "integrity": "sha512-ZhPc0mN7K8E8IJGWzdCxb5CHqwmv3HSB25IgEjqTkwCDIUV7cPIUfb/56G6ir0shWCcVRoGPv2KbSG5rL0AYIw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-x64/-/buf-darwin-x64-1.15.0.tgz", + "integrity": "sha512-iHml29I/hOl7ORyp9ohiV7fC1WqPbM5UjogwVpA8j06o5SgxRhp42nd80XRAXCM+65ecwiu5JVuspicGzQFOgg==", "cpu": [ "x64" ], @@ -2496,9 +2582,9 @@ } }, "node_modules/@bufbuild/buf-linux-aarch64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-aarch64/-/buf-linux-aarch64-1.14.0.tgz", - "integrity": "sha512-M7La4zzSXGgIwhKclZFgh5OXvKkx5/1fsGKTJWfDL25xPMYrvZI7y1i44iOK5H8ciKe24fatITZHE0ZQVRohoQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-aarch64/-/buf-linux-aarch64-1.15.0.tgz", + "integrity": "sha512-YQHXqV1HhdpmIUrYg+gZNWCf43XHJJO5TlJT+pzXB/92PoN8gNP3KdxeRaM2sExcCs91G6zy1/Ms9N6DpeidUQ==", "cpu": [ "arm64" ], @@ -2512,9 +2598,9 @@ } }, "node_modules/@bufbuild/buf-linux-x64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-x64/-/buf-linux-x64-1.14.0.tgz", - "integrity": "sha512-/fqaKAUpFNbP6A2ROU/r35R2Fxig55MtseYtHNSLcQI6k9ubhdVsI3cM0MlOZ1VawclDYFiTpCd1urUL7spvsw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-x64/-/buf-linux-x64-1.15.0.tgz", + "integrity": "sha512-DD2OcsfofawRPQKXLFMqV2GSzi4WyE7kKE1PvXBtJy7sombv5TM26vgdb+DQv4T4Z2i7vhKshnflNkfd3QXtXA==", "cpu": [ "x64" ], @@ -2528,9 +2614,9 @@ } }, "node_modules/@bufbuild/buf-win32-arm64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-arm64/-/buf-win32-arm64-1.14.0.tgz", - "integrity": "sha512-t7cd8MfqJ2ew6uXUYVbgq97OzN/ybnJ5Q5yKbEGexkyOBHQZsEhv0FkJWkAn1DN93j5iqHO6xlDkHpGMjAW1sg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-arm64/-/buf-win32-arm64-1.15.0.tgz", + "integrity": "sha512-wk65iDXWRicfrt/9Gb1voAn9eGP2giQfKMrKOoEyytnDHFolMSmQimKH6iQ1uS5Vn0gI/BVp582cF1m9YsbXEg==", "cpu": [ "arm64" ], @@ -2544,9 +2630,9 @@ } }, "node_modules/@bufbuild/buf-win32-x64": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-x64/-/buf-win32-x64-1.14.0.tgz", - "integrity": "sha512-KD0T1rkX7yfykKZodnAj2WxhIZfkA/sox6VAY20F6X6ckLP96/3TSVWvDPfDN2DNkTcmokygNtA2/ir0KejDfQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-x64/-/buf-win32-x64-1.15.0.tgz", + "integrity": "sha512-KVoMj52ghYfLwGjQ+t19XZiQy8jGSGUYIe/yVZz08rsm5msXHGYOt++Bk3wr48rcv8gts8jo2/h1Ebkj+F6emw==", "cpu": [ "x64" ], @@ -2561,15 +2647,17 @@ }, "node_modules/@colors/colors": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/@ctrl/ngx-codemirror": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@ctrl/ngx-codemirror/-/ngx-codemirror-6.1.0.tgz", + "integrity": "sha512-73QeoNbnluZalWmNw+SOFctsE+oz0+4Bl9KhlJOIfbCPK/U6OIc+vQNr28hMAp15Y/Idde3LntTwLBDFW0bRVA==", "dependencies": { "@types/codemirror": "^5.60.5", "tslib": "^2.3.0" @@ -2581,16 +2669,18 @@ } }, "node_modules/@ctrl/tinycolor": { - "version": "3.5.0", - "license": "MIT", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", + "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", "engines": { "node": ">=10" } }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -2947,14 +3037,39 @@ "node": ">=12" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.4.1", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2971,8 +3086,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2986,13 +3102,15 @@ }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3005,8 +3123,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3016,13 +3135,15 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3030,6 +3151,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -3037,9 +3167,9 @@ "dev": true }, "node_modules/@grpc/grpc-js": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.12.tgz", - "integrity": "sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ==", + "version": "1.8.13", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.13.tgz", + "integrity": "sha512-iY3jsdfbc0ARoCLFvbvUB8optgyb0r1XLPb142u+QtgBcKJYkCIFt3Fd/881KqjLYWjsBJF57N3b8Eop9NDfUA==", "dependencies": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -3049,8 +3179,9 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.4", - "license": "Apache-2.0", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.6.tgz", + "integrity": "sha512-QyAXR8Hyh7uMDmveWxDSUcJr9NAWaZ2I6IXgAYvQmfflwouTM+rArE2eEaCtLlRqO81j7pRLCt81IefUei6Zbw==", "dependencies": { "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", @@ -3067,7 +3198,8 @@ }, "node_modules/@grpc/proto-loader/node_modules/cliui": { "version": "7.0.4", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -3076,7 +3208,8 @@ }, "node_modules/@grpc/proto-loader/node_modules/yargs": { "version": "16.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -3092,15 +3225,17 @@ }, "node_modules/@grpc/proto-loader/node_modules/yargs-parser": { "version": "20.2.9", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "engines": { "node": ">=10" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -3112,8 +3247,9 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -3124,13 +3260,15 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3144,16 +3282,18 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3164,33 +3304,37 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3201,19 +3345,27 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -3222,14 +3374,16 @@ }, "node_modules/@material/animation": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-5osi1z4JQIXcklPALbH/zTfOm2pDzHt9Fxm7ZyURy250xIZj6QjULRzPTnzOhC2ropfix9ra2Cfggbf0dcRbEQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/auto-init": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-OigQTmrVzkcGvxNjOaIe5oItTFPgrO9xLewvharDI6m6yvO1z7OBnkcW+sFN6ggLNYNxd0O1u9v64vMsmeDABQ==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "tslib": "^2.1.0" @@ -3237,7 +3391,8 @@ }, "node_modules/@material/banner": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-PqtGp3KWzdu58rWv/DIvSfe38m5YKOBbAAbBinSvgadBb/da+IE1t5F7YPNKE1T5lJsQBGVUYx6QBIeXm+aI/A==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/button": "15.0.0-canary.684e33d25.0", @@ -3255,14 +3410,16 @@ }, "node_modules/@material/base": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-oOaqb/SfjWwTKsdJUZmeh/Qrs41nIJI0N+zELsxnvbGjSIN1ZMAKYZFPMahqvC68OJ6+5CvJM8PoTNs5l+B8IQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/button": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Nkekk4edeX+ObVOa7UlwavaHdmckPV5wU4SAJf3iA3R61cmz+KsgAgpzfcwv5WfNhIlc2nLu8QYEecpHdo9d/w==", "dependencies": { "@material/density": "15.0.0-canary.684e33d25.0", "@material/dom": "15.0.0-canary.684e33d25.0", @@ -3281,7 +3438,8 @@ }, "node_modules/@material/card": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-xhyB7XX5KkEiCEqwSPkl58ZGYL6xFdnY62zimyBXJRG/Eaa0Swj3kW20hVCpt4f7c9Zmp8Se27rg8vnKmhvO3g==", "dependencies": { "@material/dom": "15.0.0-canary.684e33d25.0", "@material/elevation": "15.0.0-canary.684e33d25.0", @@ -3296,7 +3454,8 @@ }, "node_modules/@material/checkbox": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-NFpM3TS924PmVsk2KQLNU95OYCf8ZwYgzeqfnAexU0bEfjUJXINBun2Go0AaeOUMjuvWUe+byjrXgv8SFYbMUA==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3312,7 +3471,8 @@ }, "node_modules/@material/chips": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-z4ajQ4NnsAQ/Si9tZ4xmxzjj2Qb+vW++4QjCjjjwAGIZbCe0xglAnMh2t66XLJUxt7RoKZuZVEO7ZqcFZpvJFQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3335,7 +3495,8 @@ }, "node_modules/@material/circular-progress": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-G6qD0nGNtEUwWnAMJuA9INYFpZoKtx7KFjBaPF4Ol2YLHtmShALNAYyn54TMAK8AZ2IpW08PXjGS7Ye88vrdEQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3349,7 +3510,8 @@ }, "node_modules/@material/data-table": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-+wDw1DDDFfAsKAMzs84f/5GCjux39zjNfW8tL4wFbkWNwewmQrG9zaQMJhBpVOtLCrM8Gj6SOgOANqgqoCjvGg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3374,14 +3536,16 @@ }, "node_modules/@material/density": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-661yEVRMGrlq6S6WuSbPRO+ZwpdUOg2glCc7y96doM6itSLOa3UEAldjOLfsYZVB74GnKCiuDp//QmfoRyYTfA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/dialog": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-szn0dHnfeQTSOC6SSRSGAzX6Tnx+4NnSMUwNkXm+3bwjds8ZVK26+DXwLrP5f3ID5F1K5sFsRf2INo5/TNTHyQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3402,7 +3566,8 @@ }, "node_modules/@material/dom": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-7pEJLYov+tGgfuD8mZxoVU6rWtPI8ppjTAhz+F27Hz9FG0JETMWTKpDPBXLnKvX7vhIxL83GvZ9geNHCe8Hfog==", "dependencies": { "@material/feature-targeting": "15.0.0-canary.684e33d25.0", "@material/rtl": "15.0.0-canary.684e33d25.0", @@ -3411,7 +3576,8 @@ }, "node_modules/@material/drawer": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-/KMckLf1PYU/H3PXnS4e0aFl03qG3JlSv4LGgX6juJufcONqGTl/m63EMO/L/eUy6H1CRrXmVDjik/jzHLyDhg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3429,7 +3595,8 @@ }, "node_modules/@material/elevation": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WDF8SsRtq3rXUbVVbd9K4DUijIPH0bUFSOreVYxudpuxAfTlDS5+aeS1EK9UIBFYLuba4u5wVT2tDv6e1RTfrQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3441,7 +3608,8 @@ }, "node_modules/@material/fab": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-KCu87rWOKEAe9vZcAm6K8XazYSWPNjMG+OhrbPjHW6bCO7as1YCgtmkBkhff7csY/rFmcVpIy884xtUfLmSudQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/dom": "15.0.0-canary.684e33d25.0", @@ -3460,14 +3628,16 @@ }, "node_modules/@material/feature-targeting": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-HyH1erNTSjS63sigNSUMaCd0nJhTNdDFeC+myrxwtDaQm+uYJ8troCNtQM3g6mx0XATNtX5aTOoPmrM6yVVi1A==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/floating-label": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-f7TPp6bKpGvV3sYYiZHSGlrixXKkXXITW3Esp7KB9jRq42c0H82novmdwvY0eTef4ootmA2JEysr78KQfHBUPg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3481,7 +3651,8 @@ }, "node_modules/@material/focus-ring": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-ikw2RVUfgzXChpWIzPH1VzRvTjYb5ZKj4H+CZf7jqPUXMstFOZg90Bp7ARLZHqYiyNMuUq3zUTHozS6iHorSqg==", "dependencies": { "@material/dom": "15.0.0-canary.684e33d25.0", "@material/feature-targeting": "15.0.0-canary.684e33d25.0", @@ -3490,7 +3661,8 @@ }, "node_modules/@material/form-field": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-vpF9N/uq5no/7+8GAbEH0868FhOuBgxAWRr1Sfb+jthKfBr8OS/wPU/AHzZHdHdAm7PQynbeOXfDsX2dI//PDA==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/feature-targeting": "15.0.0-canary.684e33d25.0", @@ -3503,7 +3675,8 @@ }, "node_modules/@material/icon-button": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-wMI+XGzmIN/o2ePBKg2hLyx7H4pXCRAyyIKMQS1FMp1UKa2tYmiHVX/V8skhKwCqxg3i6Ls/LxMjfPxTR18WvQ==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/density": "15.0.0-canary.684e33d25.0", @@ -3520,7 +3693,8 @@ }, "node_modules/@material/image-list": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Ol+uaHYBe5R/cgzlfh5ONnMVX0wO6fV74JMUcQCQlxP6lXau/edARo4tkRc7A7UJUkU3VRv0EpEjLoCRNUPGaA==", "dependencies": { "@material/feature-targeting": "15.0.0-canary.684e33d25.0", "@material/shape": "15.0.0-canary.684e33d25.0", @@ -3531,14 +3705,16 @@ }, "node_modules/@material/layout-grid": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-ALXE1mqFNb/RB2lVRQ3/r1Aufw2mFZnOjRE+boYDVepmAG/xWyPCyaGoavELJF5l4GAb0tXi8wA/8HeGbLOpuA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/line-ripple": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-7hRx8C/e9i0P6pgQpNOMfTwSS2r1fwEvBL72QDVGLtLuoKKwsjjgP6Z0Jat/GeHJe87u9LQvGBoD4upt+of/HA==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3549,7 +3725,8 @@ }, "node_modules/@material/linear-progress": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-iJclt7mKmcMk6pqD7ocXKfCWZhqBoODp7N593jYlxVpTJuEz2wiVAjZUDn/YGj/Uz3CRH+2YFfOiLr9pwWjhDg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3563,7 +3740,8 @@ }, "node_modules/@material/list": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-rQ+FCSdzmwTcT00IYE0uRV3CS4oGSccKFl9hkcF+aHFW61L7ORh/SCGUDPrEfQFrFkMn5f8qroVJjpUAMXBz4g==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/density": "15.0.0-canary.684e33d25.0", @@ -3580,7 +3758,8 @@ }, "node_modules/@material/menu": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-r7wzDLSGSI9629/mfpvsMzkVxpmV75kcD3IrW0Pcu6/Bv/1xi0EvjcUXzNJJoQlwN4Zj35Ymz/PCjZkIDIz68Q==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/dom": "15.0.0-canary.684e33d25.0", @@ -3598,7 +3777,8 @@ }, "node_modules/@material/menu-surface": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-RVO5GAYcfWPaKwxsF/NhUAmrYXQCQBKvRQW0TIlbmAJz6lcFeTs6YZqF3u1C7qrL3ZQGz+sur/7ywj6QU0oMow==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3612,7 +3792,8 @@ }, "node_modules/@material/notched-outline": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-9YHcBkvJLPVYzkHcWoTpBZAFrEd+j1hjhGxLhh0LuNrZe8VroUkZD1TTnUAPHRG3os6EqEWWaKb0RN+aPIF2yQ==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/feature-targeting": "15.0.0-canary.684e33d25.0", @@ -3625,14 +3806,16 @@ }, "node_modules/@material/progress-indicator": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-c0icji4faeNWUoqGENGC7Hav0Puxh0RwXIDVizffaUxKIGbajpIp5+4Zop73fK/xFLGMB/npg7TbP+aCGjQ3fw==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@material/radio": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-U3Eh8sNUA8trDla1Bq8Bo02foxYvtoewaKeF8A8tAju81XZ4jRiftfOsOWZDZEHCVbbCB2QwvutvFlnay5n+Aw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3648,7 +3831,8 @@ }, "node_modules/@material/ripple": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-RyePu7SjIm/OuyyEieZ/gxiPYkNZOZHeid72WRcN9ofdlljj2pifcdPvcfZA+v/DMS33xo5GjG2L/Qj6ClWrKw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3661,7 +3845,8 @@ }, "node_modules/@material/rtl": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-NqdJl8Ayupp1Th+vCNCpVQHbUFOuF7TCte9LD1norTIBUF/QizIxWby2W5uUEiPbnh5j9PmE1CJtfLwKun3pcw==", "dependencies": { "@material/theme": "15.0.0-canary.684e33d25.0", "tslib": "^2.1.0" @@ -3669,7 +3854,8 @@ }, "node_modules/@material/segmented-button": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-bEGgg8vgXNLyukyV8HRjFMuQ6t6nm5LQ4Pgm22um61Yc8qyi0BOqV41OR4SVdUrUqZxh1aVD+p+4NN03+LfQXw==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/elevation": "15.0.0-canary.684e33d25.0", @@ -3683,7 +3869,8 @@ }, "node_modules/@material/select": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-kf178/2TeEinTv0mgmSBcmmExQ2h7a7dtR1E3WuqQgisJ/R6+zVLMkC2CnfIyzxYX2vkuUTG0ue3Reh/6XiqSg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3708,7 +3895,8 @@ }, "node_modules/@material/shape": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-aEelpaTFmpnCji3TUGP9bVCS/bRVjUmLTHBPZtuu1gOrUVVtJ6kYOg73dZNJF+XOoNL2yOX/LRcKwsop29tptA==", "dependencies": { "@material/feature-targeting": "15.0.0-canary.684e33d25.0", "@material/rtl": "15.0.0-canary.684e33d25.0", @@ -3718,7 +3906,8 @@ }, "node_modules/@material/slider": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WVyK+2pSNSZmj07M2K/a3TADoQ9FBCndfNC/vE7/wGIg4dddJJK5KvQ+yruf9R2cSzTL/S1sZ5WpyyeM8E9HTw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3735,7 +3924,8 @@ }, "node_modules/@material/snackbar": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-itO+DCkOannZzR1/cCHcqAm7ifhuFvXmDItNoA8qLEcAyJDJJRkhpwj3XQ01yuo9gBFcSctp7Txt7e+Hncm/Jg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3755,7 +3945,8 @@ }, "node_modules/@material/switch": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-Jxi0gl92yvvZZsAPxvVHzXx2ga+T/djMow98jvEczmpUorWnAhgiCr9CsSSRoosahWyRB8NLZOxUQrACxvffjw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3775,7 +3966,8 @@ }, "node_modules/@material/tab": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-WQL3wj9syHNcfe8KbgGGUcA34M8C/xZ+n0Fkkh8Kk6puVwaU+xqUNihsxPY6YzKpmh4PZ4oJaBdiN8zvFT1zqQ==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/elevation": "15.0.0-canary.684e33d25.0", @@ -3792,7 +3984,8 @@ }, "node_modules/@material/tab-bar": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-SW/cMaDsIGGkM1ag3A7GJRlmr8eXmObWsvitQJzh6Azr5zzZtSI+GQygkMesAEE1gbpqOVN8d40rh3H7VVIAcA==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3810,7 +4003,8 @@ }, "node_modules/@material/tab-indicator": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-kKICqSPqOlaf0lzaFFCmuOqPXJC+cK48Qmsc+m5o6fJhkmuZRCYpIwB2JeP+uZSOq/bTH+SrPtCtnVlgWg6ksA==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3821,7 +4015,8 @@ }, "node_modules/@material/tab-scroller": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-H6EU/TSiK/M2DyyORX5GEtXD9rKYxTMHC2VxsNWARPMFJGzgeW2ugYkFv+rKI1/c0bs0CJ4e+qFnOlBsQXZvyQ==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3833,7 +4028,8 @@ }, "node_modules/@material/textfield": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-OvgpDXjvpyJTtAWskO69IDybFvDNzr9w2PN/Fk7yFm+uNVupaWz1Ew8lZ4gGslaTNSVmh2XcsvmzxcLINSiiNg==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3854,7 +4050,8 @@ }, "node_modules/@material/theme": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-AZxaXXAvRKzAi20RlMxzt2U5UmkCWyv7DMWEBXsxtG5Tk54mi1HsbVUp3fxDPTlmL7Pq8p1/DESg/o7TgRCVlw==", "dependencies": { "@material/feature-targeting": "15.0.0-canary.684e33d25.0", "tslib": "^2.1.0" @@ -3862,14 +4059,16 @@ }, "node_modules/@material/tokens": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-wVwbQOTCXDPKYPdHQHLr026y36MMFelID1CmbfRk6mSol4O8yE9U0fXcShfRDW8Qo5E3X31w9c2A6T3neJY7wQ==", "dependencies": { "@material/elevation": "15.0.0-canary.684e33d25.0" } }, "node_modules/@material/tooltip": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-dtm26QjxyQdinc8btgz6yys07b7bUW4FZgNF2EBPeGrICrPg7jf+JEvDziz5g8VMaTBQLOQRSCGy0MKuRlOjLw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3888,7 +4087,8 @@ }, "node_modules/@material/top-app-bar": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-1M+oupUxflfW7u81P1XlxoLZB8bLzwtpKofIfDNRbEsiKhlLTERJR3Yak3BGE9xakNMysAaBHlkb5MrN5bNPFw==", "dependencies": { "@material/animation": "15.0.0-canary.684e33d25.0", "@material/base": "15.0.0-canary.684e33d25.0", @@ -3903,7 +4103,8 @@ }, "node_modules/@material/touch-target": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-zdE69Slg8+T7sTn1OwqZ6H7WBYac9mxJ/JlJqfTqthzIjZRcCxBSYymQJcDHjsrPnUojOtr9U4Tpm5YZ96TEkQ==", "dependencies": { "@material/base": "15.0.0-canary.684e33d25.0", "@material/feature-targeting": "15.0.0-canary.684e33d25.0", @@ -3914,7 +4115,8 @@ }, "node_modules/@material/typography": { "version": "15.0.0-canary.684e33d25.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.684e33d25.0.tgz", + "integrity": "sha512-aVnvgMwcfNa/K4wujzpKDIxjGl2hbkEL+m+OKDSQqWYjKcP9QrbzCXJruJBqxrBoPRHLbqo47k5f9uT8raSgjw==", "dependencies": { "@material/feature-targeting": "15.0.0-canary.684e33d25.0", "@material/theme": "15.0.0-canary.684e33d25.0", @@ -3922,9 +4124,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.2.tgz", - "integrity": "sha512-xHd5CC0Wi0a/CKfKoOC4Bwb1FVjy0esj22eQAkVh0iDKeiAQH4UG/VRmsdSHvto1z0IzGbMSt4hRbv4h2aYIdw==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.5.tgz", + "integrity": "sha512-wD6GY4xghVK+SQL0dy/M3saGx5pqi7+1VHEr+BBI7IUNYGSqPNzylKNxLBgQiTzfkzvbrZ6MhfaMNkhvSCYr5w==", "dev": true, "engines": { "node": "^14.20.0 || ^16.13.0 || >=18.10.0", @@ -3939,7 +4141,8 @@ }, "node_modules/@ngx-translate/core": { "version": "14.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", + "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", "dependencies": { "tslib": "^2.3.0" }, @@ -3950,8 +4153,9 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3962,16 +4166,18 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3982,8 +4188,9 @@ }, "node_modules/@npmcli/fs": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dev": true, - "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -3992,14 +4199,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -4011,16 +4217,13 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/@npmcli/git/node_modules/which": { @@ -4149,23 +4352,28 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -4173,32 +4381,37 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@schematics/angular": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.2.tgz", - "integrity": "sha512-H8R2TziGgJkXFZf3NQCOKQhkbGhVX8bPQAKv/YFEpPm1n//cPshysf2r3nBCc0WcTGkdC087UTCYvbFjQ7Fa6w==", + "version": "15.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.5.tgz", + "integrity": "sha512-YN0A5bzuqEmLdwbcQRop9TFj0QVxTC/XCL0K5DfDymVBS2j09NMyLLVc6TDOs+J/fMQr5EwiT149ikzqiUmAcw==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.2.2", - "@angular-devkit/schematics": "15.2.2", + "@angular-devkit/core": "15.2.5", + "@angular-devkit/schematics": "15.2.5", "jsonc-parser": "3.2.0" }, "engines": { @@ -4207,10 +4420,20 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true }, "node_modules/@tootallnate/once": { "version": "2.0.0", @@ -4221,13 +4444,23 @@ "node": ">= 10" } }, - "node_modules/@tufjs/models": { + "node_modules/@tufjs/canonical-json": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.0.tgz", - "integrity": "sha512-RRMu4uMxWnZlxaIBxahSb2IssFZiu188sndesZflWOe1cA/qUqtemSIoBWbuVKPvvdktapImWNnKpBcc+VrCQw==", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.2.tgz", + "integrity": "sha512-uxarDtxTIK3f8hJS4yFhW/lvTa3tsiQU5iDCRut+NCnOXvNtEul0Ct58NIIcIx9Rkt7OFEK31Ndpqsd663nsew==", "dev": true, "dependencies": { - "minimatch": "^6.1.0" + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^8.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4243,15 +4476,15 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4277,8 +4510,9 @@ } }, "node_modules/@types/codemirror": { - "version": "5.60.5", - "license": "MIT", + "version": "5.60.7", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.7.tgz", + "integrity": "sha512-QXIC+RPzt/1BGSuD6iFn6UMC9TDp+9hkOANYNPVsjjrDdzKphfRkwQDKGp2YaC54Yhz0g6P5uYTCCibZZEiMAA==", "dependencies": { "@types/tern": "*" } @@ -4304,21 +4538,24 @@ }, "node_modules/@types/cookie": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true }, "node_modules/@types/cors": { "version": "2.8.13", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", + "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/eslint": { - "version": "8.4.10", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -4326,8 +4563,9 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -4335,7 +4573,8 @@ }, "node_modules/@types/estree": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" }, "node_modules/@types/express": { "version": "4.17.17", @@ -4362,11 +4601,13 @@ }, "node_modules/@types/file-saver": { "version": "2.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==" }, "node_modules/@types/google-protobuf": { "version": "3.15.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.6.tgz", + "integrity": "sha512-pYVNNJ+winC4aek+lZp93sIKxnXt5qMkuKmaqS3WGuTq0Bw1ZDYNBgzG5kkdtwcv+GmYJGo3yEg6z2cKKAiEdw==" }, "node_modules/@types/http-proxy": { "version": "1.17.10", @@ -4379,33 +4620,38 @@ }, "node_modules/@types/jasmine": { "version": "4.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.3.1.tgz", + "integrity": "sha512-Vu8l+UGcshYmV1VWwULgnV/2RDbBaO6i2Ptx7nd//oJPIZGhoI1YLST4VKagD2Pq/Bc2/7zvtvhM7F3p4SN7kQ==", + "dev": true }, "node_modules/@types/jasminewd2": { "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", + "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", "dev": true, - "license": "MIT", "dependencies": { "@types/jasmine": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true }, "node_modules/@types/jsonwebtoken": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz", + "integrity": "sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/long": { "version": "4.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/mime": { "version": "3.0.1", @@ -4414,22 +4660,26 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.13.0", - "license": "MIT" + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" }, "node_modules/@types/parse-json": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true }, "node_modules/@types/q": { "version": "0.0.32", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", + "dev": true }, "node_modules/@types/qrcode": { "version": "1.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.0.tgz", + "integrity": "sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA==", "dependencies": { "@types/node": "*" } @@ -4454,13 +4704,15 @@ }, "node_modules/@types/selenium-webdriver": { "version": "3.0.20", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz", + "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==", + "dev": true }, "node_modules/@types/semver": { "version": "7.3.13", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true }, "node_modules/@types/serve-index": { "version": "1.9.1", @@ -4492,14 +4744,16 @@ }, "node_modules/@types/tern": { "version": "0.23.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz", + "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/uuid": { "version": "8.3.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" }, "node_modules/@types/ws": { "version": "8.5.4", @@ -4511,16 +4765,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz", - "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", + "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.54.1", - "@typescript-eslint/type-utils": "5.54.1", - "@typescript-eslint/utils": "5.54.1", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/type-utils": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -4544,90 +4797,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz", - "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.54.1", - "@typescript-eslint/utils": "5.54.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz", - "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.54.1", - "@typescript-eslint/types": "5.54.1", - "@typescript-eslint/typescript-estree": "5.54.1", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz", - "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", + "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.54.1", - "@typescript-eslint/types": "5.54.1", - "@typescript-eslint/typescript-estree": "5.54.1", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "debug": "^4.3.4" }, "engines": { @@ -4647,13 +4825,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz", - "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", + "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.54.1", - "@typescript-eslint/visitor-keys": "5.54.1" + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4690,7 +4868,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "5.48.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", @@ -4703,7 +4881,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "5.48.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", @@ -4730,63 +4908,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", - "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz", - "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.54.1", - "@typescript-eslint/visitor-keys": "5.54.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/utils": { "version": "5.48.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", @@ -4813,80 +4934,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.48.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -4910,12 +4957,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.54.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz", - "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4928,8 +4975,9 @@ }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" @@ -4937,23 +4985,27 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -4962,13 +5014,15 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -4978,29 +5032,33 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, - "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -5014,8 +5072,9 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -5026,8 +5085,9 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -5037,8 +5097,9 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -5050,8 +5111,9 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" @@ -5059,23 +5121,27 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true }, "node_modules/abab": { "version": "2.0.6", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -5085,8 +5151,9 @@ }, "node_modules/accepts": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5096,9 +5163,10 @@ } }, "node_modules/acorn": { - "version": "8.8.1", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5108,24 +5176,27 @@ }, "node_modules/acorn-import-assertions": { "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, - "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -5136,8 +5207,9 @@ }, "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -5148,17 +5220,19 @@ } }, "node_modules/adm-zip": { - "version": "0.4.16", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", + "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.3.0" + "node": ">=6.0" } }, "node_modules/agent-base": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "4" }, @@ -5182,8 +5256,9 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5194,8 +5269,9 @@ }, "node_modules/ajv": { "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5209,8 +5285,9 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5225,8 +5302,9 @@ }, "node_modules/ajv-keywords": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -5236,7 +5314,8 @@ }, "node_modules/angular-oauth2-oidc": { "version": "15.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-15.0.1.tgz", + "integrity": "sha512-5gpqO9QL+qFqMItYFHe8F6H5nOIEaowcNUc9iTDs3P1bfVYnoKoVAaijob53PuPTF4YwzdfwKWZi4Mq6P7GENQ==", "dependencies": { "tslib": "^2.0.0" }, @@ -5247,7 +5326,8 @@ }, "node_modules/angularx-qrcode": { "version": "15.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/angularx-qrcode/-/angularx-qrcode-15.0.1.tgz", + "integrity": "sha512-CirpL2rhhYX/QZ1OSaJ/fusABjDlwl1oYBqaLRqmyie0xTbscWqTBW0DEoht2yCNGN8Wt+JmZwTLxYG6tLuWeQ==", "dependencies": { "@types/qrcode": "1.5.0", "qrcode": "1.5.1", @@ -5259,16 +5339,18 @@ }, "node_modules/ansi-colors": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5293,15 +5375,17 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -5311,8 +5395,9 @@ }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5351,21 +5436,24 @@ }, "node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/argparse/node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "node_modules/aria-query": { "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "deep-equal": "^2.0.5" } @@ -5378,40 +5466,45 @@ }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array-uniq": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asn1": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } }, "node_modules/assert-plus": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } @@ -5424,11 +5517,14 @@ }, "node_modules/asynckit": { "version": "0.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, "node_modules/autoprefixer": { "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "dev": true, "funding": [ { @@ -5440,7 +5536,6 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } ], - "license": "MIT", "dependencies": { "browserslist": "^4.21.4", "caniuse-lite": "^1.0.30001426", @@ -5461,8 +5556,9 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5472,29 +5568,33 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "dev": true, - "license": "MIT" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true }, "node_modules/axobject-query": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "deep-equal": "^2.0.5" } }, "node_modules/babel-loader": { "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "dev": true, - "license": "MIT", "dependencies": { "find-cache-dir": "^3.3.2", "schema-utils": "^4.0.0" @@ -5509,8 +5609,9 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -5524,8 +5625,9 @@ }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.17.7", "@babel/helper-define-polyfill-provider": "^0.3.3", @@ -5537,16 +5639,18 @@ }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3", "core-js-compat": "^3.25.1" @@ -5557,8 +5661,9 @@ }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.3" }, @@ -5568,11 +5673,14 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5586,13 +5694,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/base64id": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, - "license": "MIT", "engines": { "node": "^4.5.0 || >= 5.9" } @@ -5605,32 +5713,36 @@ }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/big.js": { "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bl": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5639,6 +5751,8 @@ }, "node_modules/bl/node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -5654,7 +5768,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -5662,8 +5775,9 @@ }, "node_modules/blocking-proxy": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -5675,12 +5789,13 @@ } }, "node_modules/body-parser": { - "version": "1.20.1", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, - "license": "MIT", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -5688,7 +5803,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -5699,21 +5814,23 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/bonjour-service": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -5724,13 +5841,15 @@ }, "node_modules/boolbase": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5738,8 +5857,9 @@ }, "node_modules/braces": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5777,16 +5897,18 @@ }, "node_modules/browserstack": { "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, - "license": "MIT", "dependencies": { "https-proxy-agent": "^2.2.1" } }, "node_modules/browserstack/node_modules/agent-base": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, - "license": "MIT", "dependencies": { "es6-promisify": "^5.0.0" }, @@ -5796,16 +5918,18 @@ }, "node_modules/browserstack/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/browserstack/node_modules/https-proxy-agent": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" @@ -5816,6 +5940,8 @@ }, "node_modules/buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5830,7 +5956,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5838,8 +5963,9 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/builtin-modules": { "version": "1.1.1", @@ -5862,16 +5988,18 @@ }, "node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cacache": { "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", "dev": true, - "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -5891,10 +6019,20 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/call-bind": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5905,23 +6043,25 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "version": "1.0.30001478", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", + "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", "dev": true, "funding": [ { @@ -5931,18 +6071,24 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, "node_modules/caseless": { "version": "0.12.0", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true }, "node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -5954,11 +6100,14 @@ }, "node_modules/chardet": { "version": "0.7.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "node_modules/chokidar": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -5966,7 +6115,6 @@ "url": "https://paulmillr.com/funding/" } ], - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5985,32 +6133,36 @@ }, "node_modules/chownr": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/clean-stack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -6019,9 +6171,10 @@ } }, "node_modules/cli-spinners": { - "version": "2.7.0", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -6031,16 +6184,18 @@ }, "node_modules/cli-width": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, - "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6052,16 +6207,18 @@ }, "node_modules/clone": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -6171,21 +6328,24 @@ "dev": true }, "node_modules/codemirror": { - "version": "5.65.10", - "license": "MIT" + "version": "5.65.12", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.12.tgz", + "integrity": "sha512-z2jlHBocElRnPYysN2HAuhXbO3DNB0bcSKmNz3hcWR2Js2Dkhc1bEOxG93Z3DeUrnm+qx56XOY5wQmbP5KY0sw==" }, "node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/color-support": { "version": "1.1.3", @@ -6198,21 +6358,24 @@ }, "node_modules/colorette": { "version": "2.0.19", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true }, "node_modules/colors": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6222,13 +6385,15 @@ }, "node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/commondir": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "node_modules/compressible": { "version": "2.0.18", @@ -6292,13 +6457,15 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/connect": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -6320,16 +6487,18 @@ }, "node_modules/connect/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/connect/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", @@ -6350,22 +6519,25 @@ } }, "node_modules/content-type": { - "version": "1.0.4", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "1.9.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/cookie": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6378,8 +6550,9 @@ }, "node_modules/copy-anything": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, - "license": "MIT", "dependencies": { "is-what": "^3.14.1" }, @@ -6389,8 +6562,9 @@ }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, - "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -6412,8 +6586,9 @@ }, "node_modules/copy-webpack-plugin/node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6422,9 +6597,10 @@ } }, "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.3", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, - "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.2.11", @@ -6441,8 +6617,9 @@ }, "node_modules/copy-webpack-plugin/node_modules/slash": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6451,11 +6628,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.26.1", + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz", + "integrity": "sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg==", "dev": true, - "license": "MIT", "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.21.5" }, "funding": { "type": "opencollective", @@ -6464,12 +6642,14 @@ }, "node_modules/core-util-is": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true }, "node_modules/cors": { "version": "2.8.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -6480,8 +6660,9 @@ }, "node_modules/cosmiconfig": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, - "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -6495,8 +6676,9 @@ }, "node_modules/critters": { "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", "dev": true, - "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", "css-select": "^4.2.0", @@ -6508,8 +6690,9 @@ }, "node_modules/critters/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6522,8 +6705,9 @@ }, "node_modules/critters/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6537,8 +6721,9 @@ }, "node_modules/critters/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6548,26 +6733,30 @@ }, "node_modules/critters/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/critters/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/critters/node_modules/parse5": { "version": "6.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, "node_modules/critters/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6577,8 +6766,9 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6590,8 +6780,9 @@ }, "node_modules/css-loader": { "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, - "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.19", @@ -6615,8 +6806,9 @@ }, "node_modules/css-select": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -6640,8 +6832,9 @@ }, "node_modules/css-what": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -6660,8 +6853,9 @@ }, "node_modules/cssesc": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, - "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6671,8 +6865,9 @@ }, "node_modules/custom-event": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -6682,8 +6877,9 @@ }, "node_modules/dashdash": { "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" }, @@ -6693,16 +6889,18 @@ }, "node_modules/date-format": { "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/debug": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -6717,22 +6915,26 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "engines": { "node": ">=0.10.0" } }, "node_modules/deep-equal": { - "version": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-get-iterator": "^1.1.2", "get-intrinsic": "^1.1.3", "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", "isarray": "^2.0.5", "object-is": "^1.1.5", "object-keys": "^1.1.1", @@ -6741,7 +6943,7 @@ "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" + "which-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6749,8 +6951,9 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "node_modules/default-gateway": { "version": "6.0.3", @@ -6766,8 +6969,9 @@ }, "node_modules/defaults": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, - "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -6785,9 +6989,10 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, - "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -6801,8 +7006,9 @@ }, "node_modules/del": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", "dev": true, - "license": "MIT", "dependencies": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", @@ -6818,8 +7024,9 @@ }, "node_modules/del/node_modules/array-union": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, - "license": "MIT", "dependencies": { "array-uniq": "^1.0.1" }, @@ -6829,8 +7036,9 @@ }, "node_modules/del/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6848,8 +7056,9 @@ }, "node_modules/del/node_modules/globby": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^1.0.1", "arrify": "^1.0.0", @@ -6864,8 +7073,9 @@ }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6875,8 +7085,9 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -6889,8 +7100,9 @@ }, "node_modules/depd": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6906,8 +7118,9 @@ }, "node_modules/destroy": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -6921,12 +7134,14 @@ }, "node_modules/di": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true }, "node_modules/diacritics": { "version": "1.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", + "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==" }, "node_modules/diff": { "version": "4.0.2", @@ -6940,12 +7155,14 @@ }, "node_modules/dijkstrajs": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", + "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" }, "node_modules/dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -6960,9 +7177,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.5.0.tgz", + "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -6973,8 +7190,9 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -6984,8 +7202,9 @@ }, "node_modules/dom-serialize": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, - "license": "MIT", "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -6995,8 +7214,9 @@ }, "node_modules/dom-serializer": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -7008,19 +7228,21 @@ }, "node_modules/domelementtype": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } - ], - "license": "BSD-2-Clause" + ] }, "node_modules/domhandler": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -7033,8 +7255,9 @@ }, "node_modules/domutils": { "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -7046,8 +7269,9 @@ }, "node_modules/ecc-jsbn": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, - "license": "MIT", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -7055,34 +7279,40 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "dev": true, - "license": "ISC" + "version": "1.4.359", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.359.tgz", + "integrity": "sha512-OoVcngKCIuNXtZnsYoqlCvr0Cf3NIPzDIgwUfI9bdTFjXCrr79lI0kwQstLPZ7WhCezLlGksZk/BFAzoXC7GDw==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/encode-utf8": { "version": "1.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" }, "node_modules/encodeurl": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7111,9 +7341,10 @@ } }, "node_modules/engine.io": { - "version": "6.2.1", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", + "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", "dev": true, - "license": "MIT", "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -7124,24 +7355,26 @@ "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" + "ws": "~8.11.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.4", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/enhanced-resolve": { "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -7152,13 +7385,15 @@ }, "node_modules/ent": { "version": "2.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true }, "node_modules/entities": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -7180,8 +7415,9 @@ }, "node_modules/errno": { "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "prr": "~1.0.1" @@ -7192,25 +7428,28 @@ }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-get-iterator": { - "version": "1.1.2", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7218,18 +7457,21 @@ }, "node_modules/es-module-lexer": { "version": "0.9.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true }, "node_modules/es6-promise": { "version": "4.2.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true }, "node_modules/es6-promisify": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dev": true, - "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } @@ -7286,31 +7528,37 @@ }, "node_modules/escalade": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -7321,10 +7569,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -7345,7 +7592,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -7362,8 +7608,9 @@ }, "node_modules/eslint-scope": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -7374,8 +7621,9 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -7391,24 +7639,30 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7422,8 +7676,9 @@ }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -7436,13 +7691,15 @@ }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7456,8 +7713,9 @@ }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7467,13 +7725,15 @@ }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -7483,8 +7743,9 @@ }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7498,8 +7759,9 @@ }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -7508,9 +7770,10 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -7523,16 +7786,18 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -7542,13 +7807,15 @@ }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -7561,8 +7828,9 @@ }, "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7575,8 +7843,9 @@ }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -7589,8 +7858,9 @@ }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7600,8 +7870,9 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7610,13 +7881,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7627,8 +7899,9 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -7638,9 +7911,10 @@ } }, "node_modules/esquery": { - "version": "1.4.0", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -7650,8 +7924,9 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7661,16 +7936,18 @@ }, "node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -7686,18 +7963,21 @@ }, "node_modules/eventemitter-asyncresource": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true }, "node_modules/eventemitter3": { "version": "4.0.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -7727,6 +8007,8 @@ }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -7780,6 +8062,30 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/express/node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", @@ -7822,6 +8128,21 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -7833,13 +8154,15 @@ }, "node_modules/extend": { "version": "3.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "node_modules/external-editor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -7851,8 +8174,9 @@ }, "node_modules/external-editor/node_modules/tmp": { "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -7862,21 +8186,24 @@ }, "node_modules/extsprintf": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" - ], - "license": "MIT" + ] }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7890,13 +8217,15 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fastparse": { "version": "1.1.2", @@ -7905,9 +8234,10 @@ "dev": true }, "node_modules/fastq": { - "version": "1.14.0", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -7926,8 +8256,9 @@ }, "node_modules/figures": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -7940,8 +8271,9 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -7951,12 +8283,14 @@ }, "node_modules/file-saver": { "version": "2.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, "node_modules/fill-range": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7966,8 +8300,9 @@ }, "node_modules/finalhandler": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -7983,21 +8318,24 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, - "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -8007,8 +8345,9 @@ }, "node_modules/find-cache-dir": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -8023,7 +8362,8 @@ }, "node_modules/find-up": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -8034,12 +8374,14 @@ }, "node_modules/flag-icons": { "version": "6.6.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/flag-icons/-/flag-icons-6.6.6.tgz", + "integrity": "sha512-4lHDKxldnQ7q617pf9Dx9nAetT+9zcMpUexbRrc9kjLw9KJgZ83zA5Dky3Vv7ZDzUjAiZ46x/cy5P0HnEnqA2A==" }, "node_modules/flat-cache": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -8050,11 +8392,14 @@ }, "node_modules/flatted": { "version": "3.2.7", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, "node_modules/follow-redirects": { "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true, "funding": [ { @@ -8062,7 +8407,6 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -8074,24 +8418,27 @@ }, "node_modules/for-each": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/forever-agent": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/form-data": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -8112,8 +8459,9 @@ }, "node_modules/fraction.js": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, - "license": "MIT", "engines": { "node": "*" }, @@ -8133,8 +8481,9 @@ }, "node_modules/fs-extra": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -8146,8 +8495,9 @@ }, "node_modules/fs-minipass": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", + "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^4.0.0" }, @@ -8157,18 +8507,22 @@ }, "node_modules/fs-monkey": { "version": "1.0.3", - "dev": true, - "license": "Unlicense" + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "license": "MIT", + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -8179,13 +8533,15 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/functions-have-names": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8211,23 +8567,26 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.3", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -8239,8 +8598,9 @@ }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -8259,8 +8619,9 @@ }, "node_modules/getpass": { "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0" } @@ -8286,8 +8647,9 @@ }, "node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -8297,21 +8659,24 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "5.1.1", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8321,16 +8686,18 @@ }, "node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -8360,12 +8727,14 @@ }, "node_modules/google-protobuf": { "version": "3.21.2", - "license": "(BSD-3-Clause AND Apache-2.0)" + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" }, "node_modules/gopd": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -8374,18 +8743,21 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "dev": true, - "license": "ISC" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/grapheme-splitter": { "version": "1.0.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true }, "node_modules/grpc-web": { "version": "1.4.2", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/grpc-web/-/grpc-web-1.4.2.tgz", + "integrity": "sha512-gUxWq42l5ldaRplcKb4Pw5O4XBONWZgz3vxIIXnfIeJj8Jc3wYiq2O4c9xzx/NGbbPEej4rhI62C9eTENwLGNw==" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -8395,16 +8767,19 @@ }, "node_modules/har-schema": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, - "license": "ISC", "engines": { "node": ">=4" } }, "node_modules/har-validator": { "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -8415,8 +8790,9 @@ }, "node_modules/har-validator/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -8430,13 +8806,15 @@ }, "node_modules/har-validator/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/has": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -8446,8 +8824,9 @@ }, "node_modules/has-ansi": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -8457,32 +8836,36 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/has-bigints": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -8492,8 +8875,9 @@ }, "node_modules/has-symbols": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8503,8 +8887,9 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -8523,8 +8908,9 @@ }, "node_modules/hdr-histogram-js": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, - "license": "BSD", "dependencies": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", @@ -8533,8 +8919,9 @@ }, "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true }, "node_modules/hosted-git-info": { "version": "6.1.1", @@ -8548,6 +8935,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -8604,8 +9000,9 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, "node_modules/http-cache-semantics": { "version": "4.1.1", @@ -8621,8 +9018,9 @@ }, "node_modules/http-errors": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -8636,8 +9034,9 @@ }, "node_modules/http-errors/node_modules/statuses": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -8650,8 +9049,9 @@ }, "node_modules/http-proxy": { "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -8701,8 +9101,9 @@ }, "node_modules/http-signature": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -8715,8 +9116,9 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -8745,7 +9147,8 @@ }, "node_modules/i18n-iso-countries": { "version": "7.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/i18n-iso-countries/-/i18n-iso-countries-7.5.0.tgz", + "integrity": "sha512-PtfKJNWLVhhU0KBX/8asmywjAcuyQk07mmmMwxFJcddTNBJJ1yvpY2qxVmyxbtVF+9+6eg9phgpv83XPUKU5CA==", "dependencies": { "diacritics": "1.3.0" }, @@ -8755,8 +9158,9 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -8766,8 +9170,9 @@ }, "node_modules/icss-utils": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -8777,6 +9182,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -8790,24 +9197,24 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.2.tgz", + "integrity": "sha512-ezmQ1Dg2b3jVZh2Dh+ar6Eu2MqNSTkyb32HU2MAQQQX9tKM3q/UQ/9lf03lQ5hW+fOeoMnwxwkleZ0xcNp0/qg==", "dev": true, "dependencies": { - "minimatch": "^6.1.6" + "minimatch": "^7.4.2" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -8823,9 +9230,9 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -8839,8 +9246,9 @@ }, "node_modules/image-size": { "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, - "license": "MIT", "optional": true, "bin": { "image-size": "bin/image-size.js" @@ -8851,18 +9259,21 @@ }, "node_modules/immediate": { "version": "3.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true }, "node_modules/immutable": { - "version": "4.1.0", - "dev": true, - "license": "MIT" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8876,24 +9287,27 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8906,8 +9320,9 @@ }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8915,21 +9330,24 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true, - "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/inquirer": { "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -8953,8 +9371,9 @@ }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -8967,8 +9386,9 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8982,8 +9402,9 @@ }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8993,21 +9414,24 @@ }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9015,6 +9439,20 @@ "node": ">=8" } }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -9032,8 +9470,9 @@ }, "node_modules/is-arguments": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -9045,15 +9484,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-bigint": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -9063,8 +9518,9 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -9074,8 +9530,9 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -9089,8 +9546,9 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9099,9 +9557,10 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dev": true, - "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -9111,8 +9570,9 @@ }, "node_modules/is-date-object": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9140,23 +9600,26 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -9166,8 +9629,9 @@ }, "node_modules/is-interactive": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -9180,24 +9644,27 @@ }, "node_modules/is-map": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9210,16 +9677,18 @@ }, "node_modules/is-path-cwd": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-path-in-cwd": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, - "license": "MIT", "dependencies": { "is-path-inside": "^1.0.0" }, @@ -9229,8 +9698,9 @@ }, "node_modules/is-path-in-cwd/node_modules/is-path-inside": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", "dev": true, - "license": "MIT", "dependencies": { "path-is-inside": "^1.0.1" }, @@ -9240,8 +9710,9 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -9260,8 +9731,9 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -9271,8 +9743,9 @@ }, "node_modules/is-regex": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -9286,8 +9759,21 @@ }, "node_modules/is-set": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", "dev": true, - "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9306,8 +9792,9 @@ }, "node_modules/is-string": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9320,8 +9807,9 @@ }, "node_modules/is-symbol": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -9334,8 +9822,9 @@ }, "node_modules/is-typed-array": { "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -9352,13 +9841,15 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true }, "node_modules/is-unicode-supported": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -9368,16 +9859,18 @@ }, "node_modules/is-weakmap": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -9388,8 +9881,9 @@ }, "node_modules/is-what": { "version": "3.14.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true }, "node_modules/is-wsl": { "version": "2.2.0", @@ -9405,13 +9899,15 @@ }, "node_modules/isarray": { "version": "2.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true }, "node_modules/isbinaryfile": { "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -9421,34 +9917,39 @@ }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isstream": { "version": "0.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -9462,16 +9963,18 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/istanbul-lib-report": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -9483,16 +9986,18 @@ }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9502,8 +10007,9 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", @@ -9517,8 +10023,9 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9536,16 +10043,18 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=6" } }, "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -9556,16 +10065,18 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/pify": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -9575,24 +10086,27 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9603,8 +10117,9 @@ }, "node_modules/jasmine": { "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", "dev": true, - "license": "MIT", "dependencies": { "exit": "^0.1.2", "glob": "^7.0.6", @@ -9615,22 +10130,25 @@ } }, "node_modules/jasmine-core": { - "version": "4.5.0", - "dev": true, - "license": "MIT" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true }, "node_modules/jasmine-spec-reporter": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "colors": "1.4.0" } }, "node_modules/jasmine/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9648,21 +10166,24 @@ }, "node_modules/jasmine/node_modules/jasmine-core": { "version": "2.8.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", + "dev": true }, "node_modules/jasminewd2": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6.9.x" } }, "node_modules/jest-worker": { "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -9674,16 +10195,18 @@ }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9695,9 +10218,10 @@ } }, "node_modules/js-sdsl": { - "version": "4.2.0", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" @@ -9705,13 +10229,15 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -9722,13 +10248,15 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9738,33 +10266,39 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema": { "version": "0.4.0", - "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, "node_modules/json5": { - "version": "2.2.2", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9774,13 +10308,15 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true }, "node_modules/jsonfile": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -9796,8 +10332,9 @@ }, "node_modules/jsprim": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "license": "MIT", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -9810,8 +10347,9 @@ }, "node_modules/jszip": { "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, - "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -9821,13 +10359,15 @@ }, "node_modules/jszip/node_modules/isarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9840,21 +10380,24 @@ }, "node_modules/jszip/node_modules/safe-buffer": { "version": "5.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "node_modules/jszip/node_modules/string_decoder": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/karma": { "version": "6.4.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.1.tgz", + "integrity": "sha512-Cj57NKOskK7wtFWSlMvZf459iX+kpYIPXmkNUzP2WAFcA7nhr/ALn5R7sw3w+1udFDcpMx/tuB8d5amgm3ijaA==", "dev": true, - "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -9890,16 +10433,18 @@ }, "node_modules/karma-chrome-launcher": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "dev": true, - "license": "MIT", "dependencies": { "which": "^1.2.1" } }, "node_modules/karma-chrome-launcher/node_modules/which": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9909,8 +10454,9 @@ }, "node_modules/karma-coverage-istanbul-reporter": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, - "license": "MIT", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", @@ -9924,8 +10470,9 @@ }, "node_modules/karma-jasmine": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, - "license": "MIT", "dependencies": { "jasmine-core": "^4.1.0" }, @@ -9938,8 +10485,9 @@ }, "node_modules/karma-jasmine-html-reporter": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", + "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", "dev": true, - "license": "MIT", "peerDependencies": { "jasmine-core": "^4.0.0", "karma": "^6.0.0", @@ -9948,16 +10496,18 @@ }, "node_modules/karma-source-map-support": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, - "license": "MIT", "dependencies": { "source-map-support": "^0.5.5" } }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -9966,8 +10516,9 @@ }, "node_modules/karma/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9985,16 +10536,18 @@ }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/karma/node_modules/yargs": { "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -10010,32 +10563,36 @@ }, "node_modules/karma/node_modules/yargs-parser": { "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/klona": { - "version": "2.0.5", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/less": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -10059,8 +10616,9 @@ }, "node_modules/less-loader": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", "dev": true, - "license": "MIT", "dependencies": { "klona": "^2.0.4" }, @@ -10078,8 +10636,9 @@ }, "node_modules/less/node_modules/make-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "pify": "^4.0.1", @@ -10091,8 +10650,9 @@ }, "node_modules/less/node_modules/mime": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "license": "MIT", "optional": true, "bin": { "mime": "cli.js" @@ -10103,8 +10663,9 @@ }, "node_modules/less/node_modules/pify": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=6" @@ -10112,8 +10673,9 @@ }, "node_modules/less/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "optional": true, "bin": { "semver": "bin/semver" @@ -10121,8 +10683,9 @@ }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -10130,8 +10693,9 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -10141,13 +10705,15 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.19", - "license": "MIT" + "version": "1.10.26", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.26.tgz", + "integrity": "sha512-oB3l4J5gEhMV+ymmlIjWedsbCpsNRqbEZ/E/MpN2QVyinKNra6DcuXywxSk/72M3DZDoH/6kzurOq1erznBMwQ==" }, "node_modules/license-webpack-plugin": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, - "license": "ISC", "dependencies": { "webpack-sources": "^3.0.0" }, @@ -10162,36 +10728,41 @@ }, "node_modules/lie": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, - "license": "MIT", "dependencies": { "immediate": "~3.0.5" } }, "node_modules/lines-and-columns": { "version": "1.2.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/loader-runner": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12.13.0" } }, "node_modules/locate-path": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { "p-locate": "^4.1.0" }, @@ -10201,27 +10772,32 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, "node_modules/lodash.debounce": { "version": "4.0.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -10235,8 +10811,9 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -10249,8 +10826,9 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10264,8 +10842,9 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -10275,21 +10854,24 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10298,15 +10880,16 @@ } }, "node_modules/log4js": { - "version": "6.7.1", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", "flatted": "^3.2.7", "rfdc": "^1.3.0", - "streamroller": "^3.1.3" + "streamroller": "^3.1.5" }, "engines": { "node": ">=8.0" @@ -10314,20 +10897,23 @@ }, "node_modules/long": { "version": "4.0.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/lru-cache": { - "version": "7.14.1", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/magic-string": { - "version": "0.27.0", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.13" }, @@ -10337,8 +10923,9 @@ }, "node_modules/make-dir": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -10351,8 +10938,9 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -10438,6 +11026,15 @@ "node": ">= 8" } }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/make-fetch-happen/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", @@ -10498,26 +11095,36 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/material-colors": { "version": "1.2.6", - "license": "ISC" + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" }, "node_modules/material-design-icons-iconfont": { "version": "6.7.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz", + "integrity": "sha512-lSj71DgVv20kO0kGbs42icDzbRot61gEDBLQACzkUuznRQBUYmbxzEkGU6dNBb5fRWHMaScYlAXX96HQ4/cJWA==" }, "node_modules/media-typer": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.4.13", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", "dev": true, - "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.3" }, @@ -10533,13 +11140,15 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -10555,8 +11164,9 @@ }, "node_modules/micromatch": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -10567,8 +11177,9 @@ }, "node_modules/mime": { "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -10578,16 +11189,18 @@ }, "node_modules/mime-db": { "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -10597,16 +11210,18 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mini-css-extract-plugin": { "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dev": true, - "license": "MIT", "dependencies": { "schema-utils": "^4.0.0" }, @@ -10629,8 +11244,9 @@ }, "node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10639,25 +11255,28 @@ } }, "node_modules/minimist": { - "version": "1.2.7", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "4.0.3", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/minipass-collect": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10667,8 +11286,9 @@ }, "node_modules/minipass-collect/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10676,6 +11296,12 @@ "node": ">=8" } }, + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", @@ -10705,10 +11331,17 @@ "node": ">=8" } }, + "node_modules/minipass-fetch/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-flush": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10718,8 +11351,9 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10727,6 +11361,12 @@ "node": ">=8" } }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", @@ -10749,10 +11389,17 @@ "node": ">=8" } }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-pipeline": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10762,8 +11409,9 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10771,6 +11419,12 @@ "node": ">=8" } }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", @@ -10795,10 +11449,17 @@ "node": ">=8" } }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minizlib": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -10809,8 +11470,9 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10818,10 +11480,17 @@ "node": ">=8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mkdirp": { "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -10831,15 +11500,17 @@ }, "node_modules/moment": { "version": "2.29.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "engines": { "node": "*" } }, "node_modules/ms": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -10856,13 +11527,21 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true }, "node_modules/nanoid": { - "version": "3.3.4", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10872,18 +11551,21 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true }, "node_modules/needle": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "debug": "^3.2.6", @@ -10899,8 +11581,9 @@ }, "node_modules/needle/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "ms": "^2.1.1" @@ -10908,8 +11591,9 @@ }, "node_modules/needle/node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -10920,20 +11604,23 @@ }, "node_modules/negotiator": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/ngx-color": { "version": "8.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.3.tgz", + "integrity": "sha512-tuLP+uIoDEu2m0bh711kb2P1M1bh/oIrOn8mJd9mb8xGL2v+OcokcxPmVvWRn0avMG1lXL53CjSlWXGkdV4CDA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "material-colors": "^1.2.6", @@ -10946,9 +11633,10 @@ }, "node_modules/nice-napi": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "!win32" @@ -10960,8 +11648,9 @@ }, "node_modules/node-addon-api": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, - "license": "MIT", "optional": true }, "node_modules/node-forge": { @@ -10998,9 +11687,10 @@ } }, "node_modules/node-gyp-build": { - "version": "4.5.0", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", "dev": true, - "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -11029,9 +11719,10 @@ } }, "node_modules/node-releases": { - "version": "2.0.8", - "dev": true, - "license": "MIT" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true }, "node_modules/nopt": { "version": "6.0.0", @@ -11065,16 +11756,18 @@ }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-range": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11092,9 +11785,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.0.tgz", + "integrity": "sha512-udSGENih/5xKh3Ex+L0PtZcOt0Pa+6ppDLnpG5D49/EhMja3LupaY9E/DtJTxyFBwE09ot7Fc+H4DywnZNWTVA==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -11172,6 +11865,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", @@ -11244,8 +11946,9 @@ }, "node_modules/nth-check": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -11255,31 +11958,35 @@ }, "node_modules/oauth-sign": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "*" } }, "node_modules/object-assign": { "version": "4.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.2", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -11293,16 +12000,18 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -11324,8 +12033,9 @@ }, "node_modules/on-finished": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -11344,16 +12054,18 @@ }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -11383,8 +12095,9 @@ }, "node_modules/optionator": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -11399,8 +12112,9 @@ }, "node_modules/ora": { "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -11421,8 +12135,9 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -11435,8 +12150,9 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11450,8 +12166,9 @@ }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -11461,21 +12178,24 @@ }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11485,15 +12205,17 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-limit": { "version": "2.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { "p-try": "^2.0.0" }, @@ -11506,7 +12228,8 @@ }, "node_modules/p-locate": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dependencies": { "p-limit": "^2.2.0" }, @@ -11516,8 +12239,9 @@ }, "node_modules/p-map": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -11552,7 +12276,8 @@ }, "node_modules/p-try": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "engines": { "node": ">=6" } @@ -11591,13 +12316,15 @@ }, "node_modules/pako": { "version": "1.0.11", - "dev": true, - "license": "(MIT AND Zlib)" + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -11607,8 +12334,9 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -11624,16 +12352,18 @@ }, "node_modules/parse-node-version": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/parse5": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "devOptional": true, - "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -11669,16 +12399,18 @@ }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, - "license": "MIT", "dependencies": { "parse5": "^6.0.1" } }, "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { "version": "6.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, "node_modules/parse5-sax-parser": { "version": "7.0.0", @@ -11694,8 +12426,9 @@ }, "node_modules/parse5/node_modules/entities": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "devOptional": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -11705,44 +12438,84 @@ }, "node_modules/parseurl": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/path-exists": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", - "dev": true, - "license": "(WTFPL OR MIT)" + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "dev": true, - "license": "MIT" + "dependencies": { + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", + "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -11752,26 +12525,30 @@ }, "node_modules/path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/performance-now": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true }, "node_modules/picocolors": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -11781,24 +12558,27 @@ }, "node_modules/pify": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, - "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -11808,8 +12588,9 @@ }, "node_modules/piscina": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", "dev": true, - "license": "MIT", "dependencies": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", @@ -11821,8 +12602,9 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -11832,13 +12614,16 @@ }, "node_modules/pngjs": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", "engines": { "node": ">=10.13.0" } }, "node_modules/postcss": { "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "funding": [ { @@ -11850,7 +12635,6 @@ "url": "https://tidelift.com/funding/github/npm/postcss" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -11862,8 +12646,9 @@ }, "node_modules/postcss-loader": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", + "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", "dev": true, - "license": "MIT", "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", @@ -11883,8 +12668,9 @@ }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, - "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11894,8 +12680,9 @@ }, "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, - "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -11910,8 +12697,9 @@ }, "node_modules/postcss-modules-scope": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, - "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -11924,8 +12712,9 @@ }, "node_modules/postcss-modules-values": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -11938,8 +12727,9 @@ }, "node_modules/postcss-selector-parser": { "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11950,21 +12740,24 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "2.8.4", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -11997,8 +12790,9 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -12017,13 +12811,15 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/promise-inflight": { "version": "1.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true }, "node_modules/promise-retry": { "version": "2.0.1", @@ -12039,9 +12835,10 @@ } }, "node_modules/protobufjs": { - "version": "7.1.2", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", "hasInstallScript": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -12062,12 +12859,15 @@ }, "node_modules/protobufjs/node_modules/long": { "version": "5.2.1", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, "node_modules/protractor": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", "dev": true, - "license": "MIT", "dependencies": { "@types/q": "^0.0.32", "@types/selenium-webdriver": "^3.0.0", @@ -12095,24 +12895,27 @@ }, "node_modules/protractor/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -12126,8 +12929,9 @@ }, "node_modules/protractor/node_modules/cliui": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -12136,16 +12940,18 @@ }, "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12155,8 +12961,9 @@ }, "node_modules/protractor/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -12166,13 +12973,15 @@ }, "node_modules/protractor/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/protractor/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12190,24 +12999,27 @@ }, "node_modules/protractor/node_modules/source-map": { "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/source-map-support": { "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, - "license": "MIT", "dependencies": { "source-map": "^0.5.6" } }, "node_modules/protractor/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -12217,16 +13029,18 @@ }, "node_modules/protractor/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/protractor/node_modules/wrap-ansi": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12238,16 +13052,18 @@ }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12260,8 +13076,9 @@ }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12271,13 +13088,15 @@ }, "node_modules/protractor/node_modules/y18n": { "version": "4.0.3", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "node_modules/protractor/node_modules/yargs": { "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -12297,8 +13116,9 @@ }, "node_modules/protractor/node_modules/yargs-parser": { "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -12331,27 +13151,31 @@ }, "node_modules/prr": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "license": "MIT", "optional": true }, "node_modules/psl": { "version": "1.9.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true }, "node_modules/punycode": { - "version": "2.1.1", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/q": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -12359,15 +13183,17 @@ }, "node_modules/qjobs": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.9" } }, "node_modules/qrcode": { "version": "1.5.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", "dependencies": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", @@ -12383,7 +13209,8 @@ }, "node_modules/qrcode/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -12396,7 +13223,8 @@ }, "node_modules/qrcode/node_modules/cliui": { "version": "6.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -12405,7 +13233,8 @@ }, "node_modules/qrcode/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -12415,11 +13244,13 @@ }, "node_modules/qrcode/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/qrcode/node_modules/wrap-ansi": { "version": "6.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12431,11 +13262,13 @@ }, "node_modules/qrcode/node_modules/y18n": { "version": "4.0.3", - "license": "ISC" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "node_modules/qrcode/node_modules/yargs": { "version": "15.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -12455,7 +13288,8 @@ }, "node_modules/qrcode/node_modules/yargs-parser": { "version": "18.1.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -12466,8 +13300,9 @@ }, "node_modules/qs": { "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -12480,6 +13315,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -12494,29 +13331,31 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.1", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -12528,12 +13367,12 @@ } }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.1.tgz", + "integrity": "sha512-AaHqXxfAVa+fNL07x8iAghfKOds/XXsu7zoouIVsbm7PEbQ3nMWXlvjcbrNLjElnUHWQtAo4QEa0RXuvD4XlpA==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^9.3.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -12564,6 +13403,33 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", @@ -12573,10 +13439,26 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/read-package-json/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -12588,8 +13470,9 @@ }, "node_modules/readdirp": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -12605,13 +13488,15 @@ }, "node_modules/regenerate": { "version": "1.4.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, - "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -12621,26 +13506,30 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regex-parser": { "version": "2.2.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -12655,8 +13544,9 @@ }, "node_modules/regexpp": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -12665,13 +13555,14 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.2", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "license": "MIT", "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" @@ -12680,15 +13571,11 @@ "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.7.1", - "dev": true, - "license": "MIT" - }, "node_modules/regjsparser": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -12698,6 +13585,8 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -12705,8 +13594,10 @@ }, "node_modules/request": { "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, - "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -12735,48 +13626,56 @@ }, "node_modules/request/node_modules/qs": { "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.6" } }, "node_modules/request/node_modules/uuid": { "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/require-directory": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "node_modules/requires-port": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true }, "node_modules/resolve": { "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -12791,16 +13690,18 @@ }, "node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-url-loader": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, - "license": "MIT", "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -12814,8 +13715,9 @@ }, "node_modules/resolve-url-loader/node_modules/loader-utils": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -12827,16 +13729,18 @@ }, "node_modules/resolve-url-loader/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/restore-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -12856,8 +13760,9 @@ }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -12865,13 +13770,15 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true }, "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -12884,8 +13791,9 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12903,14 +13811,17 @@ }, "node_modules/run-async": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -12926,20 +13837,22 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -12954,17 +13867,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/safevalues": { "version": "0.3.4", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { "version": "1.58.1", @@ -12985,8 +13899,9 @@ }, "node_modules/sass-loader": { "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", "dev": true, - "license": "MIT", "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -13022,6 +13937,8 @@ }, "node_modules/saucelabs": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "dependencies": { "https-proxy-agent": "^2.2.1" @@ -13032,8 +13949,9 @@ }, "node_modules/saucelabs/node_modules/agent-base": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, - "license": "MIT", "dependencies": { "es6-promisify": "^5.0.0" }, @@ -13043,16 +13961,18 @@ }, "node_modules/saucelabs/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/saucelabs/node_modules/https-proxy-agent": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" @@ -13063,13 +13983,15 @@ }, "node_modules/sax": { "version": "1.2.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true }, "node_modules/schema-utils": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -13092,8 +14014,9 @@ }, "node_modules/selenium-webdriver": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "jszip": "^3.1.3", "rimraf": "^2.5.4", @@ -13106,8 +14029,9 @@ }, "node_modules/selenium-webdriver/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13125,8 +14049,9 @@ }, "node_modules/selenium-webdriver/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -13136,8 +14061,9 @@ }, "node_modules/selenium-webdriver/node_modules/tmp": { "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", "dev": true, - "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.1" }, @@ -13159,8 +14085,9 @@ }, "node_modules/semver": { "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -13191,8 +14118,9 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13200,6 +14128,12 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -13267,9 +14201,10 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -13360,22 +14295,26 @@ }, "node_modules/set-blocking": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/setimmediate": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true }, "node_modules/setprototypeof": { "version": "1.2.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -13385,8 +14324,9 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -13396,16 +14336,18 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -13417,15 +14359,17 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/sigstore": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.0.0.tgz", - "integrity": "sha512-e+qfbn/zf1+rCza/BhIA//Awmf0v1pa5HQS8Xk8iXrn9bgytytVLqYD0P7NSqZ6IELTgq+tcDvLPkQjNHyWLNg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.2.0.tgz", + "integrity": "sha512-Fr9+W1nkBSIZCkJQR7jDn/zI0UXNsVpp+7mDQkCnZOIxG9p6yNXBx9xntHsfUyYHE55XDkkVV3+rYbrkzAeesA==", "dev": true, "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", "tuf-js": "^1.0.0" }, @@ -13436,6 +14380,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/sigstore/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/sigstore/node_modules/make-fetch-happen": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", @@ -13481,8 +14434,9 @@ }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -13498,15 +14452,16 @@ } }, "node_modules/socket.io": { - "version": "4.5.4", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", + "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", - "engine.io": "~6.2.1", - "socket.io-adapter": "~2.4.0", + "engine.io": "~6.4.1", + "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.1" }, "engines": { @@ -13514,14 +14469,19 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.4.0", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", "dev": true, - "license": "MIT" + "dependencies": { + "ws": "~8.11.0" + } }, "node_modules/socket.io-parser": { - "version": "4.2.1", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", + "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", "dev": true, - "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -13589,16 +14549,18 @@ }, "node_modules/source-map-js": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", "dev": true, - "license": "MIT", "dependencies": { "abab": "^2.0.6", "iconv-lite": "^0.6.3", @@ -13617,8 +14579,9 @@ }, "node_modules/source-map-loader/node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -13628,8 +14591,9 @@ }, "node_modules/source-map-support": { "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13637,8 +14601,9 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -13713,8 +14678,9 @@ }, "node_modules/sshpk": { "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, - "license": "MIT", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -13736,9 +14702,10 @@ } }, "node_modules/ssri": { - "version": "10.0.1", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.3.tgz", + "integrity": "sha512-lJtX/BFPI/VEtxZmLfeh7pzisIs6micwZ3eruD3+ds9aPsXKlYpwDS2Q7omD6WC42WO9+bnUSzlMmfv8uK8meg==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^4.0.0" }, @@ -13748,16 +14715,30 @@ }, "node_modules/statuses": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/streamroller": { - "version": "3.1.3", + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, - "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -13769,15 +14750,17 @@ }, "node_modules/string_decoder": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13789,7 +14772,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13808,8 +14792,9 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -13819,8 +14804,9 @@ }, "node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -13830,8 +14816,9 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -13841,24 +14828,27 @@ }, "node_modules/symbol-observable": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, - "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -13873,8 +14863,9 @@ }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -13884,8 +14875,9 @@ }, "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13895,8 +14887,9 @@ }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -13904,6 +14897,12 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/terser": { "version": "5.16.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", @@ -13923,15 +14922,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" }, "engines": { "node": ">= 10.13.0" @@ -13957,8 +14957,9 @@ }, "node_modules/terser-webpack-plugin/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13972,21 +14973,24 @@ }, "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -14000,10 +15004,29 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.16.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", + "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -14015,8 +15038,9 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14034,13 +15058,15 @@ }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/through": { "version": "2.3.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true }, "node_modules/thunky": { "version": "1.1.0", @@ -14055,8 +15081,9 @@ }, "node_modules/tmp": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, - "license": "MIT", "dependencies": { "rimraf": "^3.0.0" }, @@ -14066,16 +15093,18 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -14085,16 +15114,18 @@ }, "node_modules/toidentifier": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tough-cookie": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -14105,8 +15136,9 @@ }, "node_modules/tree-kill": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, - "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -14201,8 +15233,9 @@ }, "node_modules/tsutils": { "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -14215,22 +15248,32 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/tuf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.1.tgz", - "integrity": "sha512-WTp382/PR96k0dI4GD5RdiRhgOU0rAC7+lnoih/5pZg3cyb3aNMqDozleEEWwyfT3+FOg7Qz9JU3n6A44tLSHw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.3.tgz", + "integrity": "sha512-jGYi5nG/kqgfTFQSdoN6PW9eIn+XRZqdXku+fSwNk6UpWIsWaV7pzAqPgFr85edOPhoyJDyBqCS+DCnHroMvrw==", "dev": true, "dependencies": { - "@tufjs/models": "1.0.0", + "@tufjs/models": "1.0.2", "make-fetch-happen": "^11.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/tuf-js/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/tuf-js/node_modules/make-fetch-happen": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", @@ -14276,8 +15319,9 @@ }, "node_modules/tunnel-agent": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -14287,13 +15331,15 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "dev": true, - "license": "Unlicense" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -14303,8 +15349,9 @@ }, "node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -14314,8 +15361,9 @@ }, "node_modules/type-is": { "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -14326,8 +15374,9 @@ }, "node_modules/typed-assert": { "version": "1.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true }, "node_modules/typescript": { "version": "4.9.5", @@ -14343,9 +15392,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", - "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", "dev": true, "funding": [ { @@ -14363,16 +15412,18 @@ }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -14383,24 +15434,27 @@ }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unique-filename": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, - "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -14410,8 +15464,9 @@ }, "node_modules/unique-slug": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -14421,22 +15476,26 @@ }, "node_modules/universalify": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -14448,7 +15507,6 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -14462,28 +15520,32 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "9.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } @@ -14512,18 +15574,20 @@ }, "node_modules/vary": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } }, "node_modules/verror": { "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" ], - "license": "MIT", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -14532,23 +15596,26 @@ }, "node_modules/void-elements": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/walkdir": { "version": "0.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", "engines": { "node": ">=6.0.0" } }, "node_modules/watchpack": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, - "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -14568,16 +15635,18 @@ }, "node_modules/wcwidth": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/webdriver-js-extender": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" @@ -14587,11 +15656,12 @@ } }, "node_modules/webdriver-manager": { - "version": "12.1.8", + "version": "12.1.9", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz", + "integrity": "sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==", "dev": true, - "license": "MIT", "dependencies": { - "adm-zip": "^0.4.9", + "adm-zip": "^0.5.2", "chalk": "^1.1.1", "del": "^2.2.0", "glob": "^7.0.3", @@ -14612,24 +15682,27 @@ }, "node_modules/webdriver-manager/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/webdriver-manager/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/webdriver-manager/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -14643,8 +15716,9 @@ }, "node_modules/webdriver-manager/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14662,13 +15736,15 @@ }, "node_modules/webdriver-manager/node_modules/ini": { "version": "1.3.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "node_modules/webdriver-manager/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -14678,16 +15754,18 @@ }, "node_modules/webdriver-manager/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/webdriver-manager/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -14697,16 +15775,18 @@ }, "node_modules/webdriver-manager/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/webpack": { - "version": "5.75.0", + "version": "5.76.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", + "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -14751,8 +15831,9 @@ }, "node_modules/webpack-dev-middleware": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", + "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", "dev": true, - "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.12", @@ -14849,31 +15930,11 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-merge": { "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, - "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" @@ -14884,16 +15945,18 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack-subresource-integrity": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, - "license": "MIT", "dependencies": { "typed-assert": "^1.0.8" }, @@ -14912,13 +15975,15 @@ }, "node_modules/webpack/node_modules/@types/estree": { "version": "0.0.51", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true }, "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14932,16 +15997,18 @@ }, "node_modules/webpack/node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -14952,21 +16019,24 @@ }, "node_modules/webpack/node_modules/estraverse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -15005,8 +16075,9 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -15019,8 +16090,9 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -15034,8 +16106,9 @@ }, "node_modules/which-collection": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, - "license": "MIT", "dependencies": { "is-map": "^2.0.1", "is-set": "^2.0.1", @@ -15048,12 +16121,14 @@ }, "node_modules/which-module": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" }, "node_modules/which-typed-array": { "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -15080,20 +16155,23 @@ }, "node_modules/wildcard": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true }, "node_modules/word-wrap": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15108,7 +16186,8 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -15121,7 +16200,8 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -15131,17 +16211,20 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/ws": { - "version": "8.2.3", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -15160,8 +16243,9 @@ }, "node_modules/xml2js": { "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, - "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -15172,36 +16256,41 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/y18n": { "version": "5.0.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yaml": { "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, - "license": "ISC", "engines": { "node": ">= 6" } }, "node_modules/yargs": { "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -15217,16 +16306,18 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -15235,9 +16326,9 @@ } }, "node_modules/zone.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", - "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", "dependencies": { "tslib": "^2.3.0" } diff --git a/console/package.json b/console/package.json index dd020d8aec..3606759df2 100644 --- a/console/package.json +++ b/console/package.json @@ -12,18 +12,18 @@ }, "private": true, "dependencies": { - "@angular/animations": "^15.2.2", - "@angular/cdk": "^15.2.2", - "@angular/common": "^15.2.2", - "@angular/compiler": "^15.2.2", - "@angular/core": "^15.2.2", - "@angular/forms": "^15.2.2", - "@angular/material": "^15.2.2", - "@angular/material-moment-adapter": "^15.2.2", - "@angular/platform-browser": "^15.2.2", - "@angular/platform-browser-dynamic": "^15.2.2", - "@angular/router": "^15.2.2", - "@angular/service-worker": "^15.2.2", + "@angular/animations": "^15.2.6", + "@angular/cdk": "^15.2.6", + "@angular/common": "^15.2.6", + "@angular/compiler": "^15.2.6", + "@angular/core": "^15.2.6", + "@angular/forms": "^15.2.6", + "@angular/material": "^15.2.6", + "@angular/material-moment-adapter": "^15.2.6", + "@angular/platform-browser": "^15.2.6", + "@angular/platform-browser-dynamic": "^15.2.6", + "@angular/router": "^15.2.6", + "@angular/service-worker": "^15.2.6", "@ctrl/ngx-codemirror": "^6.1.0", "@grpc/grpc-js": "^1.8.12", "@ngx-translate/core": "^14.0.0", @@ -41,7 +41,7 @@ "google-protobuf": "^3.21.2", "grpc-web": "^1.4.1", "i18n-iso-countries": "^7.5.0", - "libphonenumber-js": "^1.10.19", + "libphonenumber-js": "^1.10.24", "material-design-icons-iconfont": "^6.1.1", "moment": "^2.29.4", "ngx-color": "^8.0.3", @@ -49,36 +49,36 @@ "tinycolor2": "^1.6.0", "tslib": "^2.4.1", "uuid": "^9.0.0", - "zone.js": "~0.12.0" + "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.2.2", - "@angular-eslint/builder": "^15.2.1", - "@angular-eslint/eslint-plugin": "^15.2.1", - "@angular-eslint/eslint-plugin-template": "^15.2.1", - "@angular-eslint/schematics": "^15.2.1", - "@angular-eslint/template-parser": "^15.2.1", - "@angular/cli": "^15.2.2", - "@angular/compiler-cli": "^15.2.2", - "@angular/language-service": "^15.2.2", + "@angular-devkit/build-angular": "^15.2.5", + "@angular-eslint/builder": "15.2.1", + "@angular-eslint/eslint-plugin": "15.2.1", + "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/schematics": "15.2.1", + "@angular-eslint/template-parser": "15.2.1", + "@angular/cli": "^15.2.5", + "@angular/compiler-cli": "^15.2.6", + "@angular/language-service": "^15.2.6", "@bufbuild/buf": "^1.14.0", "@types/jasmine": "~4.3.0", "@types/jasminewd2": "~2.0.10", "@types/jsonwebtoken": "^9.0.1", - "@types/node": "^18.13.0", + "@types/node": "^18.15.11", "@types/qrcode": "^1.5.0", - "@typescript-eslint/eslint-plugin": "5.54.1", - "@typescript-eslint/parser": "5.54.1", + "@typescript-eslint/eslint-plugin": "5.48.2", + "@typescript-eslint/parser": "5.48.2", "codelyzer": "^6.0.2", "eslint": "^8.33.0", - "jasmine-core": "~4.5.0", + "jasmine-core": "~4.6.0", "jasmine-spec-reporter": "~7.0.0", "karma": "~6.4.1", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.0.0", - "prettier": "^2.8.4", + "prettier": "^2.8.7", "prettier-plugin-organize-imports": "^3.2.2", "protractor": "~7.0.0", "typescript": "^4.9.5" diff --git a/console/src/app/app.component.ts b/console/src/app/app.component.ts index edf7d83acf..9c473a288e 100644 --- a/console/src/app/app.component.ts +++ b/console/src/app/app.component.ts @@ -201,7 +201,7 @@ export class AppComponent implements OnDestroy { } }); - this.activatedRoute.queryParams.pipe(filter((params) => !!params.org)).subscribe((params) => { + this.activatedRoute.queryParams.pipe(filter((params) => !!params['org'])).subscribe((params) => { const { org } = params; this.authService.getActiveOrg(org); }); @@ -252,7 +252,7 @@ export class AppComponent implements OnDestroy { } public prepareRoute(outlet: RouterOutlet): boolean { - return outlet && outlet.activatedRouteData && outlet.activatedRouteData.animation; + return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation']; } public onSetTheme(theme: string): void { @@ -267,15 +267,15 @@ export class AppComponent implements OnDestroy { } private setLanguage(): void { - this.translate.addLangs(['de', 'en', 'fr', 'it', 'ja', 'pl', 'zh']); + this.translate.addLangs(['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh']); this.translate.setDefaultLang('en'); this.authService.user.subscribe((userprofile) => { if (userprofile) { const cropped = navigator.language.split('-')[0] ?? 'en'; - const fallbackLang = cropped.match(/de|en|fr|it|ja|pl|zh/) ? cropped : 'en'; + const fallbackLang = cropped.match(/de|en|es|fr|it|ja|pl|zh/) ? cropped : 'en'; - const lang = userprofile?.human?.profile?.preferredLanguage.match(/de|en|fr|it|ja|pl|zh/) + const lang = userprofile?.human?.profile?.preferredLanguage.match(/de|en|es|fr|it|ja|pl|zh/) ? userprofile.human.profile?.preferredLanguage : fallbackLang; this.translate.use(lang); diff --git a/console/src/app/app.module.ts b/console/src/app/app.module.ts index c96f47f1a0..2adbbbd8ec 100644 --- a/console/src/app/app.module.ts +++ b/console/src/app/app.module.ts @@ -2,6 +2,7 @@ import { CommonModule, registerLocaleData } from '@angular/common'; import { HttpClientModule } from '@angular/common/http'; import localeDe from '@angular/common/locales/de'; import localeEn from '@angular/common/locales/en'; +import localeEs from '@angular/common/locales/es'; import localeFr from '@angular/common/locales/fr'; import localeIt from '@angular/common/locales/it'; import localeJa from '@angular/common/locales/ja'; @@ -64,6 +65,8 @@ registerLocaleData(localeDe); i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/de.json')); registerLocaleData(localeEn); i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/en.json')); +registerLocaleData(localeEs); +i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/es.json')); registerLocaleData(localeFr); i18nIsoCountries.registerLocale(require('i18n-iso-countries/langs/fr.json')); registerLocaleData(localeIt); diff --git a/console/src/app/guards/user.guard.ts b/console/src/app/guards/user.guard.ts index d03a0a8ef3..df2b5b8c3b 100644 --- a/console/src/app/guards/user.guard.ts +++ b/console/src/app/guards/user.guard.ts @@ -16,7 +16,7 @@ export class UserGuard implements CanActivate { state: RouterStateSnapshot, ): Observable | Promise | boolean { return this.authService.user.pipe( - map((user) => user?.id !== route.params.id), + map((user) => user?.id !== route.params['id']), tap((isNotMe) => { if (!isNotMe) { this.router.navigate(['/users', 'me']); diff --git a/console/src/app/modules/accounts-card/accounts-card.component.html b/console/src/app/modules/accounts-card/accounts-card.component.html index 7780fd323f..b4a9439c36 100644 --- a/console/src/app/modules/accounts-card/accounts-card.component.html +++ b/console/src/app/modules/accounts-card/accounts-card.component.html @@ -1,16 +1,12 @@
diff --git a/console/src/app/modules/add-key-dialog/add-key-dialog.component.html b/console/src/app/modules/add-key-dialog/add-key-dialog.component.html index ba4ac4dee4..050983c737 100644 --- a/console/src/app/modules/add-key-dialog/add-key-dialog.component.html +++ b/console/src/app/modules/add-key-dialog/add-key-dialog.component.html @@ -16,9 +16,9 @@ - + {{ 'USER.MACHINE.CHOOSEDATEAFTER' | translate }}: - {{ dateControl.errors?.matDatepickerMin.min.toDate() | localizedDate : 'EEE dd. MMM' }} + {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate : 'EEE dd. MMM' }}
diff --git a/console/src/app/modules/add-token-dialog/add-token-dialog.component.html b/console/src/app/modules/add-token-dialog/add-token-dialog.component.html index be03089f4c..6a97cb0623 100644 --- a/console/src/app/modules/add-token-dialog/add-token-dialog.component.html +++ b/console/src/app/modules/add-token-dialog/add-token-dialog.component.html @@ -7,9 +7,9 @@ - + {{ 'USER.PERSONALACCESSTOKEN.ADD.CHOOSEDATEAFTER' | translate }}: - {{ dateControl.errors?.matDatepickerMin.min.toDate() | localizedDate : 'EEE dd. MMM' }} + {{ dateControl.errors['matDatepickerMin'].min.toDate() | localizedDate : 'EEE dd. MMM' }} diff --git a/console/src/app/modules/contributors/contributors.component.html b/console/src/app/modules/contributors/contributors.component.html index 58d6f6355a..0ef25b708c 100644 --- a/console/src/app/modules/contributors/contributors.component.html +++ b/console/src/app/modules/contributors/contributors.component.html @@ -13,10 +13,10 @@ data-e2e="member-avatar" > diff --git a/console/src/app/modules/contributors/contributors.component.ts b/console/src/app/modules/contributors/contributors.component.ts index d0dd487fd8..bdb3fe4540 100644 --- a/console/src/app/modules/contributors/contributors.component.ts +++ b/console/src/app/modules/contributors/contributors.component.ts @@ -2,6 +2,7 @@ import { animate, animateChild, keyframes, query, stagger, style, transition, tr import { Component, EventEmitter, Input, Output } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { Member } from 'src/app/proto/generated/zitadel/member_pb'; +import { Type } from 'src/app/proto/generated/zitadel/user_pb'; @Component({ selector: 'cnsl-contributors', @@ -36,6 +37,8 @@ export class ContributorsComponent { @Output() showDetailClicked: EventEmitter = new EventEmitter(); @Output() refreshClicked: EventEmitter = new EventEmitter(); + public UserType: any = Type; + public emitAddMember(): void { this.addClicked.emit(); } diff --git a/console/src/app/modules/create-layout/create-layout.component.scss b/console/src/app/modules/create-layout/create-layout.component.scss index 63696fcb2e..172d993cb8 100644 --- a/console/src/app/modules/create-layout/create-layout.component.scss +++ b/console/src/app/modules/create-layout/create-layout.component.scss @@ -1,3 +1,33 @@ +@use '@angular/material' as mat; + +@mixin app-create-theme($theme) { + $primary: map-get($theme, primary); + $primary-color: mat.get-color-from-palette($primary, 500); + + // Number of steps creating app + $steps: 3; + + .app-create-wrapper { + // Reference: https://github.com/angular/components/issues/10681#issuecomment-695185806 + @for $i from 1 through $steps { + @for $j from 1 through $i { + .last-edited-step-#{$i} + .mat-horizontal-stepper-header-container + .mat-step-header:nth-child(#{1 + 2 * ($j - 1)})::after, + .last-edited-step-#{$i} + .mat-horizontal-stepper-header-container + .mat-stepper-horizontal-line:nth-child(#{2 + 2 * ($j - 1)}), + .last-edited-step-#{$i} + .mat-horizontal-stepper-header-container + .mat-step-header:nth-child(#{3 + 2 * ($j - 1)})::before { + border-top-width: 3px; + border-top-color: $primary-color; + } + } + } + } +} + .create-layout-container { display: flex; align-items: center; diff --git a/console/src/app/modules/filter-events/filter-events.component.html b/console/src/app/modules/filter-events/filter-events.component.html index 7f73b8eb17..7e76d422e6 100644 --- a/console/src/app/modules/filter-events/filter-events.component.html +++ b/console/src/app/modules/filter-events/filter-events.component.html @@ -5,6 +5,7 @@ (click)="showFilter = !showFilter" class="cnsl-action-button" #triggereventfilter="cdkOverlayOrigin" + data-e2e="open-filter-button" > {{ 'ACTIONS.FILTER' | translate }} @@ -15,8 +16,6 @@ {{ 'FILTER.TITLE' | translate }} - @@ -96,6 +95,7 @@ name="eventTypesFilterSet" class="cb" formControlName="eventTypesFilterSet" + data-e2e="event-type-filter-checkbox" >{{ 'IAM.EVENTS.FILTERS.TYPE.CHECKBOX' | translate }} diff --git a/console/src/app/modules/filter-org/filter-org.component.html b/console/src/app/modules/filter-org/filter-org.component.html index a915672b6b..510ca0fcd1 100644 --- a/console/src/app/modules/filter-org/filter-org.component.html +++ b/console/src/app/modules/filter-org/filter-org.component.html @@ -22,5 +22,28 @@ + +
+ {{ 'FILTER.STATE' | translate }} + +
+ + {{ 'FILTER.METHODS.1' | translate }} + + + + + + {{ 'USER.STATE.' + state | translate }} + + + +
+
diff --git a/console/src/app/modules/filter-org/filter-org.component.ts b/console/src/app/modules/filter-org/filter-org.component.ts index 0f1a33e76d..1927a23807 100644 --- a/console/src/app/modules/filter-org/filter-org.component.ts +++ b/console/src/app/modules/filter-org/filter-org.component.ts @@ -3,13 +3,14 @@ import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/ import { ActivatedRoute, Router } from '@angular/router'; import { take } from 'rxjs'; import { TextQueryMethod } from 'src/app/proto/generated/zitadel/object_pb'; -import { OrgNameQuery, OrgQuery, OrgState } from 'src/app/proto/generated/zitadel/org_pb'; +import { OrgNameQuery, OrgQuery, OrgState, OrgStateQuery } from 'src/app/proto/generated/zitadel/org_pb'; import { UserNameQuery } from 'src/app/proto/generated/zitadel/user_pb'; import { FilterComponent } from '../filter/filter.component'; enum SubQuery { NAME, + STATE, } @Component({ @@ -21,9 +22,9 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { public SubQuery: any = SubQuery; public searchQueries: OrgQuery[] = []; - public states: OrgState[] = [OrgState.ORG_STATE_ACTIVE, OrgState.ORG_STATE_INACTIVE]; + public states: OrgState[] = [OrgState.ORG_STATE_ACTIVE, OrgState.ORG_STATE_INACTIVE, OrgState.ORG_STATE_REMOVED]; - constructor(router: Router, protected route: ActivatedRoute) { + constructor(router: Router, protected override route: ActivatedRoute) { super(router, route); } @@ -37,13 +38,17 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { const orgQueries = filters.map((filter) => { if (filter.nameQuery) { const orgQuery = new OrgQuery(); - const orgNameQuery = new OrgNameQuery(); orgNameQuery.setName(filter.nameQuery.name); orgNameQuery.setMethod(filter.nameQuery.method); - orgQuery.setNameQuery(orgNameQuery); return orgQuery; + } else if (filter.stateQuery) { + const orgQuery = new OrgQuery(); + const orgStateQuery = new OrgStateQuery(); + orgStateQuery.setState(filter.stateQuery.state); + orgQuery.setStateQuery(orgStateQuery); + return orgQuery; } else { return undefined; } @@ -64,12 +69,17 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { const nq = new OrgNameQuery(); nq.setMethod(TextQueryMethod.TEXT_QUERY_METHOD_CONTAINS_IGNORE_CASE); nq.setName(''); - const oq = new OrgQuery(); oq.setNameQuery(nq); - this.searchQueries.push(oq); break; + case SubQuery.STATE: + const sq = new OrgStateQuery(); + sq.setState(OrgState.ORG_STATE_ACTIVE); + const osq = new OrgQuery(); + osq.setStateQuery(sq); + this.searchQueries.push(osq); + break; } } else { switch (subquery) { @@ -79,6 +89,12 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { this.searchQueries.splice(index_dn, 1); } break; + case SubQuery.STATE: + const index_sn = this.searchQueries.findIndex((q) => (q as OrgQuery).toObject().stateQuery !== undefined); + if (index_sn > -1) { + this.searchQueries.splice(index_sn, 1); + } + break; } } } @@ -90,6 +106,10 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { (query as OrgNameQuery).setName(value); this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); break; + case SubQuery.STATE: + (query as OrgStateQuery).setState(value); + this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); + break; } } @@ -102,6 +122,13 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { } else { return undefined; } + case SubQuery.STATE: + const sn = this.searchQueries.find((q) => (q as OrgQuery).toObject().stateQuery !== undefined); + if (sn) { + return (sn as OrgQuery).getStateQuery(); + } else { + return undefined; + } } } @@ -110,7 +137,7 @@ export class FilterOrgComponent extends FilterComponent implements OnInit { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); } - public emitFilter(): void { + public override emitFilter(): void { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); this.showFilter = false; this.filterOpen.emit(false); diff --git a/console/src/app/modules/filter-project/filter-project.component.ts b/console/src/app/modules/filter-project/filter-project.component.ts index 5150225c53..ed75e1ffb1 100644 --- a/console/src/app/modules/filter-project/filter-project.component.ts +++ b/console/src/app/modules/filter-project/filter-project.component.ts @@ -110,7 +110,7 @@ export class FilterProjectComponent extends FilterComponent implements OnInit { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); } - public emitFilter(): void { + public override emitFilter(): void { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); this.showFilter = false; this.filterOpen.emit(false); diff --git a/console/src/app/modules/filter-user-grants/filter-user-grants.component.ts b/console/src/app/modules/filter-user-grants/filter-user-grants.component.ts index e7a05c5e89..5d0dafe2f8 100644 --- a/console/src/app/modules/filter-user-grants/filter-user-grants.component.ts +++ b/console/src/app/modules/filter-user-grants/filter-user-grants.component.ts @@ -226,7 +226,7 @@ export class FilterUserGrantsComponent extends FilterComponent implements OnInit this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); } - public emitFilter(): void { + public override emitFilter(): void { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); this.showFilter = false; this.filterOpen.emit(false); diff --git a/console/src/app/modules/filter-user/filter-user.component.ts b/console/src/app/modules/filter-user/filter-user.component.ts index 8edd937f16..e5451863e0 100644 --- a/console/src/app/modules/filter-user/filter-user.component.ts +++ b/console/src/app/modules/filter-user/filter-user.component.ts @@ -236,7 +236,7 @@ export class FilterUserComponent extends FilterComponent implements OnInit { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); } - public emitFilter(): void { + public override emitFilter(): void { this.filterChanged.emit(this.searchQueries ? this.searchQueries : []); this.showFilter = false; this.filterOpen.emit(false); diff --git a/console/src/app/modules/filter/filter.component.html b/console/src/app/modules/filter/filter.component.html index 99e3adcf90..5dc4f1863d 100644 --- a/console/src/app/modules/filter/filter.component.html +++ b/console/src/app/modules/filter/filter.component.html @@ -15,8 +15,6 @@ + + +
- +
diff --git a/console/src/app/modules/form-field/field/form-field.component.ts b/console/src/app/modules/form-field/field/form-field.component.ts index 5250a1247d..804b44fb61 100644 --- a/console/src/app/modules/form-field/field/form-field.component.ts +++ b/console/src/app/modules/form-field/field/form-field.component.ts @@ -51,6 +51,7 @@ interface ValidationError { '[class.ng-valid]': '_shouldForward("valid")', '[class.ng-invalid]': '_shouldForward("invalid")', '[class.ng-pending]': '_shouldForward("pending")', + '[class.ng-required]': '_control.required', '[class.cnsl-form-field-disabled]': '_control.disabled', '[class.cnsl-form-field-autofilled]': '_control.autofilled', '[class.cnsl-focused]': '_control.focused', @@ -69,6 +70,7 @@ export class CnslFormFieldComponent extends CnslFormFieldBase implements OnDestr @ContentChild(MatFormFieldControl) _controlNonStatic!: MatFormFieldControl; @ContentChild(MatFormFieldControl, { static: true }) _controlStatic!: MatFormFieldControl; @Input() public disableValidationErrors = false; + @Input() public hideRequiredMarker = false; get _control(): MatFormFieldControl { return this._explicitFormFieldControl || this._controlNonStatic || this._controlStatic; @@ -95,7 +97,7 @@ export class CnslFormFieldComponent extends CnslFormFieldBase implements OnDestr } constructor( - public _elementRef: ElementRef, + public override _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef, @Inject(ElementRef) _labelOptions: // Use `ElementRef` here so Angular has something to inject. diff --git a/console/src/app/modules/form-field/validators/validators.ts b/console/src/app/modules/form-field/validators/validators.ts index 9c89699f42..d3661d0dc6 100644 --- a/console/src/app/modules/form-field/validators/validators.ts +++ b/console/src/app/modules/form-field/validators/validators.ts @@ -24,6 +24,12 @@ export function requiredValidator(c: AbstractControl): ValidationErrors | null { return i18nErr(Validators.required(c), 'ERRORS.REQUIRED'); } +export function minArrayLengthValidator(minArrLength: number): ValidatorFn { + return (c: AbstractControl): ValidationErrors | null => { + return arrayLengthValidator(c, minArrLength, 'ERRORS.ATLEASTONE'); + }; +} + export function emailValidator(c: AbstractControl): ValidationErrors | null { return i18nErr(Validators.email(c), 'ERRORS.NOTANEMAIL'); } @@ -56,6 +62,12 @@ function regexpValidator(c: AbstractControl, regexp: RegExp, i18nKey: string): V return !c.value || regexp.test(c.value) ? null : i18nErr({ invalid: true }, i18nKey, { regexp: regexp }); } +function arrayLengthValidator(c: AbstractControl, length: number, i18nKey: string): ValidationErrors | null { + const arr: string[] = c.value; + const invalidStrings: string[] = arr.filter((val: string) => val.trim() === ''); + return arr && invalidStrings.length === 0 && arr.length >= length ? null : i18nErr({ invalid: true }, i18nKey); +} + function i18nErr(err: ValidationErrors | null | undefined, i18nKey: string, params?: any): ValidationErrors | null { if (err === null) { return null; diff --git a/console/src/app/modules/header/header.component.html b/console/src/app/modules/header/header.component.html index d9043c1381..fe5306256f 100644 --- a/console/src/app/modules/header/header.component.html +++ b/console/src/app/modules/header/header.component.html @@ -110,8 +110,6 @@
- + + + + + {{ 'IDP.AVATARURLATTRIBUTE' | translate }} + + + + {{ 'IDP.DISPLAYNAMEATTRIBUTE' | translate }} + + + + {{ 'IDP.EMAILATTRIBUTEATTRIBUTE' | translate }} + + + + {{ 'IDP.EMAILVERIFIEDATTRIBUTE' | translate }} + + + + {{ 'IDP.FIRSTNAMEATTRIBUTE' | translate }} + + + + {{ 'IDP.LASTNAMEATTRIBUTE' | translate }} + + + + {{ 'IDP.NICKNAMEATTRIBUTE' | translate }} + + + + {{ 'IDP.PHONEATTRIBUTE' | translate }} + + + + {{ 'IDP.PHONEVERIFIEDATTRIBUTE' | translate }} + + + + {{ 'IDP.PREFERREDLANGUAGEATTRIBUTE' | translate }} + + + + {{ 'IDP.PREFERREDUSERNAMEATTRIBUTE' | translate }} + + + + {{ 'IDP.PROFILEATTRIBUTE' | translate }} + + + diff --git a/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.scss b/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.scss index 31060727c2..7d02387d8e 100644 --- a/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.scss +++ b/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.scss @@ -4,3 +4,8 @@ max-width: 400px; padding-bottom: 1rem; } + +.attribute-more-row { + display: flex; + align-items: center; +} diff --git a/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.ts b/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.ts index 3ccf153de6..283a9940f0 100644 --- a/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.ts +++ b/console/src/app/modules/providers/ldap-attributes/ldap-attributes.component.ts @@ -29,6 +29,7 @@ export class LDAPAttributesComponent implements OnChanges, OnDestroy { profileAttribute: new FormControl('', []), }); + public showMore: boolean = false; constructor() { this.form.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => { if (value) { diff --git a/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.html b/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.html index a10621d0ef..259cdc530c 100644 --- a/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.html +++ b/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.html @@ -25,9 +25,14 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} @@ -85,7 +90,7 @@ - + {{ 'IDP.AZUREADTENANTID' | translate }} diff --git a/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.ts b/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.ts index df188d9cd2..6d6ba1f0ff 100644 --- a/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.ts +++ b/console/src/app/modules/providers/provider-azure-ad/provider-azure-ad.component.ts @@ -44,7 +44,10 @@ export class ProviderAzureADComponent { public provider?: Provider.AsObject; public updateClientSecret: boolean = false; + + public AzureTenantIDType: number = 3; public tenantTypes = [ + this.AzureTenantIDType, AzureADTenantType.AZURE_AD_TENANT_TYPE_COMMON, AzureADTenantType.AZURE_AD_TENANT_TYPE_ORGANISATIONS, AzureADTenantType.AZURE_AD_TENANT_TYPE_CONSUMERS, @@ -86,7 +89,7 @@ export class ProviderAzureADComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: @@ -126,15 +129,34 @@ export class ProviderAzureADComponent { : new MgmtGetProviderByIDRequest(); req.setId(id); this.service - .getProviderByID(req) + .getProviderID(req) .then((resp) => { - this.provider = resp.idp; + const object = resp.toObject(); + this.provider = object.idp; this.loading = false; if (this.provider?.config?.azureAd) { this.form.patchValue(this.provider.config.azureAd); this.name?.setValue(this.provider.name); this.tenantId?.setValue(this.provider.config.azureAd.tenant?.tenantId); this.tenantType?.setValue(this.provider.config.azureAd.tenant?.tenantType); + + const tenant = resp.getIdp()?.getConfig()?.getAzureAd()?.getTenant(); + + if (tenant) { + switch (tenant.getTypeCase()) { + case AzureADTenant.TypeCase.TENANT_ID: + this.tenantId?.setValue(tenant.getTenantId()); + this.tenantType?.setValue(this.AzureTenantIDType); + break; + case AzureADTenant.TypeCase.TENANT_TYPE: + this.tenantType?.setValue(tenant.getTenantType()); + this.tenantId?.setValue(''); + break; + case AzureADTenant.TypeCase.TYPE_NOT_SET: + this.tenantType?.setValue(this.AzureTenantIDType); + break; + } + } } }) .catch((error) => { @@ -159,8 +181,11 @@ export class ProviderAzureADComponent { req.setEmailVerified(this.emailVerified?.value); const tenant = new AzureADTenant(); - tenant.setTenantId(this.tenantId?.value); - tenant.setTenantType(this.tenantType?.value); + if (this.tenantType?.value === this.AzureTenantIDType) { + tenant.setTenantId(this.tenantId?.value); + } else { + tenant.setTenantType(this.tenantType?.value); + } req.setTenant(tenant); req.setScopesList(this.scopesList?.value); @@ -194,9 +219,11 @@ export class ProviderAzureADComponent { req.setEmailVerified(this.emailVerified?.value); const tenant = new AzureADTenant(); - - tenant.setTenantId(this.tenantId?.value); - tenant.setTenantType(this.tenantType?.value); + if (this.tenantType?.value === this.AzureTenantIDType) { + tenant.setTenantId(this.tenantId?.value); + } else { + tenant.setTenantType(this.tenantType?.value); + } req.setTenant(tenant); req.setScopesList(this.scopesList?.value); diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html index f0c439d298..a4511570a6 100644 --- a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html +++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html @@ -40,9 +40,14 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts index 3264f0b297..832fc0b379 100644 --- a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts +++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts @@ -80,7 +80,7 @@ export class ProviderGithubESComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: @@ -153,6 +153,7 @@ export class ProviderGithubESComponent { req.setClientId(this.clientId?.value); req.setClientSecret(this.clientSecret?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service @@ -183,6 +184,7 @@ export class ProviderGithubESComponent { req.setClientId(this.clientId?.value); req.setClientSecret(this.clientSecret?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service diff --git a/console/src/app/modules/providers/provider-github/provider-github.component.html b/console/src/app/modules/providers/provider-github/provider-github.component.html index 8b40a2070e..540c178709 100644 --- a/console/src/app/modules/providers/provider-github/provider-github.component.html +++ b/console/src/app/modules/providers/provider-github/provider-github.component.html @@ -21,9 +21,14 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-github/provider-github.component.ts b/console/src/app/modules/providers/provider-github/provider-github.component.ts index 975b255d1c..c38ebf5b4a 100644 --- a/console/src/app/modules/providers/provider-github/provider-github.component.ts +++ b/console/src/app/modules/providers/provider-github/provider-github.component.ts @@ -78,7 +78,7 @@ export class ProviderGithubComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: diff --git a/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.html b/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.html index 194e9dbede..61df5dfbbc 100644 --- a/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.html +++ b/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.html @@ -30,9 +30,14 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.ts b/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.ts index 72610d03ae..d76d5ac777 100644 --- a/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.ts +++ b/console/src/app/modules/providers/provider-gitlab-self-hosted/provider-gitlab-self-hosted.component.ts @@ -79,7 +79,7 @@ export class ProviderGitlabSelfHostedComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: diff --git a/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.html b/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.html index 0ef22147de..c4ec64094b 100644 --- a/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.html +++ b/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.html @@ -20,9 +20,14 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.ts b/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.ts index dd3c2976ef..1d88f64baa 100644 --- a/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.ts +++ b/console/src/app/modules/providers/provider-gitlab/provider-gitlab.component.ts @@ -78,7 +78,7 @@ export class ProviderGitlabComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: diff --git a/console/src/app/modules/providers/provider-google/provider-google.component.html b/console/src/app/modules/providers/provider-google/provider-google.component.html index 912d4fd8b5..a77006c7af 100644 --- a/console/src/app/modules/providers/provider-google/provider-google.component.html +++ b/console/src/app/modules/providers/provider-google/provider-google.component.html @@ -20,9 +20,13 @@ - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-google/provider-google.component.ts b/console/src/app/modules/providers/provider-google/provider-google.component.ts index e606e26553..e9ebfef253 100644 --- a/console/src/app/modules/providers/provider-google/provider-google.component.ts +++ b/console/src/app/modules/providers/provider-google/provider-google.component.ts @@ -78,7 +78,7 @@ export class ProviderGoogleComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: diff --git a/console/src/app/modules/providers/provider-jwt/provider-jwt.component.ts b/console/src/app/modules/providers/provider-jwt/provider-jwt.component.ts index ed77f4460c..33ae22567e 100644 --- a/console/src/app/modules/providers/provider-jwt/provider-jwt.component.ts +++ b/console/src/app/modules/providers/provider-jwt/provider-jwt.component.ts @@ -51,7 +51,7 @@ export class ProviderJWTComponent { breadcrumbService: BreadcrumbService, ) { this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: diff --git a/console/src/app/modules/providers/provider-ldap/provider-ldap.component.html b/console/src/app/modules/providers/provider-ldap/provider-ldap.component.html index ee49949346..21bec37703 100644 --- a/console/src/app/modules/providers/provider-ldap/provider-ldap.component.html +++ b/console/src/app/modules/providers/provider-ldap/provider-ldap.component.html @@ -17,12 +17,13 @@
{{ 'IDP.NAME' | translate }} - +

{{ 'IDP.LDAPCONNECTION' | translate }}

{{ 'IDP.BASEDN' | translate }} - +
{{ 'IDP.BINDDN' | translate }} - + - {{ - 'IDP.UPDATEBINDPASSWORD' | translate - }} - + {{ 'IDP.UPDATEBINDPASSWORD' | translate }} + {{ 'IDP.BINDPASSWORD' | translate }} - +
@@ -52,16 +63,18 @@ {{ 'IDP.USERBASE' | translate }} - +

{{ 'IDP.LDAPATTRIBUTES' | translate }}

- - - - {{ - 'IDP.REQUIRED' | translate - }} -
-
-
+

{{ 'IDP.OPTIONAL' | translate }}

@@ -113,7 +115,7 @@ color="primary" mat-raised-button class="continue-button" - [disabled]="(form.invalid && attributes.toObject().idAttribute !== '') || form.disabled" + [disabled]="!form.valid || !attributes.toObject().idAttribute || form.disabled" type="submit" > {{ 'ACTIONS.SAVE' | translate }} diff --git a/console/src/app/modules/providers/provider-ldap/provider-ldap.component.ts b/console/src/app/modules/providers/provider-ldap/provider-ldap.component.ts index 98df95ad99..db54dbe6b5 100644 --- a/console/src/app/modules/providers/provider-ldap/provider-ldap.component.ts +++ b/console/src/app/modules/providers/provider-ldap/provider-ldap.component.ts @@ -20,7 +20,7 @@ import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/ import { GrpcAuthService } from 'src/app/services/grpc-auth.service'; import { ManagementService } from 'src/app/services/mgmt.service'; import { ToastService } from 'src/app/services/toast.service'; -import { requiredValidator } from '../../form-field/validators/validators'; +import { minArrayLengthValidator, requiredValidator } from '../../form-field/validators/validators'; import { PolicyComponentServiceType } from '../../policies/policy-component-types.enum'; @@ -30,7 +30,6 @@ import { PolicyComponentServiceType } from '../../policies/policy-component-type }) export class ProviderLDAPComponent { public updateBindPassword: boolean = false; - public showAttributes: boolean = false; public showOptional: boolean = false; public options: Options = new Options().setIsCreationAllowed(true).setIsLinkingAllowed(true); public attributes: LDAPAttributes = new LDAPAttributes(); @@ -54,15 +53,15 @@ export class ProviderLDAPComponent { ) { this.form = new FormGroup({ name: new FormControl('', [requiredValidator]), - serversList: new FormControl('', [requiredValidator]), + serversList: new FormControl([''], [minArrayLengthValidator(1)]), baseDn: new FormControl('', [requiredValidator]), bindDn: new FormControl('', [requiredValidator]), bindPassword: new FormControl('', [requiredValidator]), userBase: new FormControl('', [requiredValidator]), - userFiltersList: new FormControl('', [requiredValidator]), - userObjectClassesList: new FormControl('', [requiredValidator]), + userFiltersList: new FormControl([''], [minArrayLengthValidator(1)]), + userObjectClassesList: new FormControl([''], [minArrayLengthValidator(1)]), timeout: new FormControl(0), - startTls: new FormControl(false), + startTls: new FormControl(false), }); this.authService @@ -83,7 +82,7 @@ export class ProviderLDAPComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: @@ -112,6 +111,7 @@ export class ProviderLDAPComponent { if (this.id) { this.getData(this.id); this.bindPassword?.setValidators([]); + this.bindPassword?.updateValueAndValidity(); } }); } @@ -125,12 +125,25 @@ export class ProviderLDAPComponent { this.service .getProviderByID(req) .then((resp) => { - this.provider = resp.idp; - this.loading = false; - if (this.provider?.config?.ldap) { - this.form.patchValue(this.provider.config.ldap); + if (resp.idp) { + this.provider = resp.idp; + this.loading = false; + this.name?.setValue(this.provider.name); - this.timeout?.setValue(this.provider.config.ldap.timeout?.seconds); + + const config = this.provider?.config?.ldap; + if (config) { + this.serversList?.setValue(config.serversList); + this.startTls?.setValue(config.startTls); + this.baseDn?.setValue(config.baseDn); + this.bindDn?.setValue(config.bindDn); + this.userBase?.setValue(config.userBase); + this.userObjectClassesList?.setValue(config.userObjectClassesList); + this.userFiltersList?.setValue(config.userFiltersList); + if (this.provider?.config?.ldap?.timeout?.seconds) { + this.timeout?.setValue(this.provider?.config?.ldap?.timeout?.seconds); + } + } } }) .catch((error) => { diff --git a/console/src/app/modules/providers/provider-oauth/provider-oauth.component.html b/console/src/app/modules/providers/provider-oauth/provider-oauth.component.html index b88aece27d..da85abb3a3 100644 --- a/console/src/app/modules/providers/provider-oauth/provider-oauth.component.html +++ b/console/src/app/modules/providers/provider-oauth/provider-oauth.component.html @@ -13,40 +13,45 @@

{{ 'IDP.CREATE.OAUTH.DESCRIPTION' | translate }}

- - {{ 'IDP.NAME' | translate }} - - - - - {{ 'IDP.AUTHORIZATIONENDPOINT' | translate }} - - - - - {{ 'IDP.TOKENENDPOINT' | translate }} - - - - - {{ 'IDP.USERENDPOINT' | translate }} - - - - - {{ 'IDP.IDATTRIBUTE' | translate }} - - -
+ + {{ 'IDP.NAME' | translate }} + + + + + {{ 'IDP.AUTHORIZATIONENDPOINT' | translate }} + + + + + {{ 'IDP.TOKENENDPOINT' | translate }} + + + + + {{ 'IDP.USERENDPOINT' | translate }} + + + + + {{ 'IDP.IDATTRIBUTE' | translate }} + + + {{ 'IDP.CLIENTID' | translate }} - {{ - 'IDP.UPDATECLIENTSECRET' | translate - }} + {{ 'IDP.UPDATECLIENTSECRET' | translate }} + {{ 'IDP.CLIENTSECRET' | translate }} diff --git a/console/src/app/modules/providers/provider-oauth/provider-oauth.component.ts b/console/src/app/modules/providers/provider-oauth/provider-oauth.component.ts index e789e89eb4..c838143e6f 100644 --- a/console/src/app/modules/providers/provider-oauth/provider-oauth.component.ts +++ b/console/src/app/modules/providers/provider-oauth/provider-oauth.component.ts @@ -81,7 +81,7 @@ export class ProviderOAuthComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: @@ -155,6 +155,7 @@ export class ProviderOAuthComponent { req.setClientId(this.clientId?.value); req.setClientSecret(this.clientSecret?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service @@ -186,6 +187,7 @@ export class ProviderOAuthComponent { req.setClientId(this.clientId?.value); req.setClientSecret(this.clientSecret?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service diff --git a/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts b/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts index 6302df15c6..02d6652ec5 100644 --- a/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts +++ b/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts @@ -59,7 +59,7 @@ export class ProviderOIDCComponent { }); this.route.data.pipe(take(1)).subscribe((data) => { - this.serviceType = data.serviceType; + this.serviceType = data['serviceType']; switch (this.serviceType) { case PolicyComponentServiceType.MGMT: @@ -130,6 +130,7 @@ export class ProviderOIDCComponent { req.setClientSecret(this.clientSecret?.value); req.setIssuer(this.issuer?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service @@ -158,6 +159,7 @@ export class ProviderOIDCComponent { req.setClientSecret(this.clientSecret?.value); req.setIssuer(this.issuer?.value); req.setScopesList(this.scopesList?.value); + req.setProviderOptions(this.options); this.loading = true; this.service diff --git a/console/src/app/modules/providers/providers.scss b/console/src/app/modules/providers/providers.scss index cb3ccaddf7..4eb7702c6e 100644 --- a/console/src/app/modules/providers/providers.scss +++ b/console/src/app/modules/providers/providers.scss @@ -1,5 +1,8 @@ +@use '@angular/material' as mat; + @mixin identity-provider-theme($theme) { $is-dark-theme: map-get($theme, is-dark); + $background: map-get($theme, background); .identity-provider-desc { font-size: 14px; @@ -36,10 +39,22 @@ } } + .update-secret-checkbox { + margin: 0.5rem 0 0 0; + } + .formfield { display: block; max-width: 400px; + &.pwd { + display: none; + } + + &.pwd.show { + display: block; + } + .name-hint { font-size: 12px; } @@ -59,6 +74,10 @@ } } + .string-list-component-wrapper { + max-width: 400px; + } + .identity-provider-content { display: flex; flex-direction: column; diff --git a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html index 6d725ed13c..6662b786cc 100644 --- a/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html +++ b/console/src/app/modules/search-user-autocomplete/search-user-autocomplete.component.html @@ -2,14 +2,7 @@
l.id === changes.selectedId.currentValue) - ? changes.selectedId.currentValue + this.settingsList && this.settingsList.find((l) => l.id === changes['selectedId'].currentValue) + ? changes['selectedId'].currentValue : ''; } else { this.currentSetting = this.settingsList ? this.settingsList[0].id : ''; diff --git a/console/src/app/modules/shortcuts/shortcuts.component.scss b/console/src/app/modules/shortcuts/shortcuts.component.scss index 64f6c3d5de..044e4fca3a 100644 --- a/console/src/app/modules/shortcuts/shortcuts.component.scss +++ b/console/src/app/modules/shortcuts/shortcuts.component.scss @@ -28,6 +28,11 @@ display: flex; align-items: center; + h2 { + text-transform: uppercase; + font-size: 1.2rem; + } + .shortcut-btn { margin-left: 0.5rem; } diff --git a/console/src/app/modules/string-list/string-list.component.html b/console/src/app/modules/string-list/string-list.component.html index 936bc9159f..1ff6a41e34 100644 --- a/console/src/app/modules/string-list/string-list.component.html +++ b/console/src/app/modules/string-list/string-list.component.html @@ -1,30 +1,43 @@ - - - {{ title }} - - - - +
+
+
+

{{ title }}*

+ +
+ +
+ + + -
-
- {{ str }} - - + +
+ + {{ + control.errors['errorsatleastone'].i18nKey | translate + }}
diff --git a/console/src/app/modules/string-list/string-list.component.scss b/console/src/app/modules/string-list/string-list.component.scss index 2d1779eb72..d44143914a 100644 --- a/console/src/app/modules/string-list/string-list.component.scss +++ b/console/src/app/modules/string-list/string-list.component.scss @@ -5,56 +5,50 @@ $background: map-get($theme, background); $is-dark-theme: map-get($theme, is-dark); $warn: map-get($theme, warn); - $warn-color: map-get($warn, 500); - $button-text-color: map-get($foreground, text); - $button-disabled-text-color: map-get($foreground, disabled-button); - $divider-color: map-get($foreground, dividers); - $secondary-text: map-get($foreground, secondary-text); + $warncolor: map-get($warn, 500); - .string-list { - width: 100%; + .form-array-list { + display: flex; + flex-direction: row; max-width: 400px; + background: if($is-dark-theme, #00000020, mat.get-color-from-palette($background, cards)); + margin-left: -1rem; + margin-right: -1rem; + padding: 0 1rem 0.5rem 1rem; + margin-top: 0.5rem; - .value-line { + .list-header-wrapper { display: flex; align-items: center; - margin: 0.5rem 0; - padding: 0 0 0 0.75rem; - border-radius: 4px; - background: map-get($background, infosection); + margin: 0.5rem -0.5rem 0 0; - .fill-space { - flex: 1; + .list-header { + font-size: 12px; } + } - .icon-button { - height: 30px; - line-height: 30px; + .form-field-list { + flex: 1; + display: flex; + flex-direction: column; - .icon { - font-size: 1rem; - margin-bottom: 3px; - } + .element-row { + display: flex; + align-items: center; - &:not(:hover) { - color: $secondary-text; + .formfield { + flex: 1; } } + + .control-error { + font-size: 12px; + color: $warncolor; + } + } + + .add-element-btn { + margin-bottom: 0rem; } } } - -.string-list-form { - display: flex; - align-items: flex-end; - min-width: 320px; - - .formfield { - width: 500px; - } - - button { - margin-bottom: 0.9rem; - margin-right: -0.5rem; - } -} diff --git a/console/src/app/modules/string-list/string-list.component.ts b/console/src/app/modules/string-list/string-list.component.ts index 3afa966aa1..c0380ad937 100644 --- a/console/src/app/modules/string-list/string-list.component.ts +++ b/console/src/app/modules/string-list/string-list.component.ts @@ -1,7 +1,7 @@ -import { Component, forwardRef, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; -import { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms'; -import { Observable, Subject, takeUntil } from 'rxjs'; -import { requiredValidator } from '../form-field/validators/validators'; +import { Component, forwardRef, Input, OnDestroy, ViewChildren, ViewEncapsulation } from '@angular/core'; +import { ControlValueAccessor, FormArray, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { distinctUntilChanged, Subject, takeUntil } from 'rxjs'; +import { minArrayLengthValidator, requiredValidator } from '../form-field/validators/validators'; @Component({ selector: 'cnsl-string-list', @@ -16,22 +16,23 @@ import { requiredValidator } from '../form-field/validators/validators'; }, ], }) -export class StringListComponent implements ControlValueAccessor, OnInit, OnDestroy { +export class StringListComponent implements ControlValueAccessor, OnDestroy { @Input() title: string = ''; @Input() required: boolean = false; - @Input() public getValues: Observable = new Observable(); // adds formfieldinput to array on emission - @Input() public control: FormControl = new FormControl({ value: '', disabled: true }); + @Input() public control: FormControl = new FormControl({ value: [], disabled: true }); + private destroy$: Subject = new Subject(); - @ViewChild('redInput') input!: any; - private val: string[] = []; + @ViewChildren('stringInput') input!: any[]; + public val: string[] = []; - ngOnInit(): void { - this.getValues.pipe(takeUntil(this.destroy$)).subscribe(() => { - this.add(this.input.nativeElement); + public formArray: FormArray = new FormArray([new FormControl('', [requiredValidator])]); + + constructor() { + this.control.setValidators([minArrayLengthValidator(1)]); + this.formArray.valueChanges.pipe(takeUntil(this.destroy$), distinctUntilChanged()).subscribe((value) => { + this.value = value; }); - - this.required ? this.control.setValidators([requiredValidator]) : this.control.setValidators([]); } ngOnDestroy(): void { @@ -50,12 +51,24 @@ export class StringListComponent implements ControlValueAccessor, OnInit, OnDest } } + addArrayEntry() { + this.formArray.push(new FormControl('', [requiredValidator])); + } + + removeEntryAtIndex(index: number) { + this.formArray.removeAt(index); + } + + clearEntryAtIndex(index: number) { + this.formArray.controls[index].setValue(''); + } get value() { return this.val; } writeValue(value: string[]) { this.value = value; + value.map((v, i) => this.formArray.setControl(i, new FormControl(v, [requiredValidator]))); } registerOnChange(fn: any) { @@ -73,28 +86,4 @@ export class StringListComponent implements ControlValueAccessor, OnInit, OnDest this.control.enable(); } } - - public add(input: any): void { - if (this.control.valid) { - const trimmed = input.value.trim(); - if (trimmed) { - this.val ? this.val.push(input.value) : (this.val = [input.value]); - this.onChange(this.val); - this.onTouch(this.val); - } - if (input) { - input.value = ''; - } - } - } - - public remove(str: string): void { - const index = this.value.indexOf(str); - - if (index >= 0) { - this.value.splice(index, 1); - this.onChange(this.value); - this.onTouch(this.value); - } - } } diff --git a/console/src/app/modules/string-list/string-list.module.ts b/console/src/app/modules/string-list/string-list.module.ts index fe72b2adaa..db9322641b 100644 --- a/console/src/app/modules/string-list/string-list.module.ts +++ b/console/src/app/modules/string-list/string-list.module.ts @@ -3,6 +3,7 @@ import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatIconModule } from '@angular/material/icon'; import { MatLegacyButtonModule } from '@angular/material/legacy-button'; +import { MatLegacyChipsModule } from '@angular/material/legacy-chips'; import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip'; import { TranslateModule } from '@ngx-translate/core'; import { InputModule } from '../input/input.module'; @@ -15,6 +16,7 @@ import { StringListComponent } from './string-list.component'; InputModule, FormsModule, ReactiveFormsModule, + MatLegacyChipsModule, TranslateModule, MatIconModule, MatLegacyTooltipModule, diff --git a/console/src/app/modules/user-grants/user-grants.component.html b/console/src/app/modules/user-grants/user-grants.component.html index 320a37a7f2..a0e6e80c3a 100644 --- a/console/src/app/modules/user-grants/user-grants.component.html +++ b/console/src/app/modules/user-grants/user-grants.component.html @@ -77,7 +77,7 @@ [checked]="selection.isSelected(row)" > {{ 'IAM.EVENTS.TYPE' | translate }} - + {{ event.type.localized.localizedMessage }} diff --git a/console/src/app/pages/home/home.component.html b/console/src/app/pages/home/home.component.html index 5ac7a7d735..207251c40b 100644 --- a/console/src/app/pages/home/home.component.html +++ b/console/src/app/pages/home/home.component.html @@ -1,4 +1,6 @@
+

{{ 'HOME.WELCOME' | translate }}

+
@@ -10,24 +12,66 @@

{{ 'HOME.DISCLAIMER' | translate }}

+

{{ 'ONBOARDING.MOREDESCRIPTION' | translate }}

+
- -
- + +
+
+ +
+ {{ 'HOME.DOCUMENTATION.TITLE' | translate }}
-
-
- + +
+
+ +
{{ 'HOME.GETSTARTED.TITLE' | translate }}
- -
- + +
+
+ +
{{ 'HOME.QUICKSTARTS.TITLE' | translate }}
diff --git a/console/src/app/pages/home/home.component.scss b/console/src/app/pages/home/home.component.scss index 0f6f875466..68a8a8742c 100644 --- a/console/src/app/pages/home/home.component.scss +++ b/console/src/app/pages/home/home.component.scss @@ -18,6 +18,11 @@ $border-color: if($is-dark-theme, rgba(#8795a1, 0.2), rgba(#8795a1, 0.2)); $border-selected-color: if($is-dark-theme, #fff, #000); + .home-title { + font-size: 2rem; + margin-bottom: 1rem; + } + .home-wrapper { position: relative; display: flex; @@ -34,6 +39,12 @@ } } + .desc { + font-size: 1.2rem; + margin-top: 0; + text-transform: uppercase; + } + .home-grid-container { display: grid; grid-template-columns: 1fr; @@ -58,24 +69,15 @@ font-size: 14px; background-color: $card-background-color; border: 1px solid $border-color; - border-radius: 1rem; + border-radius: 0.5rem; margin: 0; text-decoration: none; - color: white; - box-shadow: 0 0 15px #0000001a; + color: inherit; &.edit-state { cursor: move; } - &.green { - background: linear-gradient(40deg, #059669 30%, #047857); - } - - &.blue { - background: linear-gradient(40deg, #3b82f6 30%, #4f46e5); - } - .grid-item-avatar { height: 40px; width: 40px; @@ -118,6 +120,26 @@ color: white; } } + + .icon-wrapper { + display: flex; + justify-content: center; + align-items: center; + padding: 0.5rem; + border-radius: 50vw; + flex-shrink: 0; + margin-right: 1rem; + + .inner { + border-radius: 50vw; + height: 40px; + width: 40px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.75rem; + } + } } } diff --git a/console/src/app/pages/home/home.component.ts b/console/src/app/pages/home/home.component.ts index d0cd4cf8a7..f834856547 100644 --- a/console/src/app/pages/home/home.component.ts +++ b/console/src/app/pages/home/home.component.ts @@ -1,6 +1,8 @@ import { Component } from '@angular/core'; import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service'; import { GrpcAuthService } from 'src/app/services/grpc-auth.service'; +import { ThemeService } from 'src/app/services/theme.service'; +import { COLORS } from 'src/app/utils/color'; @Component({ selector: 'cnsl-home', @@ -8,9 +10,18 @@ import { GrpcAuthService } from 'src/app/services/grpc-auth.service'; styleUrls: ['./home.component.scss'], }) export class HomeComponent { + public greendark: string = COLORS[6][700]; + public greenlight = COLORS[6][200]; + + public cyandark: string = COLORS[7][700]; + public cyanlight = COLORS[7][200]; + + public bluedark: string = COLORS[9][700]; + public bluelight = COLORS[9][200]; + public dark: boolean = true; - constructor(public authService: GrpcAuthService, breadcrumbService: BreadcrumbService) { + constructor(public authService: GrpcAuthService, breadcrumbService: BreadcrumbService, public themeService: ThemeService) { const bread: Breadcrumb = { type: BreadcrumbType.ORG, routerLink: ['/org'], diff --git a/console/src/app/pages/org-create/org-create.component.ts b/console/src/app/pages/org-create/org-create.component.ts index ae467f8d2c..ea5053e828 100644 --- a/console/src/app/pages/org-create/org-create.component.ts +++ b/console/src/app/pages/org-create/org-create.component.ts @@ -45,7 +45,7 @@ export class OrgCreateComponent { public pwdForm?: UntypedFormGroup; public genders: Gender[] = [Gender.GENDER_FEMALE, Gender.GENDER_MALE, Gender.GENDER_UNSPECIFIED]; - public languages: string[] = ['de', 'en', 'fr', 'it', 'ja', 'pl', 'zh']; + public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh']; public policy?: PasswordComplexityPolicy.AsObject; public usePassword: boolean = false; diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.html b/console/src/app/pages/projects/apps/app-create/app-create.component.html index 02e47ff6ac..7bd4729e67 100644 --- a/console/src/app/pages/projects/apps/app-create/app-create.component.html +++ b/console/src/app/pages/projects/apps/app-create/app-create.component.html @@ -1,5 +1,6 @@
+ + + + check +
diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.scss b/console/src/app/pages/projects/apps/app-create/app-create.component.scss index 9a5baa1ec5..ae66cc1172 100644 --- a/console/src/app/pages/projects/apps/app-create/app-create.component.scss +++ b/console/src/app/pages/projects/apps/app-create/app-create.component.scss @@ -50,6 +50,14 @@ p.desc { .step-description { font-size: 0.9rem; } + + .mat-step-icon-content { + position: absolute; + transform: translate(-50%, -50%); + display: flex; + top: 50%; + left: 50%; + } } .checkbox-container { diff --git a/console/src/app/pages/projects/apps/app-detail/app-detail.component.html b/console/src/app/pages/projects/apps/app-detail/app-detail.component.html index f910e129d3..0d69f370d0 100644 --- a/console/src/app/pages/projects/apps/app-detail/app-detail.component.html +++ b/console/src/app/pages/projects/apps/app-detail/app-detail.component.html @@ -398,10 +398,10 @@ - +
diff --git a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts index 29cf44d169..6cb71c63a6 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts +++ b/console/src/app/pages/projects/owned-projects/project-grant-create/project-grant-create.component.ts @@ -34,7 +34,7 @@ export class ProjectGrantCreateComponent implements OnInit, OnDestroy { public ngOnInit(): void { this.route.params.pipe(takeUntil(this.destroy$)).subscribe((params) => { - this.projectId = params.projectid; + this.projectId = params['projectid']; const breadcrumbs = [ new Breadcrumb({ diff --git a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts index bb8be7939d..3532f5e43f 100644 --- a/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts +++ b/console/src/app/pages/projects/owned-projects/project-grant-detail/project-grant-detail.component.ts @@ -49,19 +49,19 @@ export class ProjectGrantDetailComponent { private breadcrumbService: BreadcrumbService, ) { this.route.params.subscribe((params) => { - this.projectid = params.projectid; - this.grantid = params.grantid; + this.projectid = params['projectid']; + this.grantid = params['grantid']; this.dataSource = new ProjectGrantMembersDataSource(this.mgmtService); - this.dataSource.loadMembers(params.projectid, params.grantid, 0, this.INITIALPAGESIZE); + this.dataSource.loadMembers(params['projectid'], params['grantid'], 0, this.INITIALPAGESIZE); - this.getRoleOptions(params.projectid); + this.getRoleOptions(params['projectid']); this.getMemberRoleOptions(); this.changePageFactory = (event?: PageEvent) => { return this.dataSource.loadMembers( - params.projectid, - params.grantid, + params['projectid'], + params['grantid'], event?.pageIndex ?? 0, event?.pageSize ?? this.INITIALPAGESIZE, ); diff --git a/console/src/app/pages/projects/projects.component.ts b/console/src/app/pages/projects/projects.component.ts index add43ca66f..4d1b55455a 100644 --- a/console/src/app/pages/projects/projects.component.ts +++ b/console/src/app/pages/projects/projects.component.ts @@ -24,7 +24,7 @@ export class ProjectsComponent { breadcrumbService: BreadcrumbService, ) { this.activatedRoute.queryParams.pipe(take(1)).subscribe((params: Params) => { - const type = params.type; + const type = params['type']; if (type && type === 'owned') { this.setType(ProjectType.PROJECTTYPE_OWNED); } else if (type && type === 'granted') { diff --git a/console/src/app/pages/users/user-create-machine/user-create-machine.component.html b/console/src/app/pages/users/user-create-machine/user-create-machine.component.html index 9685f90665..2e273a88d6 100644 --- a/console/src/app/pages/users/user-create-machine/user-create-machine.component.html +++ b/console/src/app/pages/users/user-create-machine/user-create-machine.component.html @@ -10,11 +10,11 @@
- {{ 'USER.MACHINE.USERNAME' | translate }}* + {{ 'USER.MACHINE.USERNAME' | translate }} - {{ 'USER.MACHINE.NAME' | translate }}* + {{ 'USER.MACHINE.NAME' | translate }} diff --git a/console/src/app/pages/users/user-create/user-create.component.html b/console/src/app/pages/users/user-create/user-create.component.html index acd3a8e103..e74020ea9e 100644 --- a/console/src/app/pages/users/user-create/user-create.component.html +++ b/console/src/app/pages/users/user-create/user-create.component.html @@ -13,11 +13,11 @@
- {{ 'USER.PROFILE.EMAIL' | translate }}* + {{ 'USER.PROFILE.EMAIL' | translate }} - {{ 'USER.PROFILE.USERNAME' | translate }}* + {{ 'USER.PROFILE.USERNAME' | translate }} - {{ 'USER.PROFILE.FIRSTNAME' | translate }}* + {{ 'USER.PROFILE.FIRSTNAME' | translate }} - {{ 'USER.PROFILE.LASTNAME' | translate }}* + {{ 'USER.PROFILE.LASTNAME' | translate }} diff --git a/console/src/app/pages/users/user-create/user-create.component.ts b/console/src/app/pages/users/user-create/user-create.component.ts index 65bd9d084f..c875babb4b 100644 --- a/console/src/app/pages/users/user-create/user-create.component.ts +++ b/console/src/app/pages/users/user-create/user-create.component.ts @@ -33,7 +33,7 @@ import { export class UserCreateComponent implements OnInit, OnDestroy { public user: AddHumanUserRequest.AsObject = new AddHumanUserRequest().toObject(); public genders: Gender[] = [Gender.GENDER_FEMALE, Gender.GENDER_MALE, Gender.GENDER_UNSPECIFIED]; - public languages: string[] = ['de', 'en', 'fr', 'it', 'ja', 'pl', 'zh']; + public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh']; public selected: CountryPhoneCode | undefined; public countryPhoneCodes: CountryPhoneCode[] = []; public userForm!: UntypedFormGroup; diff --git a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts index 1c86f49584..4ee1fd759d 100644 --- a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts +++ b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts @@ -33,7 +33,7 @@ import { EditDialogComponent, EditDialogType } from './edit-dialog/edit-dialog.c export class AuthUserDetailComponent implements OnDestroy { public user?: User.AsObject; public genders: Gender[] = [Gender.GENDER_MALE, Gender.GENDER_FEMALE, Gender.GENDER_DIVERSE]; - public languages: string[] = ['de', 'en', 'fr', 'it', 'ja', 'pl', 'zh']; + public languages: string[] = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh']; private subscription: Subscription = new Subscription(); diff --git a/console/src/app/pages/users/user-detail/detail-form/detail-form.component.html b/console/src/app/pages/users/user-detail/detail-form/detail-form.component.html index 7a8705c8b1..c802cf5cf4 100644 --- a/console/src/app/pages/users/user-detail/detail-form/detail-form.component.html +++ b/console/src/app/pages/users/user-detail/detail-form/detail-form.component.html @@ -11,10 +11,10 @@
diff --git a/console/src/app/pages/users/user-detail/phone-detail/phone-detail.component.ts b/console/src/app/pages/users/user-detail/phone-detail/phone-detail.component.ts index db0287300d..c69980b0e2 100644 --- a/console/src/app/pages/users/user-detail/phone-detail/phone-detail.component.ts +++ b/console/src/app/pages/users/user-detail/phone-detail/phone-detail.component.ts @@ -11,8 +11,8 @@ export class PhoneDetailComponent implements OnChanges { public country: string | undefined; ngOnChanges(changes: SimpleChanges): void { - if (changes.phone.currentValue) { - const phoneNumber = formatPhone(changes.phone.currentValue); + if (changes['phone'].currentValue) { + const phoneNumber = formatPhone(changes['phone'].currentValue); if (this.phone !== phoneNumber.phone) { this.phone = phoneNumber.phone; this.country = phoneNumber.country; diff --git a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts index 7ff56cbc47..db6c9d9e3a 100644 --- a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts +++ b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts @@ -44,7 +44,7 @@ export class UserDetailComponent implements OnInit { public user!: User.AsObject; public metadata: Metadata.AsObject[] = []; public genders: Gender[] = [Gender.GENDER_MALE, Gender.GENDER_FEMALE, Gender.GENDER_DIVERSE]; - public languages: string[] = ['de', 'en', 'it', 'fr', 'ja', 'pl', 'zh']; + public languages: string[] = ['de', 'en', 'es', 'it', 'fr', 'ja', 'pl', 'zh']; public ChangeType: any = ChangeType; diff --git a/console/src/app/pages/users/user-list/user-table/user-table.component.html b/console/src/app/pages/users/user-list/user-table/user-table.component.html index 034482d98f..347b738e99 100644 --- a/console/src/app/pages/users/user-list/user-table/user-table.component.html +++ b/console/src/app/pages/users/user-list/user-table/user-table.component.html @@ -92,17 +92,11 @@ [checked]="selection.isSelected(user)" > diff --git a/console/src/app/pages/users/user-list/user-table/user-table.component.ts b/console/src/app/pages/users/user-list/user-table/user-table.component.ts index 948eee8022..415fd6110e 100644 --- a/console/src/app/pages/users/user-list/user-table/user-table.component.ts +++ b/console/src/app/pages/users/user-list/user-table/user-table.component.ts @@ -96,7 +96,7 @@ export class UserTableComponent implements OnInit { ngOnInit(): void { this.route.queryParams.pipe(take(1)).subscribe((params) => { this.getData(this.INITIAL_PAGE_SIZE, 0, this.type); - if (params.deferredReload) { + if (params['deferredReload']) { setTimeout(() => { this.getData(this.paginator.pageSize, this.paginator.pageIndex * this.paginator.pageSize, this.type); }, 2000); @@ -204,6 +204,7 @@ export class UserTableComponent implements OnInit { sortingField = UserFieldName.USER_FIELD_NAME_CREATION_DATE; break; } + this.userService .listUsers( limit, diff --git a/console/src/app/pipes/localized-date-pipe/localized-date.pipe.ts b/console/src/app/pipes/localized-date-pipe/localized-date.pipe.ts index 62345ba116..b0ff4f2095 100644 --- a/console/src/app/pipes/localized-date-pipe/localized-date.pipe.ts +++ b/console/src/app/pipes/localized-date-pipe/localized-date.pipe.ts @@ -22,7 +22,7 @@ export class LocalizedDatePipe implements PipeTransform { return moment(value).format(`${format}, HH:mm`); } } else { - const lang = ['de', 'en', 'fr', 'it', 'ja', 'pl', 'zh'].includes(this.translateService.currentLang) + const lang = ['de', 'en', 'es', 'fr', 'it', 'ja', 'pl', 'zh'].includes(this.translateService.currentLang) ? this.translateService.currentLang : 'en'; const datePipe: DatePipe = new DatePipe(lang); diff --git a/console/src/app/services/admin.service.ts b/console/src/app/services/admin.service.ts index 25b3620efb..e6e2b130ad 100644 --- a/console/src/app/services/admin.service.ts +++ b/console/src/app/services/admin.service.ts @@ -267,9 +267,20 @@ export interface OnboardingActions { oneof: string[]; link: string | string[]; fragment?: string | undefined; + iconClasses?: string; + darkcolor: string; + lightcolor: string; } -type OnboardingEvent = { order: number; link: string; fragment: string | undefined; event: Event.AsObject | undefined }; +type OnboardingEvent = { + order: number; + link: string; + fragment: string | undefined; + event: Event.AsObject | undefined; + iconClasses?: string; + darkcolor: string; + lightcolor: string; +}; type OnboardingEventEntries = Array<[string, OnboardingEvent]> | []; @Injectable({ @@ -286,14 +297,30 @@ export class AdminService { const eventsReq = new ListEventsRequest().setAsc(true).setEventTypesList(searchForTypes).setAsc(false); return from(this.listEvents(eventsReq)).pipe( map((events) => { - const el = events.toObject().eventsList.filter((e) => e.editor?.service !== 'System-API'); + const el = events.toObject().eventsList.filter((e) => e.editor?.service !== 'System-API' && e.editor?.userId); let obj: { [type: string]: OnboardingEvent } = {}; actions.map((action) => { const filtered = el.filter((event) => event.type?.type && action.oneof.includes(event.type.type)); (obj as any)[action.eventType] = filtered.length - ? { order: action.order, link: action.link, fragment: action.fragment, event: filtered[0] } - : { order: action.order, link: action.link, fragment: action.fragment, event: undefined }; + ? { + order: action.order, + link: action.link, + fragment: action.fragment, + event: filtered[0], + iconClasses: action.iconClasses, + darkcolor: action.darkcolor, + lightcolor: action.lightcolor, + } + : { + order: action.order, + link: action.link, + fragment: action.fragment, + event: undefined, + iconClasses: action.iconClasses, + darkcolor: action.darkcolor, + lightcolor: action.lightcolor, + }; }); const toArray = Object.entries(obj).sort(([key0, a], [key1, b]) => a.order - b.order); @@ -1020,6 +1047,10 @@ export class AdminService { return this.grpcService.admin.getProviderByID(req, null).then((resp) => resp.toObject()); } + public getProviderID(req: GetProviderByIDRequest): Promise { + return this.grpcService.admin.getProviderByID(req, null); + } + public listIAMMembers( limit: number, offset: number, diff --git a/console/src/app/services/mgmt.service.ts b/console/src/app/services/mgmt.service.ts index 0574bbf4af..49efdcb4c4 100644 --- a/console/src/app/services/mgmt.service.ts +++ b/console/src/app/services/mgmt.service.ts @@ -987,6 +987,10 @@ export class ManagementService { return this.grpcService.mgmt.getProviderByID(req, null).then((resp) => resp.toObject()); } + public getProviderID(req: GetProviderByIDRequest): Promise { + return this.grpcService.mgmt.getProviderByID(req, null); + } + public addHumanUser(req: AddHumanUserRequest): Promise { return this.grpcService.mgmt.addHumanUser(req, null).then((resp) => resp.toObject()); } diff --git a/console/src/app/services/seo.service.ts b/console/src/app/services/seo.service.ts index d5a28999e2..6db0936d29 100644 --- a/console/src/app/services/seo.service.ts +++ b/console/src/app/services/seo.service.ts @@ -1,8 +1,6 @@ import { Injectable } from '@angular/core'; import { Meta } from '@angular/platform-browser'; -import { environment } from '../../environments/environment'; - @Injectable({ providedIn: 'root', }) @@ -14,7 +12,7 @@ export class SeoService { config = { title: 'ZITADEL Console', description: 'Managementplatform for ZITADEL', - image: 'https://www.zitadel.ch/zitadel-social-preview25.png', + image: 'https://www.zitadel.com/images/preview.png', slug: '', ...config, }; @@ -27,15 +25,11 @@ export class SeoService { if (config.image) { this.meta.updateTag({ property: 'og:image', content: config.image }); } - this.meta.updateTag({ - property: 'og:url', - content: `https://${environment.production ? 'console.zitadel.ch' : 'console.zitadel.dev'}/${config.slug}`, - }); this.meta.updateTag({ property: 'twitter:card', content: 'summary' }); this.meta.updateTag({ property: 'og:site', content: '@zitadel_ch' }); this.meta.updateTag({ property: 'og:title', content: config.title }); - this.meta.updateTag({ property: 'og:image', content: 'https://www.zitadel.ch/zitadel-social-preview25.png' }); + this.meta.updateTag({ property: 'og:image', content: 'https://www.zitadel.com/images/preview.png' }); this.meta.updateTag({ property: 'og:description', content: config.description }); } } diff --git a/console/src/app/utils/onboarding.ts b/console/src/app/utils/onboarding.ts index 1fa1e31154..4f66c15198 100644 --- a/console/src/app/utils/onboarding.ts +++ b/console/src/app/utils/onboarding.ts @@ -1,16 +1,70 @@ import { OnboardingActions } from '../services/admin.service'; +import { COLORS } from './color'; + +const reddark: string = COLORS[0][700]; +const redlight = COLORS[0][200]; + +const yellowdark: string = COLORS[3][700]; +const yellowlight = COLORS[3][200]; + +const greendark: string = COLORS[6][700]; +const greenlight = COLORS[6][200]; + +const bluedark: string = COLORS[9][700]; +const bluelight = COLORS[9][200]; + +const purpledark: string = COLORS[12][700]; +const purplelight = COLORS[12][200]; + +const pinkdark: string = COLORS[15][700]; +const pinklight = COLORS[15][200]; export const ONBOARDING_EVENTS: OnboardingActions[] = [ - { order: 0, eventType: 'project.added', oneof: ['project.added'], link: ['/projects/create'] }, - { order: 1, eventType: 'project.application.added', oneof: ['project.application.added'], link: ['/projects/app-create'] }, - { order: 2, eventType: 'user.human.added', oneof: ['user.human.added'], link: ['/users/create'] }, - { order: 3, eventType: 'user.grant.added', oneof: ['user.grant.added'], link: ['/grant-create'] }, + { + order: 0, + eventType: 'project.added', + oneof: ['project.added'], + link: ['/projects/create'], + iconClasses: 'las la-database', + darkcolor: greendark, + lightcolor: greenlight, + }, + { + order: 1, + eventType: 'project.application.added', + oneof: ['project.application.added'], + link: ['/projects/app-create'], + iconClasses: 'lab la-openid', + darkcolor: purpledark, + lightcolor: purplelight, + }, + { + order: 2, + eventType: 'user.human.added', + oneof: ['user.human.added'], + link: ['/users/create'], + iconClasses: 'las la-user', + darkcolor: bluedark, + lightcolor: bluelight, + }, + { + order: 3, + eventType: 'user.grant.added', + oneof: ['user.grant.added'], + link: ['/grant-create'], + iconClasses: 'las la-shield-alt', + darkcolor: reddark, + lightcolor: redlight, + }, { order: 4, eventType: 'instance.policy.label.added', oneof: ['instance.policy.label.added', 'instance.policy.label.changed'], link: ['/settings'], fragment: 'branding', + iconClasses: 'las la-swatchbook', + darkcolor: pinkdark, + lightcolor: pinklight, }, { order: 5, @@ -18,5 +72,8 @@ export const ONBOARDING_EVENTS: OnboardingActions[] = [ oneof: ['instance.smtp.config.added', 'instance.smtp.config.changed'], link: ['/settings'], fragment: 'notifications', + iconClasses: 'las la-envelope', + darkcolor: yellowdark, + lightcolor: yellowlight, }, ]; diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json index 7a43894f38..eabe26ba69 100644 --- a/console/src/assets/i18n/de.json +++ b/console/src/assets/i18n/de.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "Dein Onboarding-prozess", + "MOREDESCRIPTION": "mehr Shortcuts", "COMPLETED": "abgeschlossen", "DISMISS": "schließen", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "Branding anpassen", - "description": "Definiere Farben und Form des Login-UIs und uploade deine Logos und Icons." + "description": "Definiere Farben und Form des Login-UIs und uploade deine Logos und Icons.", + "action": "Branding anpassen" }, "instance.smtp.config.added": { "title": "SMTP Benachrichtigungseinstellungen", - "description": "Konfiguriere deinen Mailserver." + "description": "Konfiguriere deinen Mailserver.", + "action": "SMTP einrichten" }, "project.added": { "title": "Erstelle ein Projekt", - "description": "Erstelle dein erstes Projekt und definiere Rollen" + "description": "Erstelle dein erstes Projekt und definiere Rollen", + "action": "Projekt erstellen" }, "project.application.added": { "title": "Erstelle eine App", - "description": "Erstelle deine erste Web-, native, API oder SAML-applikation und konfiguriere den Authentification-flow." + "description": "Erstelle deine erste Web-, native, API oder SAML-applikation und konfiguriere den Authentification-flow.", + "action": "App erstellen" }, "user.human.added": { "title": "Erfasse Benutzer", - "description": "Erstelle Benutzer die später deine Apps nutzen können." + "description": "Erstelle Benutzer die später deine Apps nutzen können.", + "action": "Benutzer erfassen" }, "user.grant.added": { "title": "Berechtige Benutzer", - "description": "Erlaube es deinen Nutzern auf deine Apps zuzugreifen und gebe ihnen Rollen." + "description": "Erlaube es deinen Nutzern auf deine Apps zuzugreifen und gebe ihnen Rollen.", + "action": "Benutzer berechtigen" } } }, @@ -240,6 +247,7 @@ }, "ERRORS": { "REQUIRED": "Bitte fülle dieses Feld aus.", + "ATLEASTONE": "Geben Sie mindestens einen Wert an.", "TOKENINVALID": { "TITLE": "Du bist abgemeldet", "DESCRIPTION": "Klicke auf \"Einloggen\", um Dich erneut anzumelden." @@ -1012,6 +1020,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1210,6 +1219,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1690,9 +1700,10 @@ "2": "inaktiv" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "ADD": "Identitätsanbieter hinzufügen", "AZUREADTENANTTYPE": "Tenant Typ", @@ -2071,6 +2082,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index 23b0233b30..d85876e19f 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "Your onboarding process", + "MOREDESCRIPTION": "more shortcuts", "COMPLETED": "completed", "DISMISS": "No thanks, I'm a pro.", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "Setup your brand", - "description": "Define coloring and shape of your login and upload your logo and icons." + "description": "Define coloring and shape of your login and upload your logo and icons.", + "action": "Setup branding" }, "instance.smtp.config.added": { "title": "Setup your SMTP settings", - "description": "Set your own mail server settings." + "description": "Set your own mail server settings.", + "action": "Setup SMTP" }, "project.added": { - "title": "Create your first project", - "description": "Add your first project and define its roles and authorizations." + "title": "Create a project", + "description": "Add a project and define its roles and authorizations.", + "action": "Create project" }, "project.application.added": { - "title": "Create your first application", - "description": "Create a web, native, api or saml application and setup your authentication flow." + "title": "Create an application", + "description": "Create a web, native, api or saml application and setup your authentication flow.", + "action": "Create app" }, "user.human.added": { "title": "Add users", - "description": "Add your application users" + "description": "Add your application users", + "action": "Add user" }, "user.grant.added": { "title": "Grant users", - "description": "Allow users to access your application and setup their role." + "description": "Allow users to access your application and setup their role.", + "action": "Grant user" } } }, @@ -241,6 +248,7 @@ }, "ERRORS": { "REQUIRED": "Please fill in this field.", + "ATLEASTONE": "Provide at least one value.", "TOKENINVALID": { "TITLE": "Your authorization token has expired.", "DESCRIPTION": "Click the button below to log in again." @@ -1013,6 +1021,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1142,6 +1151,10 @@ "MAXSIZEEXCEEDED": "Maximum size of 524kB exceeded.", "NOSVGSUPPORTED": "SVG are not supported!", "FONTINLOGINONLY": "The font is currently only displayed in the login interface.", + "BACKGROUNDCOLOR": "Background color", + "PRIMARYCOLOR": "Primary color", + "WARNCOLOR": "Warning color", + "FONTCOLOR": "Font color", "VIEWS": { "PREVIEW": "Preview", "CURRENT": "Current Configuration" @@ -1202,11 +1215,12 @@ "RESET_TITLE": "Restore Default Values", "RESET_DESCRIPTION": "You are about to restore all default values. All changes you have made will be permanently deleted. Do you really want to continue?", "UNSAVED_TITLE": "Continue without saving?", - "UNSAVED_DESCRIPTION": "Your have made changes without saving. Do you want to save now?", + "UNSAVED_DESCRIPTION": "You have made changes without saving. Do you want to save now?", "LOCALE": "Locale Code", "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1686,9 +1700,10 @@ "2": "inactive" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "AZUREADTENANTTYPE": "Tenant Type", "AZUREADTENANTID": "Tenant ID", @@ -2064,6 +2079,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/es.json b/console/src/assets/i18n/es.json new file mode 100644 index 0000000000..ac8799d411 --- /dev/null +++ b/console/src/assets/i18n/es.json @@ -0,0 +1,2162 @@ +{ + "APP_NAME": "ZITADEL", + "PAGINATOR": { + "PREVIOUS": "Anterior", + "NEXT": "Siguiente", + "COUNT": "Resultados totales", + "MORE": "Más" + }, + "FOOTER": { + "LINKS": { + "CONTACT": "Contacto", + "TOS": "Términos de servicio", + "PP": "Política de privacidad" + }, + "THEME": { + "DARK": "Oscuro", + "LIGHT": "Claro" + } + }, + "HOME": { + "WELCOME": "Comienza con ZITADEL", + "DISCLAIMER": "ZITADEL trata tus datos confidencialmente y de forma segura.", + "DISCLAIMERLINK": "Más información", + "DOCUMENTATION": { + "TITLE": "Documentación", + "DESCRIPTION": "Comienza rápidamente con ZITADEL." + }, + "GETSTARTED": { + "TITLE": "Comienza con ZITADEL", + "DESCRIPTION": "Comienza rápidamente con ZITADEL." + }, + "QUICKSTARTS": { + "LABEL": "Primeros pasos", + "TITLE": "Guías de inicio rápido", + "DESCRIPTION": "Comienza rápidamente con ZITADEL." + }, + "SHORTCUTS": { + "SHORTCUTS": "Accesos directos", + "SETTINGS": "Accesos directos disponibles", + "PROJECTS": "Proyectos", + "REORDER": "Mantén y arrastra el panel para moverlo", + "ADD": "Mantén y arrastrq el panel para añadirlo" + } + }, + "ONBOARDING": { + "DESCRIPTION": "Tu proceso de embarque", + "COMPLETED": "completado", + "MOREDESCRIPTION": "más atajos", + "DISMISS": "No gracias, soy pro.", + "CARD": { + "TITLE": "Ponte en marcha con ZITADEL", + "DESCRIPTION": "Esta lista de tareas te ayuda a configurar tu instancia y te guía por los pasos más esenciales" + }, + "EVENTS": { + "instance.policy.label.added": { + "title": "Configura tu imagen de marca", + "description": "Define el esquema de colores, da forma a tu inicio de sesión y sube tu logo y tus iconos.", + "action": "Configurar imagen" + }, + "instance.smtp.config.added": { + "title": "Establece tu configuración SMTP", + "description": "Introduce la configuración de tu propio servidor de correo.", + "action": "Configurar SMTP" + }, + "project.added": { + "title": "Crea tu primer proyecto", + "description": "Añade tu primer proyecto y define sus roles y autorizaciones.", + "action": "Crear proyecto" + }, + "project.application.added": { + "title": "Crea tu primera aplicación", + "description": "Crea una aplicación web, nativa, api o saml y configura tu flujo de autenticación.", + "action": "Crear app" + }, + "user.human.added": { + "title": "Añade usuarios", + "description": "Añade los usuarios de tu aplicación", + "action": "Añadir usuario" + }, + "user.grant.added": { + "title": "Concede permisos", + "description": "Permite a tus usuarios acceder a tu aplicación y configura sus roles.", + "action": "Conceder permisos" + } + } + }, + "MENU": { + "INSTANCE": "Instancia", + "DASHBOARD": "Inicio", + "PERSONAL_INFO": "Información personal", + "DOCUMENTATION": "Documentación", + "INSTANCEOVERVIEW": "Instancia", + "ORGS": "Organizaciones", + "VIEWS": "Vistas", + "EVENTS": "Eventos", + "FAILEDEVENTS": "Eventos fallidos", + "ORGANIZATION": "Organización", + "DOMAINS": "Dominios", + "PROJECT": "Proyectos", + "PROJECTOVERVIEW": "Resumen", + "PROJECTGRANTS": "Concesiones", + "ROLES": "Roles", + "GRANTEDPROJECT": "Proyecto concedido", + "HUMANUSERS": "Usuarios", + "MACHINEUSERS": "Usuarios del servicio", + "LOGOUT": "Cerrar sesión para todos los usuarios", + "NEWORG": "Nueva organización", + "IAMADMIN": "Eres un administrador IAM. Ten en cuenta que tienes permisos ampliados.", + "SHOWORGS": "Mostrar todas las organizaciones", + "GRANTS": "Autorizaciones", + "ACTIONS": "Acciones", + "PRIVACY": "Privacidad", + "TOS": "Términos de Servicio", + "OPENSHORTCUTSTOOLTIP": "Pulsa ? para mostrar los atajos de teclado", + "SETTINGS": "Ajustes", + "CUSTOMERPORTAL": "Portal del cliente" + }, + "ACTIONS": { + "ACTIONS": "Acciones", + "FILTER": "Filtrar", + "RENAME": "Renombrar", + "SET": "Establecer", + "COPY": "Copiar al portapapeles", + "COPIED": "Copiado al portapapeles.", + "RESET": "Restablecer", + "RESETDEFAULT": "Restablecer a valores por defecto", + "RESETTO": "Restablecer a: ", + "RESETCURRENT": "Restablecer a actual", + "SHOW": "Mostrar", + "HIDE": "Ocultar", + "SAVE": "Guardar", + "SAVENOW": "Guardar ahora", + "NEW": "Nuevo", + "ADD": "Añadir", + "CREATE": "Crear", + "CONTINUE": "Continuar", + "BACK": "Atrás", + "CLOSE": "Cerrar", + "CLEAR": "Limpiar", + "CANCEL": "Cancelar", + "INFO": "Info", + "OK": "OK", + "SELECT": "Seleccionar", + "VIEW": "Mostrar", + "SELECTIONDELETE": "Borrar selección", + "DELETE": "Borrar", + "REMOVE": "Eliminar", + "VERIFY": "Verificar", + "FINISH": "Finalizar", + "FINISHED": "Cerrar", + "CHANGE": "Cambiar", + "REACTIVATE": "Reactivar", + "ACTIVATE": "Activar", + "DEACTIVATE": "Desactivar", + "REFRESH": "Actualizar", + "LOGIN": "Iniciar sesión", + "EDIT": "Editar", + "PIN": "Marcar / Desmarcar", + "CONFIGURE": "Configurar", + "SEND": "Enviar", + "NEWVALUE": "Nuevo valor", + "RESTORE": "Restaurar", + "CONTINUEWITHOUTSAVE": "Continuar sin guardar", + "OF": "de", + "PREVIOUS": "Anterior", + "NEXT": "Siguiente", + "MORE": "más", + "STEP": "Paso", + "SETUP": "Configurar", + "COMINGSOON": "Próximamente", + "TABLE": { + "SHOWUSER": "Mostrar usuario {{value}}" + } + }, + "MEMBERROLES": { + "IAM_OWNER": "Tiene control sobre toda la instancia, incluyendo todas las organizaciones", + "IAM_OWNER_VIEWER": "Tiene permiso para revisar toda la instancia, incluyendo todas las organizaciones", + "IAM_ORG_MANAGER": "Tiene permiso para crear y gestionar organizaciones", + "IAM_USER_MANAGER": "Tiene permiso para crear y gestionar usuarios", + "ORG_OWNER": "Tiene permisos sobre toda la organización", + "ORG_USER_MANAGER": "Tiene permiso para crear y gestionar usuarios de la organización", + "ORG_OWNER_VIEWER": "TIene permiso para revisar toda la organización", + "ORG_USER_PERMISSION_EDITOR": "Tiene permiso para gestionar concesiones de usuario", + "ORG_PROJECT_PERMISSION_EDITOR": "Tiene permiso para gestionar concesiones de proyecto", + "ORG_PROJECT_CREATOR": "Tiene permiso para crear sus propios proyectos y ajustes subyacentes", + "PROJECT_OWNER": "Tiene permiso sobre todo el proyecto", + "PROJECT_OWNER_VIEWER": "Tiene permiso para revisar todo el proyecto", + "PROJECT_OWNER_GLOBAL": "Tiene permiso sobre todo el proyecto", + "PROJECT_OWNER_VIEWER_GLOBAL": "Tiene permiso para revisar todo el proyecto", + "PROJECT_GRANT_OWNER": "Tiene permiso para gestionar la concesión del proyecto", + "PROJECT_GRANT_OWNER_VIEWER": "Tiene permiso para revisar la concesión del proyecto" + }, + "OVERLAYS": { + "ORGSWITCHER": { + "TEXT": "Todos los ajustes de la organización y las tablas de la consola se basan en la organización seleccionada. Haz clic en este botón para cambiar la organización o crear una nueva." + }, + "INSTANCE": { + "TEXT": "Haz clic aquí para obtener las configuraciones de instancia. Ten en cuenta que sólo tienes acceso a este botón si tienes permisos aumentados." + }, + "PROFILE": { + "TEXT": "Aquí puedes cambiar entre tus cuentas de usuario y gestionar tus sesiones y perfiles." + }, + "NAV": { + "TEXT": "Esta navegación cambia de acuerdo a tu organización seleccionada arriba o a tu instancia" + }, + "CONTEXTCHANGED": { + "TEXT": "¡Atención! El contexto de la organización ha cambiado." + } + }, + "FILTER": { + "TITLE": "Filtrar", + "STATE": "Estado", + "DISPLAYNAME": "Nombre mostrado", + "EMAIL": "Email", + "USERNAME": "Nombre de usuario", + "ORGNAME": "Nombre de organización", + "PROJECTNAME": "Nombre de proyecto", + "RESOURCEOWNER": "Propietario del recurso", + "METHODS": { + "5": "contiene", + "7": "finaliza con", + "1": "igual" + } + }, + "KEYBOARDSHORTCUTS": { + "TITLE": "Atajos de teclado", + "UNDERORGCONTEXT": "Dentro de las páginas de la organización", + "SIDEWIDE": "Atajos para todo el sitio", + "SHORTCUTS": { + "HOME": "Go to Home", + "INSTANCE": "Go to Iinstance", + "ORG": "Go to Organization", + "ORGSETTINGS": "Go to Organization Settings", + "ORGSWITCHER": "Cambiar organización", + "ME": "Ir a tu propio perfil", + "PROJECTS": "Go to Projects", + "USERS": "Go to Users", + "USERGRANTS": "Go to Authorizations", + "ACTIONS": "Go to Actions and Flows", + "DOMAINS": "Go to Domains" + } + }, + "RESOURCEID": "Id de recurso", + "NAME": "Nombre", + "VERSION": "Versión", + "TABLE": { + "NOROWS": "No hay datos" + }, + "ERRORS": { + "REQUIRED": "Por favor rellena este campo.", + "ATLEASTONE": "Proporcione al menos un valor.", + "TOKENINVALID": { + "TITLE": "Tu token de autorización token ha caducado.", + "DESCRIPTION": "Haz clic en el botón más abajo para iniciar sesión otra vez." + }, + "INVALID_FORMAT": "El formato no es valido.", + "NOTANEMAIL": "El valor proporcionado no es una dirección de email.", + "MINLENGTH": "Debe tener al menos {{requiredLength}} caracteres de longitud.", + "UPPERCASEMISSING": "Debe incluir un carácter en mayúscula.", + "LOWERCASEMISSING": "Debe incluir un carácter en minúscula.", + "SYMBOLERROR": "Debe incluir un símbolo o un signo de puntuación.", + "NUMBERERROR": "Debe incluir un dígito.", + "PWNOTEQUAL": "Las contraseñas proporcionadas no coinciden.", + "PHONE": "El número de teléfono debe comenzar con 00 o +." + }, + "USER": { + "SETTINGS": { + "TITLE": "Ajustes", + "GENERAL": "General", + "IDP": "Proveedores de identidad (IDP)", + "SECURITY": "Contraseñas y seguridad", + "KEYS": "Claves", + "PAT": "Tokens de acceso personal", + "USERGRANTS": "Autorizaciones", + "MEMBERSHIPS": "Membresías", + "METADATA": "Metadatos" + }, + "TITLE": "Información personal", + "DESCRIPTION": "Gestionar tu información y configuraciones de seguridad.", + "PAGES": { + "LIST": "Usuarios", + "TITLE": "Usuario", + "DESCRIPTION": "Crear nuevos usuarios en tu organización y gestionar el resto de organizaciones.", + "LISTMACHINE": "Usuarios del servicio", + "DESCRIPTIONMACHINE": "Crea y gestiona usuarios del servicio de tu organización", + "DETAIL": "Detalle", + "CREATE": "Crear", + "MY": "Mi información", + "LOGINNAMES": "Nombres de inicio de sesión", + "LOGINMETHODS": "Métodos de inicio de sesión", + "LOGINNAMESDESC": "Estos son tus nombres de inicio de sesión:", + "NOUSER": "No existen usuarios asociados.", + "REACTIVATE": "Reactivar", + "DEACTIVATE": "Desactivar", + "FILTER": "Filtrar", + "STATE": "Estado", + "DELETE": "Borrar usuario", + "UNLOCK": "Desbloquear usuario", + "GENERATESECRET": "Generar secreto del cliente", + "REMOVESECRET": "Borrar secreto del cliente", + "LOCKEDDESCRIPTION": "Este usuario ha sido bloqueado debido a que ha excedido el número máximo de intentos de inicio de sesión y debe desbloquearse para poder usarse otra vez.", + "DELETEACCOUNT": "Borrar cuenta", + "DELETEACCOUNT_DESC": "Si realizas esta acción, se cerrará tu sesión y no podrás volver a tener acceso a tu cuenta. Esta acción no es reversible, por favor procede con cuidado.", + "DELETEACCOUNT_BTN": "Borrar cuenta", + "DELETEACCOUNT_SUCCESS": "¡La cuenta se borró con éxito!" + }, + "DETAILS": { + "DATECREATED": "Creada", + "DATECHANGED": "Cambiada" + }, + "DIALOG": { + "DELETE_TITLE": "Borrar usuario", + "DELETE_SELF_TITLE": "Borrar cuenta", + "DELETE_DESCRIPTION": "Está a punto de borrar permanentemente un usuario. ¿Está seguro?", + "DELETE_SELF_DESCRIPTION": "Estás a punto de borrar permanentemente tu cuenta personal. Esto cerrará tu sesión y borrará tu usuario. ¡Esta acción no puede deshacerse!", + "DELETE_AUTH_DESCRIPTION": "Estás a punto de borrar permanentemente tu cuenta personal. ¿Estás seguro?", + "TYPEUSERNAME": "Escribe '{{value}}', para confirmar y borrar el usuario.", + "USERNAME": "Nombre de inicio de sesión", + "DELETE_BTN": "Borrar permanentemente" + }, + "SENDEMAILDIALOG": { + "TITLE": "Enviar notificación por email", + "DESCRIPTION": "Haz clic en el siguiente botón para enviar una notificación a la dirección de email actual o cambia la dirección de email en el campo habilitado.", + "NEWEMAIL": "Nueva dirección de email" + }, + "SECRETDIALOG": { + "CLIENTSECRET": "Secreto de cliente", + "CLIENTSECRET_DESCRIPTION": "Mantén tu secreto de cliente en un lugar seguro puesto que desaparecerá una vez que se cierre el diálogo." + }, + "TABLE": { + "DEACTIVATE": "Desactivar", + "ACTIVATE": "Activar", + "CHANGEDATE": "Última modificación", + "CREATIONDATE": "Creado el", + "TYPES": { + "HUMAN": "Usuarios", + "MACHINE": "Usuarios del servicio" + }, + "FILTER": { + "0": "Filtrar por nombre mostrado", + "1": "Filtrar por nombre de usuario", + "2": "Filtrar por nombre mostrado", + "3": "Filtrar por nombre de usuario", + "4": "filtrar por email", + "5": "filtrar for nombre mostrado", + "10": "filtrar por nombre de organización", + "12": "filtrar por nombre de proyecto" + }, + "EMPTY": "Sin entradas" + }, + "PASSWORDLESS": { + "SEND": "Enviar enlace de registro", + "TABLETYPE": "Tipo", + "TABLESTATE": "Estado", + "NAME": "Nombre", + "EMPTY": "No se han configurado dispositivos", + "TITLE": "Autenticación sin contraseña", + "DESCRIPTION": "Añadir métodos de autenticación basados en WebAuthn para iniciar sesión en ZITADEL sin contraseña.", + "MANAGE_DESCRIPTION": "Gestiona los métodos de doble factor de tus usuarios.", + "U2F": "Añadir método", + "U2F_DIALOG_TITLE": "Verificar autenticador", + "U2F_DIALOG_DESCRIPTION": "Introduce un nombre para el inicio de sesión sin contraseña utilizado", + "U2F_SUCCESS": "¡La autenticación sin contraseña se creó con éxito!", + "U2F_ERROR": "¡Se ha producido un error durante la configuración!", + "U2F_NAME": "Nombre de autenticador", + "TYPE": { + "0": "No se ha definido MFA", + "1": "One Time Password (OTP)", + "2": "Huella dactilar, claves de seguridad, Face ID y otros" + }, + "STATE": { + "0": "Sin estado", + "1": "No está listo", + "2": "Listo", + "3": "Borrado" + }, + "DIALOG": { + "DELETE_TITLE": "Eliminar método de autenticación sin contraseña", + "DELETE_DESCRIPTION": "Estás a punto de borrar un método de autenticación sin contraseña. ¿Estás seguro?", + "ADD_TITLE": "Autenticación sin contraseña", + "ADD_DESCRIPTION": "Selecciona una de las opciones disponibles para crear un método de autenticación sin contraseña.", + "SEND_DESCRIPTION": "Envíate a ti mismo un enlace de registro a tu dirección de email.", + "SEND": "Enviar enlace de registro", + "SENT": "El email fue enviado con éxito. Comprueba tu buzón para continuar con la configuración.", + "QRCODE_DESCRIPTION": "Genera un código QR para escanearlo con otro dispositivo.", + "QRCODE": "Generar código QR", + "QRCODE_SCAN": "Escanea este código QR para continuar con la configuración de tu dispositivo.", + "NEW_DESCRIPTION": "Utiliza este dispositivo para configurar la autenticación sin contraseña.", + "NEW": "Añadir nueva" + } + }, + "MFA": { + "TABLETYPE": "Tipo", + "TABLESTATE": "Estado", + "NAME": "Nombre", + "EMPTY": "No hay factores adicionales", + "TITLE": "Autenticación multifactor (MFA)", + "DESCRIPTION": "Añade un doble factor para configurar una seguridad óptima de tu cuenta.", + "MANAGE_DESCRIPTION": "Gestiona el método de doble factor para tus usuarios.", + "ADD": "Añadir factor", + "OTP": "App autenticadora para OTP (One-Time Password)", + "OTP_DIALOG_TITLE": "Añadir OTP", + "OTP_DIALOG_DESCRIPTION": "Escanea el código QR con una app autenticadora introduciendo el siguiente código para verificar y activar el método OTP.", + "U2F": "Huella dactilar, claves de seguridad, Face ID y otros", + "U2F_DIALOG_TITLE": "Verificar factor", + "U2F_DIALOG_DESCRIPTION": "Introduce un nombre para tu Multifactor universal.", + "U2F_SUCCESS": "¡Factor añadido con éxito!", + "U2F_ERROR": "¡Se produjo un error durante la configuración!", + "U2F_NAME": "Nombre del autenticador", + "TYPE": { + "0": "No se ha definido MFA", + "1": "One Time Password (OTP)", + "2": "Huella dactilar, claves de seguridad, Face ID y otros" + }, + "STATE": { + "0": "Sin estado", + "1": "No está listo", + "2": "Listo", + "3": "Borrado" + }, + "DIALOG": { + "MFA_DELETE_TITLE": "Eliminar doble factor", + "MFA_DELETE_DESCRIPTION": "Estás a punto de borrar un doble factor. ¿Estás seguro?", + "ADD_MFA_TITLE": "Añadir doble factor", + "ADD_MFA_DESCRIPTION": "Selecciona una de las siguientes opciones." + } + }, + "EXTERNALIDP": { + "TITLE": "Proveedor de identidad (IDP) externo", + "DESC": "", + "IDPCONFIGID": "IDP Config ID", + "IDPNAME": "Nombre de IDP", + "USERDISPLAYNAME": "Nombre externo", + "EXTERNALUSERID": "ID de usuario externo", + "EMPTY": "No se encontró el IDP externo", + "DIALOG": { + "DELETE_TITLE": "Eliminar IDP", + "DELETE_DESCRIPTION": "Estas a punto de borrar un proveedor de identidad (IDP) para un usuario. ¿Quieres continuar?" + } + }, + "CREATE": { + "TITLE": "Crear un nuevo usuario", + "DESCRIPTION": "Por favor, proporciona la información necesaria.", + "NAMEANDEMAILSECTION": "Nombre y email", + "GENDERLANGSECTION": "Género e idioma", + "PHONESECTION": "Números de teléfono", + "PASSWORDSECTION": "Contraseña inicial", + "ADDRESSANDPHONESECTION": "Número de teléfono", + "INITMAILDESCRIPTION": "Si ambas opciones se seleccionan, no se enviará un email para la inicialización. Si solo una de las opciones se selecciona, un email se enviará para proporcionar / verificar los datos." + }, + "CODEDIALOG": { + "TITLE": "Verificar número de teléfono", + "DESCRIPTION": "Introducir el código que has recibido por mensaje de texto para verificar tu número de teléfono.", + "CODE": "Código" + }, + "DATA": { + "STATE": "Estado", + "STATE0": "Desconocido", + "STATE1": "Activo", + "STATE2": "Inactivo", + "STATE3": "Borrado", + "STATE4": "Bloqueado", + "STATE5": "Suspendido", + "STATE6": "Inicial" + }, + "PROFILE": { + "TITLE": "Perfil", + "EMAIL": "Email", + "PHONE": "Número de teléfono", + "PHONE_HINT": "Usa 00 o el símbolo + seguido del prefijo del país o selecciona el país del menú desplegable y finalmente introduce el número de teléfono", + "USERNAME": "Nombre de usuario", + "CHANGEUSERNAME": "modificar", + "CHANGEUSERNAME_TITLE": "Cambiar nombre de usuario", + "CHANGEUSERNAME_DESC": "Introduce el nuevo nombre en el campo siguiente.", + "FIRSTNAME": "Nombre", + "LASTNAME": "Apellidos", + "NICKNAME": "Apodo", + "DISPLAYNAME": "Nombre mostrado", + "PREFERRED_LANGUAGE": "Idioma", + "GENDER": "Género", + "PASSWORD": "Contraseña", + "AVATAR": { + "UPLOADTITLE": "Subir tu imagen de perfil", + "UPLOADBTN": "Elegir fichero", + "UPLOAD": "Subir", + "CURRENT": "Imagen actual", + "PREVIEW": "Previsualizar", + "DELETESUCCESS": "¡Borrada con éxito!", + "CROPPERERROR": "Se produjo un error mientras se subía el fichero. Inténtalo con un formato o tamaño diferente si es necesario." + }, + "COUNTRY": "País" + }, + "MACHINE": { + "TITLE": "Detalles del usuario del servicio", + "USERNAME": "Nombre de usuario", + "NAME": "Nombre", + "DESCRIPTION": "Descripción", + "KEYSTITLE": "Claves", + "KEYSDESC": "Define tus claves y añade una fecha de caducidad opcional.", + "TOKENSTITLE": "Tokens de acceso personal", + "TOKENSDESC": "Los tokens de acceso personal funcionan como tokens de acceso OAuth ordinarios.", + "ID": "ID de clave", + "TYPE": "Tipo", + "EXPIRATIONDATE": "Fecha de caducidad", + "CHOOSEDATEAFTER": "Introduce una fecha de caducidad válida", + "CHOOSEEXPIRY": "Selecciona una fecha de caducidad", + "CREATIONDATE": "Fecha de creación", + "KEYDETAILS": "Detalles de la clave", + "ACCESSTOKENTYPE": "Tipo de token de acceso", + "ACCESSTOKENTYPES": { + "0": "Bearer", + "1": "JWT" + }, + "ADD": { + "TITLE": "Añadir clave", + "DESCRIPTION": "Selecciona tu tipo de clave y elige una fecha de caducidad opcional." + }, + "ADDED": { + "TITLE": "La clave fue creada", + "DESCRIPTION": "¡Descarga la clave puesto que no será visible una vez que se cierre este diálogo!" + }, + "KEYTYPES": { + "1": "JSON" + }, + "DIALOG": { + "DELETE_KEY": { + "TITLE": "Borrar clave", + "DESCRIPTION": "¿Quieres borrar la clave seleccionada? Esta acción no puede deshacerse." + } + } + }, + "PASSWORD": { + "TITLE": "Contraseña", + "LABEL": "Una contraseña segura ayuda a proteger la cuenta", + "DESCRIPTION": "Introduce la nueva contraseña de acuerdo con la siguiente política.", + "OLD": "Contraseña actual", + "NEW": "Nueva contraseña", + "CONFIRM": "Confirmar nueva contraseña", + "NEWINITIAL": "Contraseña", + "CONFIRMINITIAL": "Confirmar contraseña", + "RESET": "Restablecer contraseña actual", + "SET": "Establecer nueva contraseña", + "RESENDNOTIFICATION": "Enviar enlace para restablecer la contraseña", + "REQUIRED": "Faltan algunos campos requeridos.", + "MINLENGTHERROR": "Debe tener al menos {{value}} caracteres de longitud." + }, + "ID": "ID", + "EMAIL": "Email", + "PHONE": "Número de teléfono", + "PHONEEMPTY": "No se ha definido un número de teléfono", + "PHONEVERIFIED": "Número de teléfono verificado.", + "EMAILVERIFIED": "Email verificado", + "NOTVERIFIED": "no verificado", + "PREFERRED_LOGINNAME": "Nombre de inicio de sesión preferido", + "ISINITIAL": "El usuario no está activo, aún.", + "LOGINMETHODS": { + "TITLE": "Información de contacto", + "DESCRIPTION": "La información proporcionada se utiliza para enviarte información importante, como emails para restablecer la contraseña.", + "EMAIL": { + "TITLE": "Email", + "VALID": "validado", + "ISVERIFIED": "Email verificado", + "ISVERIFIEDDESC": "Si el email se muestra como verificado, no se realizará ninguna solicitud de verificación del email.", + "RESEND": "Reenviar correo de verificación", + "EDITTITLE": "Cambiar email", + "EDITDESC": "Introduce el nuevo email en el siguiente campo." + }, + "PHONE": { + "TITLE": "Teléfono", + "VALID": "validado", + "RESEND": "Reenviar mensaje de texto de verificación", + "EDITTITLE": "Cambiar número", + "EDITVALUE": "Número de teléfono", + "EDITDESC": "Introduce el número de teléfono en el siguiente campo.", + "DELETETITLE": "Borrar número de teléfono", + "DELETEDESC": "Estás seguro que quieres borrar el número de teléfono" + }, + "RESENDCODE": "Reenviar el código", + "ENTERCODE": "Verificar", + "ENTERCODE_DESC": "Verificar el código" + }, + "GRANTS": { + "TITLE": "Concesiones de usuario", + "DESCRIPTION": "Concede a este usuario acceso a ciertos proyectos", + "CREATE": { + "TITLE": "Crear concesión de usuario", + "DESCRIPTION": "Buscar la organización, el proyecto y los correspondientes roles de proyecto." + }, + "PROJECTNAME": "Nombre del proyecto", + "PROJECT-OWNED": "Proyecto", + "PROJECT-GRANTED": "Proyecto concedido", + "FILTER": { + "0": "filtrar por usuario", + "1": "filtrar por dominio", + "2": "filtrar por nombre de proyecto", + "3": "filtrar por rol" + } + }, + "STATE": { + "0": "Desconocido", + "1": "Activo", + "2": "Inactivo", + "3": "Borrado", + "4": "Bloqueado", + "5": "Suspendido", + "6": "Inicial" + }, + "SEARCH": { + "ADDITIONAL": "Nombre de inicio de sesión (organización actual)", + "ADDITIONAL-EXTERNAL": "Nombre de inicio de sesión (organización externa)" + }, + "TARGET": { + "SELF": "Si quieres conceder acceso a un usuario de otra organización", + "EXTERNAL": "Para conceder acceso a un usuario a tu organización", + "CLICKHERE": "hacer clic aquí" + }, + "SIGNEDOUT": "Has cerrado sesión. Haz clic en el botón \"Iniciar sesión\" para acceder otra vez.", + "SIGNEDOUT_BTN": "Iniciar sesión", + "EDITACCOUNT": "Editar cuenta", + "ADDACCOUNT": "Iniciar sesión con otra cuenta", + "RESENDINITIALEMAIL": "Reenviar correo de activación", + "RESENDEMAILNOTIFICATION": "Reenviar correo de notificación", + "TOAST": { + "CREATED": "Usuario creado con éxito.", + "SAVED": "Perfil guardado con éxito.", + "USERNAMECHANGED": "Nombre de usuario modificado.", + "EMAILSAVED": "El email se guardó con éxito.", + "INITEMAILSENT": "Enviado correo de inicialización.", + "PHONESAVED": "Teléfono guardado con éxito.", + "PHONEREMOVED": "El telefono se ha eliminado.", + "PHONEVERIFIED": "Teléfono verificado con éxito.", + "PHONEVERIFICATIONSENT": "Enviado código de verificación para el teléfono.", + "EMAILVERIFICATIONSENT": "Enviado código de verificación para el email.", + "OTPREMOVED": "OTP eliminado.", + "U2FREMOVED": "Factor eliminado.", + "PASSWORDLESSREMOVED": "Acceso sin contraseña eliminado.", + "INITIALPASSWORDSET": "Se estableció una contraseña inicial.", + "PASSWORDNOTIFICATIONSENT": "Se envió una notificación de cambio de contraseña.", + "PASSWORDCHANGED": "La contraseña se cambió con éxito.", + "REACTIVATED": "Usuario reactivado.", + "DEACTIVATED": "Usuario desactivado.", + "SELECTEDREACTIVATED": "Se reactivaron los usuarios seleccionados.", + "SELECTEDDEACTIVATED": "Se desactivaron los usuarios seleccionados.", + "SELECTEDKEYSDELETED": "Se borraron las claves seleccionadas.", + "KEYADDED": "¡Clave añadida!", + "MACHINEADDED": "¡Creado servicio de usuario!", + "DELETED": "¡El usuario se borró con éxito!", + "UNLOCKED": "¡El usuario se desbloqueó con éxito!", + "PASSWORDLESSREGISTRATIONSENT": "Enviado con éxito un enlace de registro.", + "SECRETGENERATED": "¡Secreto generado con éxito!", + "SECRETREMOVED": "¡Secreto eliminado con éxito!" + }, + "MEMBERSHIPS": { + "TITLE": "Roles de Mánager ZITADEL", + "DESCRIPTION": "Estas son todas las concesiones de membresía del usuario. Puedes modificarlas también en las páginas de organización, proyecto o detalles IAM.", + "ORGCONTEXT": "Puedes ver todas las organizaciones y proyectos que están relacionados con la organización seleccionada actualmente.", + "USERCONTEXT": "Puedes ver todas las organizaciones y proyectos para los que estás autorizado. Incluyendo otras organizaciones.", + "CREATIONDATE": "Fecha de creación", + "CHANGEDATE": "Última modificación", + "DISPLAYNAME": "Nombre mostrado", + "REMOVE": "Eliminar", + "TYPE": "Tipo", + "ORGID": "ID de organización", + "UPDATED": "La membresía fue actualizada.", + "NOPERMISSIONTOEDIT": "¡No dispones de los permisos requeridos para editar roles!", + "TYPES": { + "UNKNOWN": "Desconocido", + "ORG": "Organización", + "PROJECT": "Proyecto", + "GRANTEDPROJECT": "Proyecto concedidos" + } + }, + "PERSONALACCESSTOKEN": { + "ID": "ID", + "TOKEN": "Token", + "ADD": { + "TITLE": "Generar nuevo token de acceso personal", + "DESCRIPTION": "Define una fecha de caducidad personalizada para el token.", + "CHOOSEEXPIRY": "Selecciona una fecha de caducidad", + "CHOOSEDATEAFTER": "Introduce una fecha válida para que los tokens comiencen a caducar" + }, + "ADDED": { + "TITLE": "Token de acceso personal", + "DESCRIPTION": "Asegúrate de copiar tu token personal de acceso. ¡No podrás volver a verlo otra vez!" + }, + "DELETE": { + "TITLE": "Borrar token", + "DESCRIPTION": "Estás a punto de borrar el token de acceso personal. ¿Estás seguro?" + }, + "DELETED": "El token se borró con éxito." + } + }, + "METADATA": { + "TITLE": "Metadatos", + "DESCRIPTION": "", + "KEY": "Clave", + "VALUE": "Valor", + "ADD": "Nueva entrada", + "SAVE": "Guardar", + "EMPTY": "Sin metadatos", + "SETSUCCESS": "El elemento se guardó con éxito", + "REMOVESUCCESS": "El elemento se borró con éxito" + }, + "FLOWS": { + "TITLE": "Acciones y flujos", + "DESCRIPTION": "Define scripts que se ejecutarán ante un evento determinado.", + "ACTIONSTITLE": "Acciones", + "ACTIONSDESCRIPTION": "Estos son los scripts que puedes ejecutar en los flujos.", + "FLOWSTITLE": "Flujos", + "FLOWSDESCRIPTION": "Flujos de un cierto tipo ejecutan acciones cuando se activa un disparador.", + "ID": "ID", + "NAME": "Nombre", + "STATE": "Estado", + "STATES": { + "0": "sin estado", + "1": "inactivo", + "2": "activo" + }, + "ADDTRIGGER": "Añadir disparador", + "FLOWCHANGED": "El flujo se cambió con éxito", + "FLOWCLEARED": "El flujo se restableció con éxito", + "TIMEOUT": "Timeout", + "TIMEOUTINSEC": "Timeout en segundos", + "ALLOWEDTOFAIL": "Permitido el fallo", + "SCRIPT": "Script", + "FLOWTYPE": "Tipo de flujo", + "TRIGGERTYPE": "Tipo de disparador", + "ACTIONS": "Acciones", + "ACTIONSMAX": "Basado en tu Tier, tienes disponible un número limitado de acciones ({{value}}). Asegúrate de desactivar aquellos que no necesitas o considera mejorar tu tier.", + "DIALOG": { + "ADD": { + "TITLE": "Crear una acción" + }, + "UPDATE": { + "TITLE": "Actualizar acción" + }, + "DELETEACTION": { + "TITLE": "¿Borrar acción?", + "DESCRIPTION": "Estás a punto de borrar una acción. Esto no puede revertirse. ¿Estás seguro?", + "DELETE_SUCCESS": "La acción se borró con éxito." + }, + "CLEAR": { + "TITLE": "¿Limpiar flujo?", + "DESCRIPTION": "Estás a punto de restablecer el flujo junto con sus disparadores y acciones. Este cambio no puede revertirse. ¿Estás seguro?" + }, + "REMOVEACTIONSLIST": { + "TITLE": "¿Borrar acciones seleccionadas?", + "DESCRIPTION": "¿Estás seguro que quieres borrar las acciones seleccionadas del flujo?" + } + }, + "TOAST": { + "ACTIONSSET": "Acciones establecidas", + "ACTIONREACTIVATED": "Acciones reactivadas con éxito", + "ACTIONDEACTIVATED": "Acciones desactivadas con éxito" + } + }, + "IAM": { + "TITLE": "Instancia", + "DESCRIPTION": "Gestiona los ajustes de tu instancia y tus organizaciones", + "POLICIES": { + "TITLE": "Políticas del sistema y ajustes de acceso", + "DESCRIPTION": "Gestiona tus políticas globales y tus ajustes de gestión de accesos." + }, + "EVENTSTORE": { + "TITLE": "Administración del almacenamiento IAM", + "DESCRIPTION": "Gestionar tus vistas de ZITADEL y tus eventos fallidos." + }, + "MEMBER": { + "TITLE": "Mánagers", + "DESCRIPTION": "Estos mánagers están autorizados para hacer cambios en tu instancia." + }, + "PAGES": { + "STATE": "Estado", + "DOMAINLIST": "Dominios" + }, + "STATE": { + "0": "No especificado", + "1": "Creando", + "2": "En ejecución", + "3": "Deteniendo", + "4": "Parado" + }, + "VIEWS": { + "TITLE": "Vistas", + "DESCRIPTION": "Esta tarjeta muestra tus vistas de ZITADEL.", + "VIEWNAME": "Nombre", + "DATABASE": "Base de datos", + "SEQUENCE": "Secuencia", + "EVENTTIMESTAMP": "Marca de tiempo", + "LASTSPOOL": "Spool con éxito", + "ACTIONS": "Acciones", + "CLEAR": "Limpiar", + "CLEARED": "¡La vista se ha limpiado con éxito!", + "DIALOG": { + "VIEW_CLEAR_TITLE": "Limpiar vista", + "VIEW_CLEAR_DESCRIPTION": "Estás a punto de limpiar la vista. Limpiar una vista crea un proceso durante el cual es posible que los datos no estén disponibles para los usuarios finales. ¿Estás seguro?" + } + }, + "FAILEDEVENTS": { + "TITLE": "Eventos fallidos", + "DESCRIPTION": "Esta tarjeta muestra tus eventos fallidos.", + "VIEWNAME": "Nombre", + "DATABASE": "Base de datos", + "FAILEDSEQUENCE": "Secuencia fallida", + "FAILURECOUNT": "Número de fallos", + "LASTFAILED": "Último fallo a las", + "ERRORMESSAGE": "Mensaje de error", + "ACTIONS": "Acciones", + "DELETE": "Eliminar", + "DELETESUCCESS": "Eventos fallidos eliminados." + }, + "EVENTS": { + "TITLE": "Eventos", + "DESCRIPTION": "Esta vista muestra todos los eventos producidos.", + "EDITOR": "Editor", + "EDITORID": "ID de editor", + "AGGREGATE": "Agregado", + "AGGREGATEID": "ID de agregado", + "AGGREGATETYPE": "Tipo de agregado", + "RESOURCEOWNER": "Propietario del recurso", + "SEQUENCE": "Secuencia", + "CREATIONDATE": "Creado el", + "TYPE": "Tipo", + "PAYLOAD": "Carga útil", + "FILTERS": { + "BTN": "Filtrar", + "USER": { + "IDLABEL": "ID", + "CHECKBOX": "Filtrar por editor" + }, + "AGGREGATE": { + "TYPELABEL": "Tipo de agregado", + "IDLABEL": "ID", + "CHECKBOX": "Filtrar por agregado" + }, + "TYPE": { + "TYPELABEL": "Tipo", + "CHECKBOX": "Filtrar por tipo" + }, + "RESOURCEOWNER": { + "LABEL": "ID", + "CHECKBOX": "Filtrar por propietario de recurso" + }, + "SEQUENCE": { + "LABEL": "Secuencia", + "CHECKBOX": "Filtrar por secuencia", + "SORT": "Ordenado", + "ASC": "Ascendente", + "DESC": "Descendente" + }, + "CREATIONDATE": { + "LABEL": "Fecha de creación", + "CHECKBOX": "Filtrar por fecha de creación" + }, + "OTHER": "otro", + "OTHERS": "otros" + }, + "DIALOG": { + "TITLE": "Detalle del evento" + } + }, + "TOAST": { + "MEMBERREMOVED": "Mánager eliminado.", + "MEMBERSADDED": "Mánagers añadidos.", + "MEMBERADDED": "Mánager añadido.", + "MEMBERCHANGED": "Mánager modificado.", + "ROLEREMOVED": "Rol eliminado.", + "ROLECHANGED": "Rol cambiado.", + "REACTIVATED": "Reactivado", + "DEACTIVATED": "Desactivado" + } + }, + "ORG": { + "PAGES": { + "NAME": "Nombre", + "ID": "ID", + "CREATIONDATE": "Creado", + "DATECHANGED": "Modificado", + "FILTER": "Filtrar", + "FILTERPLACEHOLDER": "Filtrar por el nombre", + "LIST": "Organizaciones", + "LISTDESCRIPTION": "Elegir una organización.", + "ACTIVE": "Activar", + "CREATE": "Crear organización", + "DEACTIVATE": "Desactivar organización", + "REACTIVATE": "Reactivar organización", + "NOPERMISSION": "No tienes permiso para acceder a las configuraciones de la organización.", + "USERSELFACCOUNT": "Utiliza tu cuenta personal como propietaria de la organización", + "ORGDETAIL_TITLE": "Introduce el nombre y el dominio de tu nueva organización.", + "ORGDETAIL_TITLE_WITHOUT_DOMAIN": "Introduce el nombre de tu nueva organización.", + "ORGDETAILUSER_TITLE": "Configurar propietario de la organización", + "DELETE": "Borrar organización", + "DEFAULTLABEL": "Predeterminada", + "SETASDEFAULT": "Establecer como organización predeterminada", + "DEFAULTORGSET": "Se cambió con éxito la organización predeterminada", + "RENAME": { + "ACTION": "Renombrar", + "TITLE": "Renombrar organización", + "DESCRIPTION": "Introducir el nuevo nombre de tu organización", + "BTN": "Renombrar" + }, + "ORGDOMAIN": { + "TITLE": "Verificación de la propiedad del dominio de la organización", + "VERIFICATION": "Para verificar la propiedad de tu dominio, necesitas descargar un fichero de verificación y subirlo a la URL proporcionada a continuación, o crear un registro DNS de tipo TXT que contenga la URL proporcionada. Para completar este paso, haz clic en el botón para verificarlo.", + "VERIFICATION_SKIP": "Puedes saltarte esta verificación por ahora y continuar con la creación de tu organización, pero para poder utilizar esta organización ¡deberás completar este paso!", + "VERIFICATION_VALIDATION_DESC": "Los tokens se comprueban regularmente para asegurar que todavía eres el dueño del dominio.", + "VERIFICATION_NEWTOKEN_TITLE": "Solicitar nuevo token", + "VERIFICATION_NEWTOKEN_DESC": "Si quieres solicitar un nuevo token, selecciona tu método preferido. Si quieres validar un token persistente, haz clic en el botón de arriba.", + "VERIFICATION_VALIDATION_ONGOING": "Ya se ha solicitado un token de verificación. Haz clic en el botón para lanzar una comprobación de verificación.", + "VERIFICATION_VALIDATION_ONGOING_TYPE": "Tipo de token:", + "VERIFICATION_SUCCESSFUL": "¡Dominio verificado con éxito!", + "REQUESTNEWTOKEN": "Solicitar nuevo token", + "TYPES": { + "1": "HTTP", + "2": "DNS" + } + }, + "DOWNLOAD_FILE": "Descargar fichero", + "SELECTORGTOOLTIP": "Seleccionar esta organización.", + "PRIMARYDOMAIN": "Dominio primario", + "STATE": "Estado", + "USEPASSWORD": "Establecer contraseña inicial", + "USEPASSWORDDESC": "El usuario no tiene que establecer la contraseña durante la inicialización." + }, + "LIST": { + "TITLE": "Organizaciones", + "DESCRIPTION": "Estas son las organizaciones de tu instancia" + }, + "DOMAINS": { + "NEW": "Añadir dominio", + "TITLE": "Dominios", + "DESCRIPTION": "Configura tus dominios. Este dominio puede usarse para iniciar sesión con tus usuarios.", + "SETPRIMARY": "Establecer como primario", + "DELETE": { + "TITLE": "Borrar dominio", + "DESCRIPTION": "Estás a punto de borrar uno de tus dominios. Ten en cuenta que tus usuarios no podrán usar más este dominio para iniciar sesión." + }, + "ADD": { + "TITLE": "Añadir dominio", + "DESCRIPTION": "Estás a punto de añadir un dominio para tu organización. Después de que se procese con éxito, tus usuarios serán capaces de usar el dominio para su inicio de sesión." + } + }, + "STATE": { + "0": "No definida", + "1": "Activa", + "2": "Desactivada", + "3": "Eliminada" + }, + "MEMBER": { + "TITLE": "Mánagers de la organización", + "DESCRIPTION": "Indica qué usuarios podrán cambiar las preferencias de tu organización." + }, + "TOAST": { + "UPDATED": "La organización se actualizó con éxito.", + "DEACTIVATED": "Organización desactivada.", + "REACTIVATED": "Organización reactivada.", + "DOMAINADDED": "Dominio añadido.", + "DOMAINREMOVED": "Dominio eliminado.", + "MEMBERADDED": "Mánager añadido.", + "MEMBERREMOVED": "Mánager eliminado.", + "MEMBERCHANGED": "Mánager modificado.", + "SETPRIMARY": "Dominio primario establecido.", + "DELETED": "Organización borrada con éxito", + "ORG_WAS_DELETED": "La organización ha sido borrada." + }, + "DIALOG": { + "DEACTIVATE": { + "TITLE": "Organización desactivada", + "DESCRIPTION": "Estás a punto de desactivar tu organización. Los usuarios no podrán iniciar sesión tras hacerlo. ¿Estás seguro de que quieres continuar?" + }, + "REACTIVATE": { + "TITLE": "Reactivar organización", + "DESCRIPTION": "Estás a punto de reactivar tu organización. Los usuarios serán capaces de iniciar sesión otra vez. ¿Estás seguro de que quieres continuar?" + }, + "DELETE": { + "TITLE": "Borrar organización", + "DESCRIPTION": "Estás a punto de borrar tu organización. Esto inicia un proceso donde todos los datos de las organizaciones relacionadas serán borrados. No puedes revertir esta acción.", + "TYPENAME": "Escribe '{{value}}', para borrar tu organización.", + "ORGNAME": "Nombre", + "BTN": "Borrar" + } + } + }, + "SETTINGS": { + "INSTANCE": { + "TITLE": "Ajustes de instancia", + "DESCRIPTION": "Estos ajustes se aplicará a todas tus organizaciones a menos que éstas los sobrescriban." + }, + "ORG": { + "TITLE": "Ajustes de organización", + "DESCRIPTION": "Estas configuraciones amplían y sobrescriben tus configuraciones de instancia." + }, + "LIST": { + "GENERAL": "General", + "LOGIN": "Comportamiento del inicio de sesión y de la seguridad", + "LOCKOUT": "Bloqueo", + "COMPLEXITY": "Complejidad de contraseña", + "NOTIFICATIONS": "Ajustes de notificación", + "NOTIFICATIONS_DESC": "Ajustes SMTP y SMS", + "MESSAGETEXTS": "Mensajes de texto", + "IDP": "Proveedores de identidad", + "DOMAIN": "Ajustes de dominio", + "LOGINTEXTS": "Textos de interfaz de inicio de sesión", + "BRANDING": "Imagen de marca", + "PRIVACYPOLICY": "Política de privacidad", + "OIDC": "OIDC Token lifetime and expiration", + "SECRETS": "Apariencia del secreto", + "SECURITY": "Ajustes de seguridad" + }, + "GROUPS": { + "NOTIFICATIONS": "Notificaciones", + "LOGIN": "Inicio de sesión y acceso", + "DOMAIN": "Dominio", + "TEXTS": "Textos e idiomas", + "APPEARANCE": "Apariencia", + "OTHER": "Otros" + } + }, + "SETTING": { + "DEFAULTLANGUAGE": "Idioma por defecto", + "LANGUAGE": { + "de": "Deutsch", + "en": "English", + "es": "Español", + "fr": "Français", + "it": "Italiano", + "ja": "日本語", + "pl": "Polski", + "zh": "简体中文" + }, + "SMTP": { + "TITLE": "Ajustes SMTP", + "SENDERADDRESS": "Dirección email del emisor", + "SENDERNAME": "Nombre del emisor", + "HOSTANDPORT": "Servidor y puerto", + "USER": "Usuario", + "PASSWORD": "Contraseña", + "SETPASSWORD": "Establecer contraseña SMTP", + "PASSWORDSET": "La contraseña SMTP se estableció con éxito.", + "TLS": "Transport Layer Security (TLS)", + "SAVED": "¡Se guardó con éxito!", + "REQUIREDWARN": "Para enviar notificaciones para tu dominio, debes introducir tus datos SMTP." + }, + "SMS": { + "TITLE": "Configuración SMS", + "PROVIDERS": "Proveedores", + "PROVIDER": "Proveedor de SMS", + "ADDPROVIDER": "Añadir proveedor SMS", + "ADDPROVIDERDESCRIPTION": "Elige uno de los siguientes proveedores e introduce los datos requeridos.", + "REMOVEPROVIDER": "Eliminar proveedor", + "REMOVEPROVIDER_DESC": "Estás a punto de borrar la configuración de un proveedor. ¿Quieres continuar?", + "SMSPROVIDERSTATE": { + "0": "No especificado", + "1": "Activo", + "2": "Inactivo" + }, + "ACTIVATED": "Proveedor activado.", + "DEACTIVATED": "Proveedor desactivado.", + "TWILIO": { + "SID": "Sid", + "TOKEN": "Token", + "SENDERNUMBER": "Número de emisor", + "ADDED": "Twilio añadido con éxito.", + "REMOVED": "Twilio eliminado", + "CHANGETOKEN": "Cambiar token", + "SETTOKEN": "Establecer token", + "TOKENSET": "Token establecido con éxito." + } + }, + "OIDC": { + "TITLE": "Ajustes OIDC", + "ACCESSTOKENLIFETIME": "Tiempo de vida del token de acceso", + "IDTOKENLIFETIME": "Tiempo de vida del Id del Token", + "REFRESHTOKENEXPIRATION": "Caducidad del token de refresco", + "REFRESHTOKENIDLEEXPIRATION": "Caducidad de token de refresco en estado idle", + "INHOURS": "horas", + "INDAYS": "días" + }, + "SECRETS": { + "TITLE": "Apariencia del secreto", + "TYPES": "Tipos de secreto", + "TYPE": { + "1": "Correo de inicialización", + "2": "Verificación de email", + "3": "Verificación de teléfono", + "4": "Restablecimiento de contraseña", + "5": "Inicialización de acceso sin contraseña", + "6": "Secreto de App" + }, + "ADDGENERATOR": "Definir apariencia del secreto", + "GENERATORTYPE": "Tipo", + "EXPIRY": "Caducidad (en horas)", + "INCLUDEDIGITS": "Incluir números", + "INCLUDESYMBOLS": "Incluir símbolos", + "INCLUDELOWERLETTERS": "Incluir letras minúsculas", + "INCLUDEUPPERLETTERS": "Incluir letras mayúsculas", + "LENGTH": "Longitud", + "UPDATED": "Ajustes actualizados." + }, + "SECURITY": { + "DESCRIPTION": "Este ajuste establece el CSP para permitir el uso de frames para un grupo de dominios permitidos. Ten en cuenta que habilitando el uso de iFrames, corres el riesgo de permitir ataques de clickjacking.", + "IFRAMEENABLED": "Permitir iFrame", + "ALLOWEDORIGINS": "URLs permitidas" + }, + "DIALOG": { + "RESET": { + "DEFAULTTITLE": "Restablecer ajuste", + "DEFAULTDESCRIPTION": "Estás a punto de restablecer tus ajustes a la configuración por defecto de tu instancia. ¿Estás seguro de que quieres continuar?", + "LOGINPOLICY_DESCRIPTION": "Aviso: Si continuas, los ajustes del proveedor de identidad se restablecerán también a los valores de la instancia." + } + } + }, + "POLICY": { + "TITLE": "Explorar ajustes", + "DESCRIPTION": "Ajustes preparados para mejorar tu seguridad.", + "APPLIEDTO": "Se aplica a", + "PWD_COMPLEXITY": { + "TITLE": "Complejidad de contraseña", + "DESCRIPTION": "Garantiza que todas las contraseñas establecidas se corresponden con un patrón específico", + "SYMBOLANDNUMBERERROR": "Debe consistir en un dígito y un signo de puntuación/símbolo.", + "SYMBOLERROR": "Debe inclur un símbolo/signo de puntuación.", + "NUMBERERROR": "Debe incluir un dígito.", + "PATTERNERROR": "La contraseña no cumple con el patrón requerido." + }, + "NOTIFICATION": { + "TITLE": "Notificación", + "DESCRIPTION": "Determina en qué cambios se enviarán notificaciones.", + "PASSWORDCHANGE": "Cambio de contraseña" + }, + "PRIVATELABELING": { + "TITLE": "Imagen de marca", + "DESCRIPTION": "Da a tu inicio de sesión tu estilo personalizado y modifica su comportamiento.", + "PREVIEW_DESCRIPTION": "Los cambios en la política serán desplegados automáticamente para previsualizar el entorno.", + "BTN": "Seleccionar fichero", + "ACTIVATEPREVIEW": "Aplicar configuración", + "DARK": "Modo oscuro", + "LIGHT": "Modo claro", + "CHANGEVIEW": "Cambiar vista", + "ACTIVATED": "Los cambios en la política ya están disponibles", + "THEME": "Tema", + "COLORS": "Colores", + "FONT": "Fuente", + "ADVANCEDBEHAVIOR": "Comportamiento avanzado", + "DROP": "Lleva aquí la imagen o", + "RELEASE": "Suéltala", + "DROPFONT": "Lleva aquí el fichero de fuente", + "RELEASEFONT": "Suéltalo", + "USEOFLOGO": "Tu logo será utilizado tanto en el inicio de sesión como en los emails, mientras que el icono se usará para elementos de la interfaz más pequeños como el menú de cambio de organizaciones", + "MAXSIZE": "El tamaño máximo está limitado a 524kB", + "EMAILNOSVG": "El formato de fichero SVG no está soportado en correos electrónicos. Por tanto, sube tu logo en PNG o en otro formato soportado.", + "MAXSIZEEXCEEDED": "Tamaño máximo de 524kB superado.", + "NOSVGSUPPORTED": "¡SVG no está soportado!", + "FONTINLOGINONLY": "La fuente se muestra actualmente solo en la interfaz de inicio de sesión.", + "BACKGROUNDCOLOR": "Color de fondo", + "PRIMARYCOLOR": "Color primario", + "WARNCOLOR": "Color de advertencia", + "FONTCOLOR": "Color de fuente", + "VIEWS": { + "PREVIEW": "Previsualizar", + "CURRENT": "Configuración actualizada" + }, + "PREVIEW": { + "TITLE": "Inicio de sesión", + "SECOND": "iniciar sesión con tu cuenta ZITADEL.", + "ERROR": "¡No se encontró el usuario!", + "PRIMARYBUTTON": "siguiente", + "SECONDARYBUTTON": "registrar" + } + }, + "PWD_AGE": { + "TITLE": "Antigüedad de la contraseña", + "DESCRIPTION": "Puedes establecer una política para la antigüedad de las contraseñas. Esta política emite un aviso después de que la antigüedad máxima se haya superado." + }, + "PWD_LOCKOUT": { + "TITLE": "Política de bloqueo", + "DESCRIPTION": "Establece un número máximo de reintentos de introducción de contraseña, después del cual las cuentas serán bloqueadas." + }, + "DOMAIN_POLICY": { + "TITLE": "Ajustes de dominio" + }, + "PRIVATELABELING_POLICY": { + "TITLE": "Imagen de marca", + "BTN": "Seleccionar fichero", + "DESCRIPTION": "Personalizar la apariencia del inicio de sesión", + "ACTIVATEPREVIEW": "Activar configuración" + }, + "LOGIN_POLICY": { + "TITLE": "Ajustes de inicio de sesión", + "DESCRIPTION": "Define cómo los usuarios pueden autenticarse y configura proveedores de identidad", + "DESCRIPTIONCREATEADMIN": "Los usuarios pueden elegir entre los siguientes proveedores de identidad disponibles.", + "DESCRIPTIONCREATEMGMT": "Los usuarios pueden elegir entre los siguientes proveedores de identidad. Nota: Puedes usar los proveedores integrados en el sistema así como sólo los proveedores configurados para tu organización.", + "ADVANCED": "Avanzado", + "LIFETIMEDURATIONS": "Tiempos de vida de los inicios de sesión", + "SAVED": "¡Guardado con éxito!" + }, + "PRIVACY_POLICY": { + "TITLE": "Política de privacidad y TDS", + "DESCRIPTION": "Establece tu Política de privacidad y los enlaces a los Términos de Servicio (TDS)", + "TOSLINK": "Enlace a Términos de Servicio", + "POLICYLINK": "Enlace a Política de privacidad", + "HELPLINK": "Enlace de ayuda", + "SUPPORTEMAIL": "Email de soporte", + "SAVED": "¡Se guardó con éxito!", + "RESET_TITLE": "Restaurar valores por defecto", + "RESET_DESCRIPTION": "Estás a punto de restaurar los enlaces por defecto para los TDS y la política de privacida. ¿Quieres continuar?" + }, + "LOGIN_TEXTS": { + "TITLE": "Textos de interfaces de inicio de sesión", + "DESCRIPTION": "Define tus textos para las interfaces de inicio de sesión. Si los textos están vacíos, se usarán los valores por defecto mostrados como sugerencias.", + "DESCRIPTION_SHORT": "Define tus textos para las interfaces de inicio de sesión.", + "NEWERVERSIONEXISTS": "Existe una nueva versión", + "CURRENTDATE": "Configuración actual", + "CHANGEDATE": "Nueva versión desde", + "KEYNAME": "Pantalla de inicio de sesión / Interfaz", + "RESET_TITLE": "Restaurar valores por defecto", + "RESET_DESCRIPTION": "Estás a punto de restaurar todos los valores por defecto. Todos los cambios que has hecho serán borrados permanentemente. ¿Estás seguro de que quieres continuar?", + "UNSAVED_TITLE": "¿Continuar sin guardar?", + "UNSAVED_DESCRIPTION": "Has hecho cambios sin guardar. ¿Quieres guardarlos ahora?", + "LOCALE": "Código de idioma", + "LOCALES": { + "de": "Deutsch", + "en": "English", + "es": "Español", + "fr": "Français", + "it": "Italiano", + "ja": "日本語", + "pl": "Polski", + "zh": "简体中文" + }, + "KEYS": { + "emailVerificationDoneText": "Verificación de email realizada", + "emailVerificationText": "Verificación de email", + "externalUserNotFoundText": "Usuario externo no encontrado", + "footerText": "Pie", + "initMfaDoneText": "Inicialización de MFA, hecha", + "initMfaOtpText": "Inicializar MFA", + "initMfaPromptText": "Inicializar diálogo de entrada MFA", + "initMfaU2fText": "Initializar doble factor universal", + "initPasswordDoneText": "Inicializar contraseña, hecho", + "initPasswordText": "Inicializar contraseña", + "initializeDoneText": "Inicializar usuario, hecho", + "initializeUserText": "Inicializar usuario", + "linkingUserDoneText": "Vinculación de usuario, hecho", + "loginText": "Iniciar sesión", + "logoutText": "Cerrar sesión", + "mfaProvidersText": "Proveedores MFA", + "passwordChangeDoneText": "Cambio de contraseña, hecho", + "passwordChangeText": "Cambio de contraseña", + "passwordResetDoneText": "Restablecimiento de contraseña, hecho", + "passwordText": "Contraseña", + "registrationOptionText": "Opciones de registro", + "registrationOrgText": "Registrar org", + "registrationUserText": "Registrar usuario", + "selectAccountText": "Seleccionar cuenta", + "successLoginText": "Inicio de sesión con éxito", + "usernameChangeDoneText": "Cambio de nombre de usuario, hecho", + "usernameChangeText": "Cambio de nombre de usuario", + "verifyMfaOtpText": "Verificar OTP", + "verifyMfaU2fText": "Verificar doble factor universal", + "passwordlessPromptText": "Diálogo de entrada de acceso sin contraseña", + "passwordlessRegistrationDoneText": "Registro sin contraseña, hecho", + "passwordlessRegistrationText": "Registro sin contraseña", + "passwordlessText": "Acceso sin contraseña", + "externalRegistrationUserOverviewText": "Resumen de registro de usuario externo" + } + }, + "MESSAGE_TEXTS": { + "TITLE": "Mensajes de texto", + "DESCRIPTION": "Define tus textos para tus correos de notificación.", + "TYPE": "Notificación", + "TYPES": { + "INIT": "Inicialización", + "VE": "Verificación de email", + "VP": "Verificación de teléfono", + "PR": "Restablecimiento de contraseña", + "DC": "Reclamar un dominio", + "PL": "Acceso sin contraseña", + "PC": "Cambio de contraseña" + }, + "CHIPS": { + "firstname": "Nombre", + "lastname": "Apellidos", + "code": "Código", + "preferredLoginName": "Nombre de inicio de sesión preferido", + "displayName": "Nombre mostrado", + "nickName": "Apodo", + "loginnames": "Nombres de inicio de sesión", + "domain": "Dominio", + "lastEmail": "Último email", + "lastPhone": "Último teléfono", + "verifiedEmail": "Email verificado", + "verifiedPhone": "Teléfono verificado", + "changedate": "Cambiar fecha", + "username": "Nombre de usuario", + "tempUsername": "Nombre de usuario temporal" + }, + "TOAST": { + "UPDATED": "Textos personalizados guardados." + } + }, + "DEFAULTLABEL": "Los ajustes actuales se corresponden con el estándar de tu instancia.", + "BTN_INSTALL": "Configurar", + "BTN_EDIT": "Modificar", + "DATA": { + "DESCRIPTION": "Descripción", + "MINLENGTH": "longitud mínima", + "HASNUMBER": "tiene números", + "HASSYMBOL": "tiene símbolos", + "HASLOWERCASE": "tiene minúsculas", + "HASUPPERCASE": "tiene mayúsculas", + "SHOWLOCKOUTFAILURES": "mostrar fallos de bloqueo", + "MAXATTEMPTS": "Intentos máximos", + "EXPIREWARNDAYS": "Aviso de expiración después de estos días: ", + "MAXAGEDAYS": "Antigüedad máxima en días", + "USERLOGINMUSTBEDOMAIN": "Añadir el dominio de la organización como sufijo de los nombres de inicio de sesión", + "USERLOGINMUSTBEDOMAIN_DESCRIPTION": "Si activas esta opción, todos los nombres de inicio de sesión tendrán como sufijo el dominio de esta organización. Si esta opción está desactivada, tendrás que asegurarte de que los nombres de usuario son únicos para todas las organizaciones.", + "VALIDATEORGDOMAINS": "Validar los dominios de la organización", + "SMTPSENDERADDRESSMATCHESINSTANCEDOMAIN": "La dirección del remitente SMTP coincide con el dominio de la instancia", + "ALLOWUSERNAMEPASSWORD": "Nombre de usuario y contraseña permitido", + "ALLOWEXTERNALIDP": "Permitido IDP externo", + "ALLOWREGISTER": "Registro permitido", + "ALLOWUSERNAMEPASSWORD_DESC": "El inicio de sesión convencional con nombre de usuario y contraseña está permitido.", + "ALLOWEXTERNALIDP_DESC": "El inicio de sesión está permitido para los proveedores de identidad subyacentes", + "ALLOWREGISTER_DESC": "Si esta opción es seleccionada, aparece un paso adicional durante el inicio de sesión para registrar un usuario.", + "FORCEMFA": "Forzar MFA", + "FORCEMFA_DESC": "Si esta opción es seleccionada, los usuarios tendrán que configurar un doble factor para iniciar sesión.", + "HIDEPASSWORDRESET": "Ocultar restablecer contraseña", + "HIDEPASSWORDRESET_DESC": "Si esta opción es seleccionada, el usuario no podrá restablecer su contraseña en el proceso de inicio de sesión.", + "HIDELOGINNAMESUFFIX": "Ocultar sufijo del nombre de inicio de sesión", + "HIDELOGINNAMESUFFIX_DESC": "Oculta el sufijo del nombre de inicio de sesión en la interfaz de acceso", + "IGNOREUNKNOWNUSERNAMES": "Ignorar nombre de usuario desconocido", + "IGNOREUNKNOWNUSERNAMES_DESC": "Si esta opción es seleccionada, la pantalla de contraseña se mostrará durante el proceso de inicio de sesión aunque no exista el usuario. El error en la comprobación de la contraseña no revelará si fue el usuario o la contraseña el que era incorrecto.", + "ALLOWDOMAINDISCOVERY": "Permitido el descubrimiento de dominio", + "ALLOWDOMAINDISCOVERY_DESC": "Si esta opción es seleccionada, el sufijo (@dominio.com) de un nombre de usuario desconocido en la pantalla de inicio de sesión será comprobado contra los dominios de la organización y se redirigirá a la organización en cuestión en caso de éxito.", + "DISABLELOGINWITHEMAIL": "Desactivar inicio de sesión con dirección de email", + "DISABLELOGINWITHPHONE": "Desactivar inicio de sesión con número de teléfono", + "DEFAULTREDIRECTURI": "URI de redirección por defecto", + "DEFAULTREDIRECTURI_DESC": "Define a dónde se redirigirá el usuario si el inicio de sesión ha comenzado sin un contexto de aplicación (p.e desde un email)", + "ERRORMSGPOPUP": "Mostrar error en diálogo", + "DISABLEWATERMARK": "Ocultar marca de agua", + "DISABLEWATERMARK_DESC": "Ocultar la marca de agua Powered by ZITADEL en la interfaz de inicio de sesión", + "PASSWORDCHECKLIFETIME": "Tiempo de vida para comprobar la contraseña", + "EXTERNALLOGINCHECKLIFETIME": "Tiempo de vida para comprobar el inicio externo", + "MFAINITSKIPLIFETIME": "Tiempo de vida del inicio Multifactor", + "SECONDFACTORCHECKLIFETIME": "Tiempo de vida para comprobar el doble factor", + "MULTIFACTORCHECKLIFETIME": "Tiempo de vida para comprobar el Multifactor", + "INHOURS": "horas" + }, + "RESET": "Restablece los valores por defecto de la instancia", + "CREATECUSTOM": "Crear política personalizada", + "TOAST": { + "SET": "¡La política se estableció con éxito!", + "RESETSUCCESS": "¡La política se restableción con éxito!", + "UPLOADSUCCESS": "¡Subida con éxito!", + "DELETESUCCESS": "¡Borrada con éxito!", + "UPLOADFAILED": "¡Falló la subida!" + } + }, + "ORG_DETAIL": { + "TITLE": "Organización", + "DESCRIPTION": "Aquí puedes editar la configuración de tu organización y gestionar los miembros.", + "DETAIL": { + "TITLE": "Detalle", + "NAME": "Nombre", + "DOMAIN": "Dominio", + "STATE": { + "0": "No definida", + "1": "Activa", + "2": "Inactiva" + } + }, + "MEMBER": { + "TITLE": "Miembros", + "USERNAME": "Nombre de usuario", + "DISPLAYNAME": "Nombre mostrado", + "LOGINNAME": "Nombre de inicio de sesión", + "EMAIL": "Email", + "ROLES": "Roles", + "ADD": "Añadir miembro", + "ADDDESCRIPTION": "Introducir los nombres de los usuarios a añadir." + }, + "TABLE": { + "TOTAL": "Total de entradas", + "SELECTION": "Elementos seleccionados", + "DEACTIVATE": "Desactivar usuario", + "ACTIVATE": "Activar usuario", + "DELETE": "Borrar usuario", + "CLEAR": "Borrar la selección" + } + }, + "PROJECT": { + "PAGES": { + "TITLE": "Proyecto", + "DESCRIPTION": "Aquí puedes definir aplicaciones, gestionar roles y permitir a otras organizaciones utilizar tu proyecto.", + "DELETE": "Borrar proyecto", + "LIST": "Proyectos", + "LISTDESCRIPTION": "Si no puedes encontrar un proyecto, contacta con el propietario del proyecto o alguien con los permisos adecuados para obtener acceso al proyecto.", + "DETAIL": "Detalle", + "CREATE": "Crear proyecto", + "CREATE_DESC": "Inserta el nombre de tu proyecto.", + "ROLE": "Rol", + "NOITEMS": "Sin proyectos", + "ZITADELPROJECT": "Esto pertenece al proyecto ZITADEL. Cuidado: Si haces cambio puede que ZITADEL no se comporte como se espera.", + "TYPE": { + "OWNED": "Proyectos propios", + "GRANTED": "Proyectos concedidos", + "OWNED_SINGULAR": "Proyecto propio", + "GRANTED_SINGULAR": "Proyecto concedido" + }, + "PRIVATELABEL": { + "TITLE": "Ajustes de imagen de marca", + "0": { + "TITLE": "No especificado", + "DESC": "Tan pronto como el usuario se identifique, se mostrará la imagen de marca de la organización del usuario identificado, antes de que se muestre el aspecto por defecto." + }, + "1": { + "TITLE": "Utilizar configuración del proyecto", + "DESC": "Se mostrará la imagen de marca de la organización que es dueña del proyecto" + }, + "2": { + "TITLE": "Utilizar configuración de la organización del usuario", + "DESC": "Se mostrará la imagen de marca de la organización del proyecto, pero tan pronto como el usuario se identifique, se mostrará la configuración de la organización del usuario identificado." + }, + "DIALOG": { + "TITLE": "Ajustes de la imagen de marca", + "DESCRIPTION": "Selecciona el comportamiento del inicio de sesión cuando se utiliza el proyecto." + } + }, + "PINNED": "Fijado", + "ALL": "Todos", + "CREATEDON": "Creado el", + "LASTMODIFIED": "Modificado por última vez el", + "ADDNEW": "Crear nuevo proyecto", + "DIALOG": { + "REACTIVATE": { + "TITLE": "Reactivar proyecto", + "DESCRIPTION": "¿Realmente quieres reactivar tu proyecto?" + }, + "DEACTIVATE": { + "TITLE": "Desactivar proyecto", + "DESCRIPTION": "¿Realmente quieres desactivar tu proyecto?" + }, + "DELETE": { + "TITLE": "Borrar proyecto", + "DESCRIPTION": "¿Realmente quieres borrar tu proyecto?", + "TYPENAME": "Escribir el nombre del proyecto para borrarlo permanentemente." + } + } + }, + "SETTINGS": { + "TITLE": "Ajustes", + "DESCRIPTION": "" + }, + "STATE": { + "TITLE": "Estado", + "0": "No definido", + "1": "Activo", + "2": "Inactivo" + }, + "TYPE": { + "TITLE": "Tipo", + "0": "Tipo desconocido", + "1": "Propio", + "2": "Concedido" + }, + "NAME": "Nombre", + "NAMEDIALOG": { + "TITLE": "Renombrar proyecto", + "DESCRIPTION": "Introduce el nuevo nombre de tu proyecto", + "NAME": "Nuevo nombre" + }, + "MEMBER": { + "TITLE": "Mánagers", + "TITLEDESC": "Los mánagers pueden hacer cambios en este proyecto basándose en su rol.", + "DESCRIPTION": "Estos mánagers pueden editar tu proyecto.", + "USERNAME": "Nombre de usuario", + "DISPLAYNAME": "Nombre mostrado", + "LOGINNAME": "Nombre de inicio de sesión", + "EMAIL": "Email", + "ROLES": "Roles", + "USERID": "ID de usuario" + }, + "GRANT": { + "EMPTY": "No hay organizaciones concesionarias.", + "TITLE": "Concesiones de proyecto", + "DESCRIPTION": "Permitir a otra organización usar tu proyecto.", + "EDITTITLE": "Editar roles", + "CREATE": { + "TITLE": "Crear organización concesionaria", + "SEL_USERS": "Selecciona los usuarios a los que quieres conceder acceso", + "SEL_PROJECT": "Buscar un proyecto", + "SEL_ROLES": "Selecciona los roles que quieres que se añadan a la concesión", + "SEL_USER": "Seleccionar usuarios", + "SEL_ORG": "Establecer el dominio", + "SEL_ORG_DESC": "Introduce el dominio completo para especificar la organización concesionaria.", + "ORG_TITLE": "Organización", + "ORG_DESCRIPTION": "Estás a punto de conceder acceso a un usuario para la organización {{name}}.", + "ORG_DESCRIPTION_DESC": "Cambia el contexto en la cabecera superior para conceder acceso a un usuario para otra organización.", + "SEL_ORG_FORMFIELD": "Completar dominio", + "SEL_ORG_BUTTON": "Buscar organización", + "FOR_ORG": "La concesión se creó para:" + }, + "DETAIL": { + "TITLE": "Concesión de proyecto", + "DESC": "Puedes seleccionar qué roles pueden usarse por la organización especificada y elegir mánagers", + "MEMBERTITLE": "Mánagers", + "MEMBERDESC": "Estos son los mánagers de la organización concesionaria. Añade aquí los usuarios que deberían obtener acceso para editar los datos del proyecto.", + "PROJECTNAME": "Nombre del proyecto", + "GRANTEDORG": "Organización concesionaria", + "RESOURCEOWNER": "Propietario del recurso" + }, + "STATE": "Estado", + "STATES": { + "1": "Activo", + "2": "Inactivo" + }, + "ALL": "Todos", + "SHOWDETAIL": "Mostrar detalles", + "USER": "Usuario", + "MEMBERS": "Mánagers", + "ORG": "Organización", + "PROJECTNAME": "Nombre del proyecto", + "GRANTEDORG": "Organización concesionaria", + "GRANTEDORGDOMAIN": "Dominio", + "RESOURCEOWNER": "Propietario del recurso", + "GRANTEDORGNAME": "Nombre de organización", + "GRANTID": "Id de concesiones", + "CREATIONDATE": "Fecha de creación", + "CHANGEDATE": "Última modificación", + "DATES": "Fecha", + "ROLENAMESLIST": "Roles", + "NOROLES": "Sin roles", + "TYPE": "Tipo", + "TOAST": { + "PROJECTGRANTUSERGRANTADDED": "Concesión de proyecto creada.", + "PROJECTGRANTADDED": "Concesión de proyecto añadida.", + "PROJECTGRANTCHANGED": "Concesión de proyecto modificada.", + "PROJECTGRANTMEMBERADDED": "Gestor de concesiones añadido.", + "PROJECTGRANTMEMBERCHANGED": "Gestor de concesiones modificado.", + "PROJECTGRANTMEMBERREMOVED": "Gestor de concesiones eliminado.", + "PROJECTGRANTUPDATED": "Concesión de proyecto actualizada" + }, + "DIALOG": { + "DELETE_TITLE": "Borrar concesión de proyecto", + "DELETE_DESCRIPTION": "Estás a punto de borrar una concesión de proyecto. ¿Estás seguro?" + }, + "ROLES": "Roles del proyecto" + }, + "APP": { + "TITLE": "Aplicaciones", + "NAME": "Nombre", + "NAMEREQUIRED": "Se requiere un nombre." + }, + "ROLE": { + "EMPTY": "Aún no se han creado roles.", + "ADDNEWLINE": "Añadir rol adicional", + "KEY": "Clave", + "TITLE": "Roles", + "DESCRIPTION": "Define algunos roles que pueden usarse para crear concesiones sobre proyectos.", + "NAME": "Nombre", + "DISPLAY_NAME": "Nombre mostrado", + "GROUP": "Grupo", + "ACTIONS": "Acciones", + "ADDTITLE": "Crear rol", + "ADDDESCRIPTION": "Introducir los datos para el nuevo rol.", + "EDITTITLE": "Editar rol", + "EDITDESCRIPTION": "Introducir los nuevos datos para el rol.", + "DELETE": "Borrar rol", + "CREATIONDATE": "Creado", + "CHANGEDATE": "Última modificación", + "SELECTGROUPTOOLTIP": "Selecciona todos los roles del grupo {{group}}.", + "OPTIONS": "Opciones", + "ASSERTION": "Comprobar roles en la autenticación", + "ASSERTION_DESCRIPTION": "La información del rol es enviada desde el endpoint de Userinfo y, dependiendo de la configuración de la aplicación, en tokens y otros tipos.", + "CHECK": "Comprobar autorización en la autenticación", + "CHECK_DESCRIPTION": "Si se establece, a los usuarios solo se les permite autenticarse si se ha asignado algún rol a su cuenta.", + "DIALOG": { + "DELETE_TITLE": "Borrar rol", + "DELETE_DESCRIPTION": "Estás a punto de borrar un rol de proyecto. ¿Estás seguro?" + } + }, + "HAS_PROJECT": "Comprobar proyecto en la autenticación", + "HAS_PROJECT_DESCRIPTION": "Se comprueba si la organización del usuario tiene este proyecto. De no tenerlo, el usuario no puede ser autenticado.", + "TABLE": { + "TOTAL": "Total de entradas:", + "SELECTION": "Elementos seleccionados", + "DEACTIVATE": "Desactivar proyecto", + "ACTIVATE": "Activar proyecto", + "DELETE": "Borrar proyecto", + "ORGNAME": "Nombre de organización", + "ORGDOMAIN": "Dominio de organización", + "STATE": "Estado", + "TYPE": "Tipo", + "CREATIONDATE": "Creado el", + "CHANGEDATE": "Última modificación", + "RESOURCEOWNER": "Propietario", + "SHOWTABLE": "Mostrar tabla", + "SHOWGRID": "Mostrar cuadrícula", + "EMPTY": "No se encontraron proyectos" + }, + "TOAST": { + "MEMBERREMOVED": "Mánager eliminado.", + "MEMBERSADDED": "Mánagers añadidos.", + "MEMBERADDED": "Mánager añadido.", + "MEMBERCHANGED": "Mánager modificado.", + "ROLESCREATED": "Roles creados.", + "ROLEREMOVED": "Rol eliminado.", + "ROLECHANGED": "Rol modificado.", + "REACTIVATED": "Reactivado.", + "DEACTIVATED": "Desactivado.", + "CREATED": "Proyecto creado.", + "UPDATED": "Proyecto modificado.", + "GRANTUPDATED": "Concesión modificada.", + "DELETED": "Proyecto borrado." + } + }, + "ROLES": { + "DIALOG": { + "DELETE_TITLE": "Borrar rol", + "DELETE_DESCRIPTION": "Estás a punto de borrar un rol. ¿Estás seguro?" + } + }, + "NEXTSTEPS": { + "TITLE": "Próximos pasos" + }, + "IDP": { + "LIST": { + "TITLE": "Proveedores de identidad", + "DESCRIPTION": "Gestiona la configuración de tu proveedor de identidad, que puede activarse en los ajustes de inicio de sesión.", + "ACTIVETITLE": "Activar proveedores de identidad" + }, + "CREATE": { + "TITLE": "Añadir proveedor", + "DESCRIPTION": "Selecciona uno o más de los siguientes proveedores.", + "STEPPERTITLE": "Crear proveedor", + "OIDC": { + "TITLE": "Proveedor OIDC", + "DESCRIPTION": "Introduce los datos requeridos por tu proveedor OIDC." + }, + "OAUTH": { + "TITLE": "Proveedor OAuth", + "DESCRIPTION": "Introduce los datos requeridos por tu proveedor OAuth." + }, + "JWT": { + "TITLE": "Proveedor JWT", + "DESCRIPTION": "Introduce los datos requeridos por tu proveedor JWT." + }, + "GOOGLE": { + "TITLE": "Proveedor Google", + "DESCRIPTION": "Introduce los datos requeridos por tu proveedor de identidad Google" + }, + "GITLAB": { + "TITLE": "Proveedor Gitlab", + "DESCRIPTION": "Introduce los datos requeridos por tu proveedor de identidad Gitlab" + }, + "GITLABSELFHOSTED": { + "TITLE": "Proveedor Gitlab Self Hosted", + "DESCRIPTION": "Introduce las credenciales para tu proveedor de identidad Gitlab Self Hosted" + }, + "GITHUBES": { + "TITLE": "Proveedor GitHub Enterprise Server", + "DESCRIPTION": "Introduce las credenciales para tu proveedor de identidad GitHub Enterprise Server" + }, + "GITHUB": { + "TITLE": "Proveedor Github", + "DESCRIPTION": "Introduce las credenciales para tu proveedor de identidad Github" + }, + "AZUREAD": { + "TITLE": "Proveedor Microsoft", + "DESCRIPTION": "Introduce las credenciales para tu proveedor de identidad Microsoft" + }, + "LDAP": { + "TITLE": "Active Directory / LDAP", + "DESCRIPTION": "Introduce las credenciales para tu proveedor LDAP" + } + }, + "DETAIL": { + "TITLE": "Proveedor de identidad (IDP)", + "DESCRIPTION": "Actualiza la configuración de tu proveedor", + "DATECREATED": "Creado", + "DATECHANGED": "Cambiado" + }, + "OPTIONS": { + "ISAUTOCREATION": "Creación automática", + "ISAUTOCREATION_DESC": "Si se selecciona, una cuenta se creará si aún no existiera.", + "ISAUTOUPDATE": "Actualización automática", + "ISAUTOUPDATE_DESC": "Si se selecciona, las cuentas se actualizarán en la reautenticación.", + "ISCREATIONALLOWED": "Creación de cuentas permitida", + "ISCREATIONALLOWED_DESC": "Determina si se pueden crear cuentas.", + "ISLINKINGALLOWED": "Permitida la vinculación de cuentas", + "ISLINKINGALLOWED_DESC": "Determina si una identidad puede vincularse a una cuenta existente." + }, + "OWNERTYPES": { + "0": "desconocido", + "1": "Instancia", + "2": "Organización" + }, + "STATES": { + "1": "activo", + "2": "inactivo" + }, + "AZUREADTENANTTYPES": { + "3": "Tenant ID", + "0": "Common", + "1": "Organizations", + "2": "Consumers" + }, + "AZUREADTENANTTYPE": "Tipo de Tenant", + "AZUREADTENANTID": "ID de Tenant", + "EMAILVERIFIED": "Correo verificado", + "NAMEHINT": "Si se especifica se mostrará en la interfaz de inicio de sesión.", + "OPTIONAL": "opcional", + "LDAPATTRIBUTES": "Atributos LDAP", + "UPDATEBINDPASSWORD": "actualizar contraseña para Bind", + "UPDATECLIENTSECRET": "actualizar secreto del cliente", + "ADD": "Añadir proveedor de identidad", + "TYPE": "Tipo", + "OWNER": "Propietario", + "ID": "ID", + "NAME": "Nombre", + "AUTHORIZATIONENDPOINT": "Endpoint de autorización", + "TOKENENDPOINT": "Endpoint de Tokens", + "USERENDPOINT": "Endpoint de usuarios", + "IDATTRIBUTE": "Atributo ID", + "AVAILABILITY": "Disponibilidad", + "AVAILABLE": "disponible", + "AVAILABLEBUTINACTIVE": "disponible pero inactivo", + "SETAVAILABLE": "configurar como disponible", + "SETUNAVAILABLE": "configurar como no disponible", + "CONFIG": "Configuración", + "STATE": "Estado", + "ISSUER": "Emisor", + "SCOPESLIST": "Lista de scopes", + "CLIENTID": "ID del cliente", + "CLIENTSECRET": "Secreto del cliente", + "LDAPCONNECTION": "Conexión", + "LDAPUSERBINDING": "User binding", + "BASEDN": "BaseDn", + "BINDDN": "BindDn", + "BINDPASSWORD": "Contraseña Bind", + "SERVERS": "Servidores", + "STARTTLS": "Start TLS", + "TIMEOUT": "Timeout en segundos", + "USERBASE": "Userbase", + "USERFILTERS": "Filtros de usuario", + "USEROBJECTCLASSES": "User Object Classes", + "REQUIRED": "requerido", + "LDAPIDATTRIBUTE": "Atributo ID", + "AVATARURLATTRIBUTE": "Atributo de Url de avatar", + "DISPLAYNAMEATTRIBUTE": "Atributo Displayname", + "EMAILATTRIBUTEATTRIBUTE": "Atributo Email", + "EMAILVERIFIEDATTRIBUTE": "Atributo Email verificado", + "FIRSTNAMEATTRIBUTE": "Atributo Firstname", + "LASTNAMEATTRIBUTE": "Atributo Lastname", + "NICKNAMEATTRIBUTE": "Atributo Nickname", + "PHONEATTRIBUTE": "Atributo Phone", + "PHONEVERIFIEDATTRIBUTE": "Atributo phone verificado", + "PREFERREDLANGUAGEATTRIBUTE": "Atributo Preferred language", + "PREFERREDUSERNAMEATTRIBUTE": "Atributo Preferred username", + "PROFILEATTRIBUTE": "Atributo Profile", + "IDPDISPLAYNAMMAPPING": "Mapeado de nombres mostrados IDP", + "USERNAMEMAPPING": "Maperado de nombres de usuario", + "DATES": "Fechas", + "CREATIONDATE": "Creado el", + "CHANGEDATE": "Última modificación", + "DEACTIVATE": "Desactivar", + "ACTIVATE": "Activar", + "DELETE": "Borrar", + "DELETE_TITLE": "Borrar IDP", + "DELETE_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios son irrevocables. ¿Estás seguro de que quieres hacer esto?", + "DELETE_SELECTION_TITLE": "Borrar IDP", + "DELETE_SELECTION_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios resultantes son irrevocables. ¿Estás seguro de que quieres hacer esto?", + "EMPTY": "No hay IDP disponible", + "OIDC": { + "GENERAL": "Información general", + "TITLE": "Configuración OIDC", + "DESCRIPTION": "Introduce los datos del proveedor de identidad OIDC." + }, + "JWT": { + "TITLE": "Configuración JWT", + "DESCRIPTION": "Introduce los datos para el proveedor de identidad JWT.", + "HEADERNAME": "Nombre de cabecera", + "JWTENDPOINT": "JWT Endpoint", + "JWTKEYSENDPOINT": "JWT Keys Endpoint" + }, + "TOAST": { + "SAVED": "Guardado con éxito.", + "REACTIVATED": "IDP reactivado.", + "DEACTIVATED": "IDP desactivado.", + "SELECTEDREACTIVATED": "Los IDPs seleccionados se reactivaron.", + "SELECTEDDEACTIVATED": "Los IDPs seleccionados se han desactivado.", + "SELECTEDKEYSDELETED": "Los IDPs seleccionados se han borrado.", + "DELETED": "¡IDP eliminado con éxito!", + "ADDED": "Añadido con éxito.", + "REMOVED": "Eliminado con éxito." + } + }, + "MFA": { + "LIST": { + "MULTIFACTORTITLE": "Acceso sin contraseña", + "MULTIFACTORDESCRIPTION": "Define tus multifactores para tu autenticación sin contraseña aquí.", + "SECONDFACTORTITLE": "Autenticación multifactor", + "SECONDFACTORDESCRIPTION": "Define otros factores posibles con los que puedes asegurar tu autenticación con contraseña." + }, + "CREATE": { + "TITLE": "Nuevo factor", + "DESCRIPTION": "Selecciona tu nuevo tipo de factor." + }, + "DELETE": { + "TITLE": "Borrar factor", + "DESCRIPTION": "Está a punto de borrar un factor de las configuraciones de inicio de sesión. ¿Estás seguro?" + }, + "TOAST": { + "ADDED": "Añadido con éxito.", + "SAVED": "Guardado con éxito.", + "DELETED": "Eliminado con éxito." + }, + "TYPE": "Tipo", + "MULTIFACTORTYPES": { + "0": "Desconocido", + "1": "Huella dactilar, claves de seguridad, Face ID y otros" + }, + "SECONDFACTORTYPES": { + "0": "Desconocido", + "1": "One Time Password (OTP)", + "2": "Huella dactilar, claves de seguridad, Face ID y otros" + } + }, + "LOGINPOLICY": { + "CREATE": { + "TITLE": "Ajustes de inicio de sesión", + "DESCRIPTION": "Define cómo tus usuarios pueden autenticarse en tu organización." + }, + "IDPS": "Proveedores de identidad (IDPs)", + "ADDIDP": { + "TITLE": "Añadir proveedor de identidad (IDP)", + "DESCRIPTION": "Puedes seleccionar proveedores predefinidos o creados por uno mismo para la autenticación.", + "SELECTIDPS": "Proveedores de identidad (IDP)" + }, + "PASSWORDLESS": "Inicio de sesión sin contraseña", + "PASSWORDLESSTYPE": { + "0": "No permitido", + "1": "Permitido" + } + }, + "APP": { + "LIST": "Aplicaciones", + "COMPLIANCE": "Cumplimiento OIDC", + "URLS": "URLs", + "CONFIGURATION": "Configuración", + "TOKEN": "Ajustes de Token", + "PAGES": { + "TITLE": "Aplicación", + "ID": "ID", + "DESCRIPTION": "Aquí puedes editar los datos de tu aplicación y su configuración.", + "CREATE": "Crear aplicación", + "CREATE_SELECT_PROJECT": "Selecciona primero tu proyecto", + "CREATE_NEW_PROJECT": "o crea uno nuevo aquí.", + "CREATE_DESC_TITLE": "Introduce los detalles de tu aplicación paso a paso", + "CREATE_DESC_SUB": "Se generará automáticamente una configuración recomendada.", + "STATE": "Estado", + "DATECREATED": "Creada", + "DATECHANGED": "Cambiada", + "URLS": "URLs", + "DELETE": "Borrar App", + "DETAIL": { + "TITLE": "Detalle", + "STATE": { + "0": "No definida", + "1": "Activa", + "2": "Inactiva" + } + }, + "DIALOG": { + "CONFIG": { + "TITLE": "Cambiar configuración OIDC" + }, + "DELETE": { + "TITLE": "Borrar App", + "DESCRIPTION": "¿Realmente quieres borrar esta aplicación?" + } + }, + "NEXTSTEPS": { + "TITLE": "Pasos siguientes", + "0": { + "TITLE": "Añadir roles", + "DESC": "Introduce tus roles de proyecto" + }, + "1": { + "TITLE": "Añadir usuarios", + "DESC": "Aañadir nuevos usuarios de tu organización" + }, + "2": { + "TITLE": "Ayuda & Soporte", + "DESC": "Lee nuestra documentación acerca de crear aplicaciones o contactar con nuestro soporte" + } + } + }, + "NAMEDIALOG": { + "TITLE": "Renombrar App", + "DESCRIPTION": "Introducir el nuevo nombre de tu app", + "NAME": "Nuevo nombre" + }, + "NAME": "Nombre", + "TYPE": "Tipo de aplicación", + "AUTHMETHOD": "Método de autenticación", + "AUTHMETHODSECTION": "Método de autenticación", + "GRANT": "Tipos de concesión", + "ADDITIONALORIGINS": "Orígenes adicionales", + "ADDITIONALORIGINSDESC": "Si quieres añadir orígenes adicionales a tu aplicación que no se usan como redirección puedes hacerlo aquí.", + "ORIGINS": "Orígenes", + "NOTANORIGIN": "El valor introducido no es un orígen", + "PROSWITCH": "Soy pro. Saltar este asistente.", + "NAMEANDTYPESECTION": "Nombre y tipo", + "TITLEFIRST": "Nombre de la aplicación", + "TYPETITLE": "Tipo de aplicación", + "OIDC": { + "WELLKNOWN": "Más enlaces pueden obtenerse del endpoint de descubrimiento.", + "INFO": { + "ISSUER": "Emisor", + "CLIENTID": "Id de cliente" + }, + "CURRENT": "Configuración actual", + "TOKENSECTIONTITLE": "Opciones de AuthToken", + "REDIRECTSECTIONTITLE": "Ajustes de redirección", + "REDIRECTTITLE": "Especifica las URIs a las que redirigirá el inicio de sesión.", + "POSTREDIRECTTITLE": "Esta es la URI a la que se redirigirá tras cerrar sesión.", + "REDIRECTDESCRIPTIONWEB": "Las URIs de redirección deben comenzar con https://. http:// solo es válida con el modo de desarrollo activado.", + "REDIRECTDESCRIPTIONNATIVE": "Las URIs de redirección deben comenzar con tu propio protocolo, http://127.0.0.1, http://[::1] o http://localhost.", + "REDIRECTNOTVALID": "Esta URI de redirección no es válida.", + "COMMAORENTERSEPERATION": "separado con ↵", + "TYPEREQUIRED": "Se requiere el tipo.", + "TITLE": "Configuración OIDC", + "CLIENTID": "ID de cliente", + "CLIENTSECRET": "Secreto de cliente", + "CLIENTSECRET_NOSECRET": "Con tu flujo de autenticación elegido, no se requiere ningún secreto y por tanto no está disponible.", + "CLIENTSECRET_DESCRIPTION": "Mantén tu secreto de cliente en un lugar seguro puesto que desaparecerá una vez que se cierre el diálogo.", + "REGENERATESECRET": "Regenerar secreto de cliente", + "DEVMODE": "Modo Desarrollo", + "DEVMODEDESC": "Cuidado: Si el modo de desarrollo está activado las URIs de redirección no serán validadas.", + "SKIPNATIVEAPPSUCCESSPAGE": "Saltar página de inicio de sesión con éxito", + "SKIPNATIVEAPPSUCCESSPAGE_DESCRIPTION": "Sáltate la página de éxito después de iniciar sesión en esta app nativa.", + "REDIRECT": "URIs de redirección", + "REDIRECTSECTION": "URIs de redirección", + "POSTLOGOUTREDIRECT": "URIs a usar tras cerrar sesión", + "RESPONSESECTION": "Tipos de respuestas", + "GRANTSECTION": "Tipos de concesiones", + "GRANTTITLE": "Selecciona tus tipos de concesiones. Nota: Implícito solo está disponibles para aplicaciones de navegador.", + "APPTYPE": { + "0": "Web", + "1": "User Agent", + "2": "Nativo" + }, + "RESPONSETYPE": "Tipos de respuestas", + "RESPONSE": { + "0": "Código", + "1": "ID Token", + "2": "Token-ID Token" + }, + "REFRESHTOKEN": "Token de refresco", + "GRANTTYPE": "Tipos de concesiones", + "GRANT": { + "0": "Código de autorización", + "1": "Implícito", + "2": "Token de refresco" + }, + "AUTHMETHOD": { + "0": "Básico", + "1": "Post", + "2": "Ninguno", + "3": "Clave privada JWT" + }, + "TOKENTYPE": "Auth Token Type", + "TOKENTYPE0": "Bearer Token", + "TOKENTYPE1": "JWT", + "UNSECUREREDIRECT": "Espero que sepas lo que estás haciendo.", + "OVERVIEWSECTION": "Resumen", + "OVERVIEWTITLE": "Has terminado. Revisa tu configuración.", + "ACCESSTOKENROLEASSERTION": "Añadir roles de usuario para el token de acceso", + "ACCESSTOKENROLEASSERTION_DESCRIPTION": "Si se selecciona, los roles solicitados para el usuario autenticado se añaden al token de acceso.", + "IDTOKENROLEASSERTION": "Roles de usuario dentro del Token de ID", + "IDTOKENROLEASSERTION_DESCRIPTION": "Si se selecciona, los roles solicitados para el usuario autenticado se añaden al token de ID.", + "IDTOKENUSERINFOASSERTION": "Información del usuario dentro del Token de ID", + "IDTOKENUSERINFOASSERTION_DESCRIPTION": "Permite a los clientes obtener los claims de perfil, email, teléfono y dirección del token de ID.", + "CLOCKSKEW": "Permite a los clientes manejar el sesgo de reloj de OP y el cliente. La duración (0-5 s) se agregará al claim exp y se restará de iats, auth_time y nbf.", + "RECOMMENDED": "recomendado", + "NOTRECOMMENDED": "no recomendado", + "SELECTION": { + "APPTYPE": { + "WEB": { + "TITLE": "Web", + "DESCRIPTION": "Aplicaciones web habituales como .net, PHP, Node.js, Java, etc." + }, + "NATIVE": { + "TITLE": "Nativo", + "DESCRIPTION": "Apps móviles, de escritorio, dispositivos inteligentes, etc." + }, + "USERAGENT": { + "TITLE": "User Agent", + "DESCRIPTION": "Single Page Applications (SPA) y en general todos los frameworks de JS ejecutados en navegadores" + } + } + } + }, + "API": { + "INFO": { + "CLIENTID": "Id de cliente" + }, + "REGENERATESECRET": "Regenerar secreto del cliente", + "SELECTION": { + "TITLE": "API", + "DESCRIPTION": "APIs en general" + }, + "AUTHMETHOD": { + "0": "Básica", + "1": "Clave privada JWT" + } + }, + "SAML": { + "SELECTION": { + "TITLE": "SAML", + "DESCRIPTION": "Aplicaciones SAML" + }, + "CONFIGSECTION": "Configuración SAML", + "URL": "URL donde está ubicado el fichero de metadatos", + "OR": "o", + "XML": "Sube un fichero XML de metadatos", + "METADATA": "Metadatos", + "METADATAFROMFILE": "Metadatos desde un fichero" + }, + "AUTHMETHODS": { + "CODE": { + "TITLE": "Código", + "DESCRIPTION": "Intercambia el código de autorización por tokens" + }, + "PKCE": { + "TITLE": "PKCE", + "DESCRIPTION": "Usar un hash aleatorio en lugar de un secreto de cliente estático para más seguridad" + }, + "POST": { + "TITLE": "POST", + "DESCRIPTION": "Enviar client_id y client_secret como parte del formulario" + }, + "PK_JWT": { + "TITLE": "Clave privada JWT", + "DESCRIPTION": "Usar una clave privada para autorizar la aplicación" + }, + "BASIC": { + "TITLE": "Básica", + "DESCRIPTION": "Autenticación con nombre de usuario y contraseña" + }, + "IMPLICIT": { + "TITLE": "Implícita", + "DESCRIPTION": "Obtén los tokens directamente del endpoint de autorización" + }, + "CUSTOM": { + "TITLE": "Personalizada", + "DESCRIPTION": "Tu configuración no se corresponde con alguna de las otras opciones." + } + }, + "TOAST": { + "REACTIVATED": "Aplicación reactivada.", + "DEACTIVATED": "Aplicación desactivada.", + "OIDCUPDATED": "App actualizada.", + "APIUPDATED": "App actualizada", + "UPDATED": "App actualizada.", + "CREATED": "App creada.", + "CLIENTSECRETREGENERATED": "secreto del cliente generado.", + "DELETED": "App borrada.", + "CONFIGCHANGED": "¡Cambios detectados!" + } + }, + "GENDERS": { + "0": "Desconocido", + "1": "Mujer", + "2": "Hombre", + "3": "Otro" + }, + "LANGUAGES": { + "de": "Deutsch", + "en": "English", + "es": "Español", + "fr": "Français", + "it": "Italiano", + "ja": "日本語", + "pl": "Polski", + "zh": "简体中文" + }, + "MEMBER": { + "ADD": "Añadir un Mánager", + "CREATIONTYPE": "Tipo de creación", + "CREATIONTYPES": { + "3": "IAM", + "2": "Organización", + "0": "Proyecto propio", + "1": "Proyecto con acceso concedido", + "4": "Proyecto" + }, + "EDITROLE": "Editar roles", + "EDITFOR": "Editar los roles para el usuario: {{value}}", + "DIALOG": { + "DELETE_TITLE": "Eliminar Mánager", + "DELETE_DESCRIPTION": "Estás a punto de eliminar un mánager. ¿Estás seguro?" + } + }, + "ROLESLABEL": "Roles", + "GRANTS": { + "TITLE": "Autorizaciones", + "DESC": "Estas son todas las autorizaciones de tu organización.", + "DELETE": "Borrar autorización", + "EMPTY": "No se encontraron autorizaciones", + "ADD": "Crear autorización", + "ADD_BTN": "Nueva", + "PROJECT": { + "TITLE": "Autorización", + "DESCRIPTION": "Define las autorizaciones para el proyecto especificado. Ten en cuenta que solo puedes ver entradas de los proyectos y usuarios para los que tienes permisos." + }, + "USER": { + "TITLE": "Autorización", + "DESCRIPTION": "Define las autorizaciones para el usuario especificado. Ten en cuenta que solo puedes ver entradas de los proyectos y usuarios para los que tienes permisos." + }, + "CREATE": { + "TITLE": "Crear autorización", + "DESCRIPTION": "Buscar la organización, el proyecto, y los roles correspondientes." + }, + "EDIT": { + "TITLE": "Cambiar autorización" + }, + "DETAIL": { + "TITLE": "Detalles de autorización", + "DESCRIPTION": "Aquí puedes ver todos los detalles de la autorización." + }, + "TOAST": { + "UPDATED": "Autorización actualizada.", + "REMOVED": "Autorización eliminada", + "BULKREMOVED": "Autorizaciones eliminadas." + }, + "DIALOG": { + "DELETE_TITLE": "Borrar autorización", + "DELETE_DESCRIPTION": "Estás a punto de borrar una autorización. ¿Quieres continuar?", + "BULK_DELETE_TITLE": "Borrar autorizaciones", + "BULK_DELETE_DESCRIPTION": "Estás a punto de borrar múltiples autorizaciones. ¿Quieres continuar?" + } + }, + "CHANGES": { + "LISTTITLE": "Últimos cambios", + "BOTTOM": "Has llegado al final de la lista.", + "LOADMORE": "Cargar más", + "ORG": { + "TITLE": "Actividad", + "DESCRIPTION": "Aquí puedes ver los últimos eventos que han generado un cambio de organización." + }, + "PROJECT": { + "TITLE": "Actividad", + "DESCRIPTION": "Aquí puedes ver los últimos eventos que han generado un cambio de proyecto." + }, + "USER": { + "TITLE": "Actividad", + "DESCRIPTION": "Aquí puedes ver los últimos eventos que han generado un cambio de usuario." + } + } +} diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json index 1adc3b2cbf..adb8b36f22 100644 --- a/console/src/assets/i18n/fr.json +++ b/console/src/assets/i18n/fr.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "Votre processus d'intégration", + "MOREDESCRIPTION": "plus de raccourcis", "COMPLETED": "terminé", "DISMISS": "fermer", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "Créez votre marque", - "description": "Définissez la couleur et la forme de votre connexion et téléchargez votre logo et vos icônes." + "description": "Définissez la couleur et la forme de votre connexion et téléchargez votre logo et vos icônes.", + "action": "Définissez" }, "instance.smtp.config.added": { - "title": "Configurez vos paramètres SMTP", - "description": "Définissez vos propres paramètres de serveur de messagerie" + "title": "Configurez paramètres SMTP", + "description": "Définissez paramètres de serveur de messagerie", + "action": "Configurez" }, "project.added": { - "title": "Créez votre premier projet", - "description": "Ajoutez votre premier projet et définissez ses rôles et autorisations." + "title": "Créez projet", + "description": "Ajoutez projet et définissez ses rôles et autorisations.", + "action": "Créez projet" }, "project.application.added": { "title": "Créez votre première application", - "description": "Créez une application web, native, api ou saml et configurez votre flux d'authentification." + "description": "Créez une application web, native, api ou saml et configurez votre flux d'authentification.", + "action": "Créez application" }, "user.human.added": { "title": "Ajouter des utilisateurs", - "description": "Ajouter les utilisateurs de votre application" + "description": "Ajouter les utilisateurs de application", + "action": "Ajuter utilisateur" }, "user.grant.added": { "title": "Utilisateurs de subventions", - "description": "Autorisez les utilisateurs à accéder à votre application et définissez leur rôle." + "description": "Autorisez les utilisateurs à accéder à votre application et définissez leur rôle.", + "action": "Autorisez" } } }, @@ -240,6 +247,7 @@ }, "ERRORS": { "REQUIRED": "Remplis ce champ s'il te plaît.", + "ATLEASTONE": "Indiquez au moins une valeur.", "TOKENINVALID": { "TITLE": "Votre jeton d'autorisation a expiré.", "DESCRIPTION": "Cliquez sur le bouton ci-dessous pour vous reconnecter." @@ -1012,6 +1020,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1210,6 +1219,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1694,9 +1704,10 @@ "2": "inactif" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "AZUREADTENANTTYPE": "Type de locataire", "AZUREADTENANTID": "ID du locataire", @@ -2060,6 +2071,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json index 31f1b545e6..9022045573 100644 --- a/console/src/assets/i18n/it.json +++ b/console/src/assets/i18n/it.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "Il tuo processo di onboarding", + "MOREDESCRIPTION": "più scorciatoie", "COMPLETED": "completato", "DISMISS": "chiudi", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "Imposta il tuo marchio", - "description": "Definisci la colorazione e il design del vostro login e caricate il vostro logo e le vostre icone." + "description": "Definisci la colorazione e il design del vostro login e caricate il vostro logo e le vostre icone.", + "action": "Imposta marchio" }, "instance.smtp.config.added": { "title": "Configura le impostazioni SMTP", - "description": "Imposta il proprio server di posta" + "description": "Imposta il proprio server di posta", + "action": "Configura SMTP" }, "project.added": { "title": "Crea il tuo primo progetto", - "description": "Aggiungere il primo progetto e definire i ruoli e le autorizzazioni." + "description": "Aggiungere il primo progetto e definire i ruoli e le autorizzazioni.", + "action": "Crea progetto" }, "project.application.added": { "title": "Crea la tua prima applicazione", - "description": "Crea un'applicazione web, nativa, api o saml e imposta il flusso di autenticazione." + "description": "Crea un'applicazione web, nativa, api o saml e imposta il flusso di autenticazione.", + "action": "Crea applicazione" }, "user.human.added": { "title": "Aggiungi utenti", - "description": "Aggiungi gli utenti dell'applicazione" + "description": "Aggiungi gli utenti dell'applicazione", + "action": "Aggiungi utente" }, "user.grant.added": { "title": "Crea autorizzazioni per gli utenti", - "description": "Consenti agli utenti di accedere alla tua applicazione e imposta il loro ruolo." + "description": "Consenti agli utenti di accedere alla tua applicazione e imposta il loro ruolo.", + "action": "Crea autorizzazione" } } }, @@ -240,6 +247,7 @@ }, "ERRORS": { "REQUIRED": "Compilare questo campo.", + "ATLEASTONE": "Inserisci almeno un valore.", "TOKENINVALID": { "TITLE": "Il tuo Access Token \u00e8 scaduto.", "DESCRIPTION": "Clicca il pulsante per richiedere una nuova sessione." @@ -1013,6 +1021,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1211,6 +1220,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1695,9 +1705,10 @@ "2": "inattivo" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "ADD": "Aggiungi fornitore di identità", "AZUREADTENANTTYPE": "Tipo tenant", @@ -2073,6 +2084,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/ja.json b/console/src/assets/i18n/ja.json index 5c3a235c0c..de94a152bc 100644 --- a/console/src/assets/i18n/ja.json +++ b/console/src/assets/i18n/ja.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "オンボーディングの手順", + "MOREDESCRIPTION": "より多くのショートカット", "COMPLETED": "完了", "DISMISS": "いいえ、私はプロです。", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "ブランドをセットアップする", - "description": "ログインの色と形状を定義し、ロゴとアイコンをアップロードします。" + "description": "ログインの色と形状を定義し、ロゴとアイコンをアップロードします。", + "action": "ブランディングの設定" }, "instance.smtp.config.added": { "title": "SMTP設定をセットアップする", - "description": "独自のメールサーバーを設定します。" + "description": "独自のメールサーバーを設定します。", + "action": "SMTP 設定を設定する" }, "project.added": { "title": "最初のプロジェクトを作成する", - "description": "最初のプロジェクトを追加し、ロールと認証を定義します。" + "description": "最初のプロジェクトを追加し、ロールと認証を定義します。", + "action": "プロジェクトを作成" }, "project.application.added": { "title": "最初のアプリケーションを作成する", - "description": "Web、ネイティブ、API、またはSAMLアプリケーションを作成し、認証フローをセットアップします。" + "description": "Web、ネイティブ、API、またはSAMLアプリケーションを作成し、認証フローをセットアップします。", + "action": "アプリケーションを作成" }, "user.human.added": { "title": "ユーザーを追加する", - "description": "アプリケーションユーザーを追加します。" + "description": "アプリケーションユーザーを追加します。", + "action": "ユーザーを作成" }, "user.grant.added": { "title": "ユーザーにグラントする", - "description": "ユーザーがアプリケーションにアクセスし、ロールをセットアップできるようにします。" + "description": "ユーザーがアプリケーションにアクセスし、ロールをセットアップできるようにします。", + "action": "承認の作成" } } }, @@ -241,6 +248,7 @@ }, "ERRORS": { "REQUIRED": "一部の必須項目が不足しています。", + "ATLEASTONE": "少なくとも 1 つの値を指定してください。", "TOKENINVALID": { "TITLE": "トークンが期限切れになりました。", "DESCRIPTION": "下のボタンをクリックして、もう一度ログインする。" @@ -1013,6 +1021,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1206,6 +1215,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1685,9 +1695,10 @@ "2": "非アクティブ" }, "AZUREADTENANTTYPES": { - "0": "共通", - "1": "組織", - "2": "顧客" + "3": "Tenant ID", + "0": "Common", + "1": "Organizations", + "2": "Consumers" }, "AZUREADTENANTTYPE": "テナントタイプ", "AZUREADTENANTID": "テナントID", @@ -2063,6 +2074,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/pl.json b/console/src/assets/i18n/pl.json index 34e649b705..74c5d81531 100644 --- a/console/src/assets/i18n/pl.json +++ b/console/src/assets/i18n/pl.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "Twój proces wprowadzania na rynek", + "MOREDESCRIPTION": "więcej skrótów", "COMPLETED": "zakończone", "DISMISS": "zamknąć", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "Skonfiguruj swoją markę", - "description": "Zdefiniuj kolorystykę i kształt swojego loginu oraz wgraj swoje logo i ikony." + "description": "Zdefiniuj kolorystykę i kształt swojego loginu oraz wgraj swoje logo i ikony.", + "action": "Skonfiguruj branding" }, "instance.smtp.config.added": { "title": "Ustawienia SMTP", - "description": "Ustawienie własnego serwera pocztowego" + "description": "Ustawienie własnego serwera pocztowego", + "action": "skonfiguruj ustawienia SMTP" }, "project.added": { "title": "Stwórz swój pierwszy projekt", - "description": "Dodaj swój pierwszy projekt i określ jego role i uprawnienia." + "description": "Dodaj swój pierwszy projekt i określ jego role i uprawnienia.", + "action": "Utwórz projekt" }, "project.application.added": { "title": "Utwórz swoją pierwszą aplikację", - "description": "Utwórz aplikację internetową, natywną, api lub saml i skonfiguruj swój przepływ uwierzytelniania." + "description": "Utwórz aplikację internetową, natywną, api lub saml i skonfiguruj swój przepływ uwierzytelniania.", + "action": "Utwórz aplikację" }, "user.human.added": { "title": "Dodaj użytkowników", - "description": "Dodaj użytkowników aplikacji" + "description": "Dodaj użytkowników aplikacji", + "action": "Stwórz użytkownika" }, "user.grant.added": { "title": "Użytkownicy dotacji", - "description": "Pozwól użytkownikom na dostęp do Twojej aplikacji i ustaw ich rolę." + "description": "Pozwól użytkownikom na dostęp do Twojej aplikacji i ustaw ich rolę.", + "action": "Utwórz autoryzację" } } }, @@ -240,6 +247,7 @@ }, "ERRORS": { "REQUIRED": "Proszę wypełnić to pole.", + "ATLEASTONE": "Podaj co najmniej jedną wartość.", "TOKENINVALID": { "TITLE": "Twój token autoryzacji wygasł.", "DESCRIPTION": "Kliknij przycisk poniżej, aby ponownie się zalogować." @@ -1012,6 +1020,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1210,6 +1219,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1694,9 +1704,10 @@ "2": "nieaktywny" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "AZUREADTENANTTYPE": "Rodzaj najemcy", "AZUREADTENANTID": "Identyfikator najemcy", @@ -2072,6 +2083,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/assets/i18n/zh.json b/console/src/assets/i18n/zh.json index fa6d506901..b560132685 100644 --- a/console/src/assets/i18n/zh.json +++ b/console/src/assets/i18n/zh.json @@ -44,6 +44,7 @@ }, "ONBOARDING": { "DESCRIPTION": "你的入职过程", + "MOREDESCRIPTION": "更多捷径", "COMPLETED": "已完成", "DISMISS": "隐藏", "CARD": { @@ -53,27 +54,33 @@ "EVENTS": { "instance.policy.label.added": { "title": "设置你的品牌", - "description": "定义你的登录的颜色和形状,上传你的标志和图标。" + "description": "定义你的登录的颜色和形状,上传你的标志和图标。", + "action": "设置品牌" }, "instance.smtp.config.added": { "title": "SMTP设置", - "description": "设置你自己的邮件服务器设置" + "description": "设置你自己的邮件服务器设置", + "action": "设置 SMTP 设置" }, "project.added": { "title": "创建你的第一个项目", - "description": "添加你的第一个项目并定义其角色和授权。" + "description": "添加你的第一个项目并定义其角色和授权。", + "action": "创建项目" }, "project.application.added": { "title": "创建你的第一个应用程序", - "description": "创建一个web、native、api或saml应用程序并设置你的认证流程。" + "description": "创建一个web、native、api或saml应用程序并设置你的认证流程。", + "action": "创建应用程序" }, "user.human.added": { "title": "添加用户", - "description": "添加你的应用程序用户" + "description": "添加你的应用程序用户", + "action": "创建用户" }, "user.grant.added": { "title": "授予用户", - "description": "允许用户访问你的应用程序并设置他们的角色。" + "description": "允许用户访问你的应用程序并设置他们的角色。", + "action": "创建授权" } } }, @@ -240,6 +247,7 @@ }, "ERRORS": { "REQUIRED": "请填写此栏", + "ATLEASTONE": "P至少提供一个值。", "TOKENINVALID": { "TITLE": "您的授权令牌已过期。", "DESCRIPTION": "点击下方按钮再次登录。" @@ -1012,6 +1020,7 @@ "LANGUAGE": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1209,6 +1218,7 @@ "LOCALES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", @@ -1693,9 +1703,10 @@ "2": "停用" }, "AZUREADTENANTTYPES": { + "3": "Tenant ID", "0": "Common", "1": "Organizations", - "2": "Customers" + "2": "Consumers" }, "AZUREADTENANTTYPE": "租户类型", "AZUREADTENANTID": "租户编号", @@ -2059,6 +2070,7 @@ "LANGUAGES": { "de": "Deutsch", "en": "English", + "es": "Español", "fr": "Français", "it": "Italiano", "ja": "日本語", diff --git a/console/src/component-themes.scss b/console/src/component-themes.scss index 88b4201422..68efa9d12b 100644 --- a/console/src/component-themes.scss +++ b/console/src/component-themes.scss @@ -65,6 +65,7 @@ @import 'src/app/modules/search-user-autocomplete/search-user-autocomplete.component.scss'; @import 'src/app/modules/policies/login-policy/factor-table/factor-table.component.scss'; @import 'src/app/modules/info-overlay/info-overlay.component.scss'; +@import 'src/app/modules/create-layout/create-layout.component.scss'; @import './styles/codemirror.scss'; @mixin component-themes($theme) { @@ -136,4 +137,5 @@ @include action-keys-theme($theme); @include codemirror-theme($theme); @include contact-theme($theme); + @include app-create-theme($theme); } diff --git a/console/src/environments/environment.prod.ts b/console/src/environments/environment.prod.ts deleted file mode 100644 index c9669790be..0000000000 --- a/console/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true, -}; diff --git a/console/src/environments/environment.ts b/console/src/environments/environment.ts deleted file mode 100644 index 31cb7855f1..0000000000 --- a/console/src/environments/environment.ts +++ /dev/null @@ -1,16 +0,0 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. - -export const environment = { - production: false, -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/console/src/main.ts b/console/src/main.ts index 243696d657..17a5cd4e0a 100644 --- a/console/src/main.ts +++ b/console/src/main.ts @@ -1,15 +1,6 @@ -import 'codemirror/mode/javascript/javascript'; -import 'codemirror/mode/xml/xml'; - -import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} platformBrowserDynamic() .bootstrapModule(AppModule) diff --git a/console/tsconfig.json b/console/tsconfig.json index 4cf6388081..1301bf238f 100644 --- a/console/tsconfig.json +++ b/console/tsconfig.json @@ -6,6 +6,8 @@ "outDir": "./dist/out-tsc", "forceConsistentCasingInFileNames": true, "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "sourceMap": true, @@ -15,11 +17,12 @@ "moduleResolution": "node", "importHelpers": true, "target": "ES2022", - "module": "es2022", - "lib": ["ES2022", "dom"], - "useDefineForClassFields": false + "module": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "dom"] }, "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true diff --git a/console/tsconfig.spec.json b/console/tsconfig.spec.json index f140ce15bf..47e3dd7551 100644 --- a/console/tsconfig.spec.json +++ b/console/tsconfig.spec.json @@ -5,6 +5,5 @@ "outDir": "./out-tsc/spec", "types": ["jasmine"] }, - "files": ["src/test.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] } diff --git a/docs/README.md b/docs/README.md index b3a1dfdd28..89e080a31d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,13 @@ To add a new site to the already existing structure simply save the `md` file in yarn install ``` +## Generate + +``` +yarn generate +``` + + ## Local Development ``` @@ -29,4 +36,4 @@ docker build -f docs/Dockerfile . -t zitadel-docs ```shell docker run -p 8080:8080 zitadel-docs -``` \ No newline at end of file +``` diff --git a/docs/docs/guides/integrate/export-and-import.md b/docs/docs/guides/integrate/export-and-import.md deleted file mode 100644 index f091baad62..0000000000 --- a/docs/docs/guides/integrate/export-and-import.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: Export and import with ZITADEL ---- - -## Export from V1 to Import into V2 - -To migrate from ZITADEL V1 to V2 the API provides you with a possibility to export all resources which are under your organizations. -Currently, this doesn't include the following points: - -* Global policies -* IAM members -* Global IDPs -* Global second/multi factors -* Machine keys -* Personal Access Tokens -* Application keys -* Passwordless authentication - -Which results in that if you want to import, and you have no defined organization-specific custom policies, the experience for your users will not be exactly like in your old instance. - -:::note -Note that the resources will be migrated without the event stream. This means that you will not have the audit trail for the imported objects. -::: - -### Use the API - -To export all necessary data you only have to use one request, as an example: - -```bash -curl --request POST \ - --url {your_domain}/admin/v1/export \ - --header 'Authorization: Bearer XXXX' \ - --header 'Content-Type: application/json' \ - --data '{ - "org_ids": [ "70669144072186707", "70671105999825752" ], - "excluded_org_ids": [ ], - "with_passwords": true, - "with_otp": true, - "timeout": "30s", - "response_output": true -}' -o export.json -``` - -* "org_ids": to select which organizations should be exported -* "excluded_org_ids": to exclude several organization, if for example no organizations are selected -* "with_passwords": to include the hashed_passwords of the users in the export -* "with_otp": to include the OTP-code of the users in the export -* "timeout": timeout of the call to export the data -* "response_output": to output the export as response to the call - -:::note -To import the exported data into you new instance, you have to have an already existing instance on a ZITADEL V2, with all desired configuration and global resources. -::: - -Then as an example you can use one request for the import: - -```bash -curl --request POST \ - --url {your_domain}/admin/v1/import \ - --header 'Authorization: Bearer XXXX' \ - --header 'Content-Type: application/json' \ - --data '{ - "timeout": "10m", - "data_orgsv1": '$(cat export.json)' -}' -``` - -* "timeout": timeout of the call to import the data -* "data_orgsv1": data which was exported from ZITADEL V1 - -### Use a Google Cloud Storage - -:::note -To use this requests you have to have an access token with enough permissions to export and import. -The used serviceaccount has to have at least the role "Storage Object Creator" to create objects on GCS -::: - -To export all necessary data you only have to use one request which results in a file in your GCS, as an example: - -```bash -curl --request POST \ - --url {your_domain}/admin/v1/export \ - --header 'Authorization: Bearer XXXX' \ - --header 'Content-Type: application/json' \ - --data ' "{ - "org_ids": [ "70669144072186707", "70671105999825752" ], - "excluded_org_ids": [ ], - "with_passwords": true, - "with_otp": true, - "timeout": "10m", - "gcs_output": { - "path": "export.json", - "bucket": "caos-zitadel-exports", - "serviceaccount_json": "XXXX" - } -}' -``` - -* "org_ids": to select which organizations should be exported -* "excluded_org_ids": to exclude several organization, if for example no organizations are selected -* "with_passwords": to include the hashed_passwords of the users in the export -* "with_otp": to include the OTP-code of the users in the export -* "timeout": timeout for the call to export the data -* "gcs_output": to write a file into GCS as output to the call - * "path": path to the output file on GCS - * "bucket": used bucket for output on GCS - * "serviceaccount_json": base64-encoded serviceaccount.json used to output the file on GCS - -:::note -To import the exported data into you new instance, you have to have an already existing instance on a ZITADEL V2, with all desired configuration and global resources. -The used serviceaccount has to have at least the role "Storage Object Viewer" to read objects from GCS -::: - -Then as an example you can use one request for the import: - -```bash -curl --request POST \ - --url {your_domain}/admin/v1/import \ - --header 'Authorization: Bearer XXXX' \ - --header 'Content-Type: application/json' \ - --data '{ - "timeout": "10m", - "data_orgsv1_gcs": { - "path": "export.json", - "bucket": "caos-zitadel-exports", - "serviceaccount_json": "XXXX" - } -}' -``` - -* "timeout": timeout for the import task -* "data_orgsv1_gcs": to read the export from GCS directly - * "path": path to the exported file on GCS - * "bucket": used bucket to read from GCS - * "serviceaccount_json": base64-encoded serviceaccount.json used to read the file from GCS - diff --git a/docs/docs/guides/integrate/identity-providers/_activate.mdx b/docs/docs/guides/integrate/identity-providers/_activate.mdx new file mode 100644 index 0000000000..689d35cb7d --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_activate.mdx @@ -0,0 +1,2 @@ +Once you created the provider, it is listed in the providers overview. +Activate it by selecting the tick with the tooltip *set as available*. \ No newline at end of file diff --git a/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx b/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx new file mode 100644 index 0000000000..fe7b882a61 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_custom_login_policy.mdx @@ -0,0 +1,10 @@ +The login policy can be configured on two levels. Once as default on the instance and this can be overwritten for each organization. +The only difference is where you configure it. Go either to the settings page of a specific organization or to the settings page of your instance. +Instance: $YOUR-DOMAIN/ui/console/settings?id=general +Organization: Choose the organization in the menu and go to $YOUR-DOMAIN/ui/console/org-settings?id=login + +1. Go to the Settings +2. Modify your login policy in the menu "Login Behavior and Security" +3. Enable the attribute "External IDP allowed" + +![Allow External IDP](/img/guides/zitadel_allow_external_idp.png) diff --git a/docs/docs/guides/integrate/identity-providers/_general_config_description.mdx b/docs/docs/guides/integrate/identity-providers/_general_config_description.mdx new file mode 100644 index 0000000000..975695bc91 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_general_config_description.mdx @@ -0,0 +1,8 @@ +

Automatic creation: If this setting is enabled the user will be created automatically within ZITADEL, if it doesn't exist.

+

Automatic update: If this setting is enabled, the user will be updated within ZITADEL, if some user data is changed withing the provider. E.g if the lastname changes on the {props.provider_account}, the information will be changed on the ZITADEL account on the next login.

+

Account creation allowed: This setting determines if account creation within ZITADEL is allowed or not.

+

Account linking allowed: This setting determines if account linking is allowed. When logging in with a {props.provider_account}, a linkable ZITADEL account has to exist already.

+ +:::info +Either account creation or account linking have to be enabled. Otherwise, the provider can't be used. +::: \ No newline at end of file diff --git a/docs/docs/guides/integrate/identity-providers/_how_ldap_idp_works.mdx b/docs/docs/guides/integrate/identity-providers/_how_ldap_idp_works.mdx new file mode 100644 index 0000000000..dcba962dcd --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_how_ldap_idp_works.mdx @@ -0,0 +1,8 @@ +When you use an LDAP provider in ZITADEL, this is the login process: + +1. ZITADEL tries to connect to the LDAP server with or without TLS depending on the configuration +2. If the connection fails, the next server in the list will be used to try again. +3. ZITADEL tries a bind with the BindDN and BindPassword to check if it's possible to proceed +4. ZITADEL does a SearchQuery to find the UserDN with the provided configuration of base, filters and objectClasses +5. ZITADEL tries a bind with the provided loginname and password +6. LDAP attributes get mapped to ZITADEL attributes as provided by the configuration diff --git a/docs/docs/guides/integrate/identity-providers/_idps_overview.mdx b/docs/docs/guides/integrate/identity-providers/_idps_overview.mdx new file mode 100644 index 0000000000..cee2718c13 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_idps_overview.mdx @@ -0,0 +1,8 @@ +Go to the settings page of your instance or organization and choose "Identity Providers". + +In the table you can see all the providers you have configured. +Also, you see all provider templates that are available. + +![Identity Provider Overview](/img/guides/zitadel_identity_provider_overview.png) + +

Select the {props.templates} Provider template.

\ No newline at end of file diff --git a/docs/docs/guides/integrate/identity-providers/_intro.mdx b/docs/docs/guides/integrate/identity-providers/_intro.mdx new file mode 100644 index 0000000000..01e386ca1d --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_intro.mdx @@ -0,0 +1,9 @@ +

This guides shows you how to connect {props.provider} as an identity provider in ZITADEL.

+ +:::info +

+In ZITADEL you can connect an Identity Provider (IdP) like {props.provider} to your instance and provide it as default to all organizations. +Also, you can register the IdP to a specific organization only. +If you allow so, your organizations members can do the same in self-service. +

+::: diff --git a/docs/docs/guides/integrate/identity-providers/_prefill_action.mdx b/docs/docs/guides/integrate/identity-providers/_prefill_action.mdx new file mode 100644 index 0000000000..a63a3fcb48 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_prefill_action.mdx @@ -0,0 +1,7 @@ +import CodeBlock from '@theme/CodeBlock'; + +

You can use a ZITADEL action if you want to prefill the fields {props.fields} with {props.provider} data.

+ +1. Go to the users target organizations settings page. +2. Add a new action with the body below. Make sure the action name equals the scripts function name. Also change the id in the script to match your provider configurations id. +3. Add the action to the flow "External Authentication" and trigger it on "Post Authentication" diff --git a/docs/docs/guides/integrate/identity-providers/_test_setup.mdx b/docs/docs/guides/integrate/identity-providers/_test_setup.mdx new file mode 100644 index 0000000000..10f742b341 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_test_setup.mdx @@ -0,0 +1,11 @@ +

+To test the setup, use incognito mode and browse to your login page. +You see a new button which redirects you to {props.loginscreen} screen. +

+ +By default, ZITADEL shows what you define in the instance settings. +If you overwrite the instance settings for an organization, you need to send the organization scope in your auth request. + +The organization scope looks like this: ```urn:zitadel:iam:org:id:{id}```. +You can [read more about the reserved scopes](/apis/openidoauth/scopes#reserved-scopes) +or [use the ZITADEL OIDC Playground](/apis/openidoauth/authrequest) to see what happens with the login when you send different scopes. diff --git a/docs/docs/guides/integrate/identity-providers/_unlinked_oauth.mdx b/docs/docs/guides/integrate/identity-providers/_unlinked_oauth.mdx new file mode 100644 index 0000000000..56b506829a --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/_unlinked_oauth.mdx @@ -0,0 +1,5 @@ +

+New unlinked users are presented with the screen below. + {props.provider} is an OAuth provider and does not provide a standardized way to get the user data. +This means that ZITADEL has no way to prefill the first and lastname fields. +

\ No newline at end of file diff --git a/docs/docs/guides/integrate/identity-providers/azure-ad.mdx b/docs/docs/guides/integrate/identity-providers/azure-ad.mdx new file mode 100644 index 0000000000..a681d58cf6 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/azure-ad.mdx @@ -0,0 +1,111 @@ +--- +title: Configure Azure AD as Identity Provider +sidebar_label: Azure AD +--- + +import GeneralConfigDescription from './_general_config_description.mdx'; +import Intro from './_intro.mdx'; +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import TestSetup from './_test_setup.mdx'; +import Activate from './_activate.mdx'; + + + +## Azure AD Configuration + +You need to have access to an AzureAD Tenant. If you do not yet have one follow [this guide from Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant) to create one for free. + +### Register a new client + +1. Browse to the [App registration menus create dialog](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/CreateApplicationBlade/quickStartType~/null/isMSAApp~/false) to create a new app. +2. Give the application a name and choose who should be able to login (Single-Tenant, Multi-Tenant, Personal Accounts, etc.) This setting will also have an impact on how to configure the provider later on in ZITADEL. +3. Choose "Web" in the redirect uri field and add the URL: + - {your-domain}/ui/login/login/externalidp/callback + - Example redirect url for the domain `https://acme-gzoe4x.zitadel.cloud` would look like this: `https://acme-gzoe4x.zitadel.cloud/ui/login/login/externalidp/callback` +5. Save the Application (client) ID and the Directory (tenant) ID from the detail page + +![Azure App Registration](/img/guides/azure_app_registration.png) + +![Azure Client ID and Tenant ID](/img/guides/azure_client_tenant_id.png) + +### Add client secret + +Generate a new client secret to authenticate your user. + +1. Click on client credentials on the detail page of the application or use the menu "Certificates & secrets" +2. Click on "+ New client secret" and enter a description and an expiry date, add the secret afterwards +3. Copy the value of the secret. You will not be able to see the value again after some time + +![Azure Client Secret](/img/guides/azure_client_secret.png) + +### Token configuration + +To allow ZITADEL to get the information from the authenticating user you have to configure what kind of optional claims should be returned in the token. + +1. Click on Token configuration in the side menu +2. Click on "+ Add optional claim" +3. Add email, family_name, given_name and preferred_username to the id token + +![Azure Token configuration](/img/guides/azure_token_configuration.png) + +### API permissions + +To be able to get all the information that ZITADEL needs, you have to configure the correct permissions. + +1. Go to "API permissions" in the side menu +2. Make sure the permissions include "Microsoft Graph": email, profile and User.Read +3. The "Other permissions granted" should include "Microsoft Graph: openid" + +![Azure API permissions](/img/guides/azure_api_permissions.png) + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new Azure AD Provider + +The Microsoft template has everything you need preconfigured. +You only have to add the client ID and secret, you have created in the step before. + +You can configure the following settings if you like, a useful default will be filled if you don't change anything: + +**Scopes**: The scopes define which scopes will be sent to the provider, `openid`, `profile`, and `email` are prefilled. +This information will be taken to create/update the user within ZITADEL. Make sure to also add `User.Read`. ZITADEL ensures that at least `openid` and `User.Read` scopes are always sent. + +**Email Verified**: Azure AD doesn't send the email verified claim in the users token, if you don't enable this setting. +The user is then created with an unverified email, which results in an email verification message. +If you want to avoid that, make sure to enable "Email verified". +In that case, the user is created with a verified email address. + +**Tenant Type**: Configure the tenant type according to what you have chosen in the settings of your Azure AD application previously. +- Common: Choose common if you want all Microsoft accounts being able to login. +In this case, configure "Accounts in any organizational directory and personal Microsoft accounts" in your Azure AD App. +- Organizations: Choose organization if you have Azure AD Tenants and no personal accounts. (You have configured either "Accounts in this organization" or "Accounts in any organizational directory" on your Azure APP) +- Consumers: Choose this if you want to allow public accounts. (In your Azure AD App you have configured "Personal Microsoft accounts only") + +**Tenant ID**: If you have selected either the *Organizations* or *Customers* as the *Tenant Type*, you have to enter the *Directory (Tenant) ID*, copied previously in the Azure App configuration, here. + + + +![Azure Provider](/img/guides/zitadel_azure_provider.png) + +### Activate IdP + + + +![Activate Azure AD](/img/guides/zitadel_activate_azure.png) + +## Test the setup + + + +![Azure AD Button](/img/guides/zitadel_login_azure.png) + +![Azure AD Login](/img/guides/microsoft_login.png) diff --git a/docs/docs/guides/integrate/identity-providers/azuread-oidc.md b/docs/docs/guides/integrate/identity-providers/azuread-oidc.md index 4e155663ec..9b7b1c899a 100644 --- a/docs/docs/guides/integrate/identity-providers/azuread-oidc.md +++ b/docs/docs/guides/integrate/identity-providers/azuread-oidc.md @@ -1,8 +1,14 @@ --- title: Configure AzureAD as Identity Provider -sidebar_label: AzureAD +sidebar_label: AzureAD OIDC (Deprecated) --- +:::caution deprecated + +This configuration is based on the generic OIDC configuration. You can use the [Azure AD Template](./azure-ad) instead. + +::: + ## AzureAD Tenant as Identity Provider for ZITADEL This guides shows you how to connect an AzureAD Tenant to ZITADEL. @@ -35,7 +41,6 @@ You can leave the second field empty since we will change this in the next step. For this to work you need to whitelist the redirect URIs from your ZITADEL Instance. In this example our test instance has the domain `test-qcon0h.zitadel.cloud`. In this case we need to whitelist these two entries: -- `https://test-qcon0h.zitadel.cloud/ui/login/register/externalidp/callback` - `https://test-qcon0h.zitadel.cloud/ui/login/login/externalidp/callback` :::info @@ -67,6 +72,7 @@ Use the values displayed on the AzureAD Application page in your ZITADEL IdP Set - You need to extract the `issuer` of your AzureAD Tenant from the OpenID configuration (`OpenID Connect metadata document`) in the `Endpoints submenu`. It should be your tenant's domain appended with `/v2.0` - The `Client ID` of ZITADEL corresponds to the `Application (client) ID` in the Overview page - The `Client Secret` was generated during the `Create Client Secret` step +- Add `https://graph.microsoft.com/User.Read` to the scopes list to let personal Azure accounts register themselves ![Azure Application](/img/guides/azure_app.png) diff --git a/docs/docs/guides/integrate/identity-providers/github.mdx b/docs/docs/guides/integrate/identity-providers/github.mdx new file mode 100644 index 0000000000..5ab11dd554 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/github.mdx @@ -0,0 +1,94 @@ +--- +title: Configure GitHub as Identity Provider +sidebar_label: GitHub +--- + +import GeneralConfigDescription from './_general_config_description.mdx'; +import Intro from './_intro.mdx'; +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import Activate from './_activate.mdx'; +import TestSetup from './_test_setup.mdx'; +import UnlinkedOAuth from './_unlinked_oauth.mdx'; +import PrefillAction from './_prefill_action.mdx'; + + + +## GitHub Configuration + +### Register a new application + +For **GitHub** browse to the [Register a new OAuth application](https://github.com/settings/applications/new). You can find this link withing [Settings](https://github.com/settings/profile) - [Developer Settings](https://github.com/settings/apps) - - [OAuth Apps](https://github.com/settings/developers). + +For **GitHub Enterprise** go to your GitHub Enterprise home page and then to Settings - Developer Settings - OAuth Apps - Register a new application/New OAuth App + +Fill in the application name and homepage URL. + +You have to add the authorization callback URL, where GitHub should redirect, after the user has authenticated himself. +In this example our test instance has the domain `https://acme-gzoe4x.zitadel.cloud`. +This results in the following authorization callback URL: + `https://acme-gzoe4x.zitadel.cloud/ui/login/login/externalidp/callback` + +:::info +To adapt this for you setup just replace the domain +::: + +![Register an OAuth application](/img/guides/github_oauth_app_registration.png) + +### Client ID and Secret + +After clicking "Register application", you see the detail page of the application you have just created. +Copy the client ID directly from the detail page. +Generate a new secret by clicking "Generate new client secret". +Make sure to save the secret, as you will not be able to show it again. + +![Client ID and Secret](/img/guides/github_oauth_client_id_secret.png) + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new GitHub Provider + +The GitHub provider templates have everything you need preconfigured. You only have to add the client ID and secret, you have created in the step before. + +You can configure the following settings if you like, a useful default will be filled if you don't change anything: + +**Scopes**: The scopes define which scopes will be sent to the provider, `openid`, `profile`, and `email` are prefilled. +This information is used to create and/or update the user within ZITADEL. ZITADEL ensures that at least the `openid`-scope is always sent. + + + +![GitHub Provider](/img/guides/zitadel_github_create_provider.png) + +### Activate IdP + + + +![Activate the GitHub](/img/guides/zitadel_activate_github.png) + +## Test the setup + + + +![GitHub Button](/img/guides/zitadel_login_github.png) + +![GitHub Login](/img/guides/github_login.png) + + + +![GitHub Login](/img/guides/zitadel_login_external_not_found_registration.png) + +## Optional: Add ZITADEL action to autofill userdata + + + +```js reference +https://github.com/zitadel/actions/blob/main/examples/github_identity_provider.js +``` diff --git a/docs/docs/guides/integrate/identity-providers/gitlab.mdx b/docs/docs/guides/integrate/identity-providers/gitlab.mdx new file mode 100644 index 0000000000..fe3a89e97a --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/gitlab.mdx @@ -0,0 +1,95 @@ +--- +title: Configure GitLab as Identity Provider +sidebar_label: GitLab +--- + +import GeneralConfigDescription from './_general_config_description.mdx'; +import Intro from './_intro.mdx'; +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import Activate from './_activate.mdx'; +import TestSetup from './_test_setup.mdx'; +import UnlinkedOAuth from './_unlinked_oauth.mdx'; +import PrefillAction from './_prefill_action.mdx'; + + + +## GitLab Configuration + +### Register a new application + +1. Login to [gitlab.com](https://gitlab.com) +2. Select [Edit Profile](https://gitlab.com/-/profile) +3. Click on [Applications](https://gitlab.com/-/profile/applications) in the side navigation + +For **GitLab Self-Hosted** go to your GitLab self-hosted instance and follow the same steps as for GitLab. + +Fill in the application name. + +You have to add the redirect URI, where GitLab should redirect, after the user has authenticated himself. +In this example our test instance has the domain `https://acme-gzoe4x.zitadel.cloud`. +This results in the following redirect URI: + `https://acme-gzoe4x.zitadel.cloud/ui/login/login/externalidp/callback` + +:::info +To adapt this for you setup just replace the domain +::: + +![Register an OAuth application](/img/guides/gitlab_app_registration.png) + +### Client ID and Secret + +After clicking "Save application", you will see the detail page of the application you have just created. +To be able to connect GitLab to ZITADEL you will need a client ID and a client secret. +Save the ID and the Secret, you will not be able to copy the secret again, if you lose it you have to generate a new one. + +![Client ID and Secret](/img/guides/gitlab_app_id_secret.png) + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new GitLab Provider + +The GitLab provider templates have everything you need preconfigured. +Add the client ID and secret you have created in the Gitlab Application. + +You can configure the following settings if you like, a useful default will be filled if you don't change anything: + +**Scopes**: The scopes define which scopes will be sent to the provider, `openid`, `profile`, and `email` are prefilled. This informations will be taken to create/update the user within ZITADEL. ZITADEL ensures that at least the `openid`-scope is always sent. + + + +![GitLab Provider](/img/guides/zitadel_gitlab_create_provider.png) + +### Activate IdP + + + +![Activate the GitLab](/img/guides/zitadel_activate_gitlab.png) + +## Test the setup + + + +![GitLab Button](/img/guides/zitadel_login_gitlab.png) + +![GitLab Login](/img/guides/gitlab_login.png) + + + +![GitLab Login](/img/guides/zitadel_login_external_not_found_registration.png) + +## Optional: Add ZITADEL action to autofill userdata + + + +```js reference +https://github.com/zitadel/actions/blob/main/examples/gitlab_identity_provider.js +``` diff --git a/docs/docs/guides/integrate/identity-providers/google-oidc.mdx b/docs/docs/guides/integrate/identity-providers/google-oidc.mdx index 640eced4a2..d4ac3ccde4 100644 --- a/docs/docs/guides/integrate/identity-providers/google-oidc.mdx +++ b/docs/docs/guides/integrate/identity-providers/google-oidc.mdx @@ -1,8 +1,14 @@ --- title: Configure Google as Identity Provider -sidebar_label: Google +sidebar_label: Google OIDC (Deprecated) --- +:::caution deprecated + +This configuration is based on the generic OIDC configuration. You can use the [Google Template](./google) instead. + +::: + ## Register an external identity provider In this step we will add a new Google identity provider to federate identities with ZITADEL. @@ -11,7 +17,6 @@ In this step we will add a new Google identity provider to federate identities w 1. Register an OIDC Client in your preferred provider 2. Make sure you add the ZITADEL callback redirect uris - - {your-domain}/ui/login/register/externalidp/callback - {your-domain}/ui/login/login/externalidp/callback > **Information:** Make sure the provider is OIDC 1.0 compliant with a proper Discovery Endpoint diff --git a/docs/docs/guides/integrate/identity-providers/google.mdx b/docs/docs/guides/integrate/identity-providers/google.mdx new file mode 100644 index 0000000000..e2ca360018 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/google.mdx @@ -0,0 +1,68 @@ +--- +title: Configure Google as Identity Provider +sidebar_label: Google +--- + +import GeneralConfigDescription from './_general_config_description.mdx'; +import Intro from './_intro.mdx'; +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import Activate from './_activate.mdx'; +import TestSetup from './_test_setup.mdx'; + + + +## Google Configuration + +### Register a new client + +1. Go to the Google Cloud Platform and choose your project: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) +2. Click on "+ CREATE CREDENTIALS" and choose "OAuth client ID" +3. Choose "Web application" as application type and give a name +4. Add the redirect uri + - {your-domain}/ui/login/login/externalidp/callback + - Example redirect url for the domain `https://acme-gzoe4x.zitadel.cloud` would look like this: `https://acme-gzoe4x.zitadel.cloud/ui/login/login/externalidp/callback` +5. Save the Client ID and Client secret + +![Google OAuth App Registration](/img/guides/google_oauth_app_registration.png) + +![Google Client ID and Secret](/img/guides/google_client_id_secret.png) + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new Google Provider + +The Google provider template has everything you need preconfigured. +Add the client ID and secret created before on your Google App. + +You can configure the following settings if you like, a useful default will be filled if you don't change anything: + +**Scopes**: The scopes define which scopes will be sent to the provider, `openid`, `profile`, and `email` are prefilled. This information will be taken to create/update the user within ZITADEL. ZITADEL ensures that at least the `openid`-scope is always sent. + + + + +![Google Provider](/img/guides/zitadel_google_create_provider.png) + +### Activate IdP + + + +![Activate the Google Provider](/img/guides/zitadel_activate_google.png) + +## Test the setup + + + + +![Google Button](/img/guides/zitadel_login_google.png) + +![Google Login](/img/guides/google_login.png) diff --git a/docs/docs/guides/integrate/identity-providers/ldap.mdx b/docs/docs/guides/integrate/identity-providers/ldap.mdx new file mode 100644 index 0000000000..fb573cfcff --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/ldap.mdx @@ -0,0 +1,75 @@ +--- +title: Configure LDAP as Identity Provider +sidebar_label: LDAP +--- + +import Intro from './_intro.mdx'; +import HowLDAPIDPWorks from './_how_ldap_idp_works.mdx' +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import GeneralConfigDescription from './_general_config_description.mdx'; +import Activate from './_activate.mdx'; +import TestSetup from './_test_setup.mdx'; + + + +## How it works + + + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new LDAP Provider + +Fill in the following fields in the LDAP template. + +:::caution +We highly recommend to use LDAPS or StartTLS enable servers. +Otherwise, your users passwords are sent in clear text through the wire. +::: + +**Name**: Name of the identity provider + +**Servers**: List of servers in a format of "schema://host:port", as example "ldap://localhost:389". If possible, replace "ldap" with "ldaps" with the corresponding port. + +**BaseDN**: BaseDN which will be used with each request to the LDAP server + +**BindDn** and **BindPassword**: BindDN and password used to connect to the LDAP for the SearchQuery, should be an admin or user with enough permissions to search for the users to login. + +**Userbase**: Base used for the user, normally "dn" but can also be configured. + +**User filters**: Attributes of the user which are "or"-joined in the query for the user, used value is the input of the loginname, for example if you try to login with user@example.com and filters "uid" and "email" the resulting SearchQuery contains "(|(uid=user@example.com)(email=user@example.com))" + +**User Object Classes**: ObjectClasses which are "and"-joined in the SearchQuery and the user has to have in the LDAP. + +**LDAP Attributes**: Mapping of LDAP attributes to ZITADEL attributes, the ID attributes is required, the rest depends on usage of the identity provider + +**StartTLS**: If this setting is enabled after the initial connection ZITADEL tries to build a TLS connection. If your LDAP server doesn't support LDAPS, at least it should support StartTLS. + +**Timeout**: If this setting is set all connection run with a set timeout, if it is 0s the default timeout of 60s is used. + + + +![LDAP Provider](/img/guides/zitadel_ldap_create_provider.png) + +### Activate IdP + + + +![Activate the LDAP Provider](/img/guides/zitadel_activate_ldap.png) + +## Test the setup + + + +![LDAP Button](/img/guides/zitadel_login_ldap.png) + +![LDAP Login](/img/guides/zitadel_login_ldap_input.png) diff --git a/docs/docs/guides/integrate/identity-providers/openldap.mdx b/docs/docs/guides/integrate/identity-providers/openldap.mdx new file mode 100644 index 0000000000..3b3c045130 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/openldap.mdx @@ -0,0 +1,204 @@ +--- +title: Configure local OpenLDAP as Identity Provider +sidebar_label: Local OpenLDAP +--- + +import Intro from './_intro.mdx'; +import HowLDAPIDPWorks from './_how_ldap_idp_works.mdx' +import CustomLoginPolicy from './_custom_login_policy.mdx'; +import IDPsOverview from './_idps_overview.mdx'; +import GeneralConfigDescription from './_general_config_description.mdx'; +import Activate from './_activate.mdx'; +import TestSetup from './_test_setup.mdx'; + +:::caution +This guide shows you how you can configure an LDAP server locally. +ZITADEL needs access to the LDAP server, so this won't work in ZITADEL Cloud. +You have to spin up your own local ZITADEL. +The easiest way to do so is [by following the Docker Compose installation guide](/docs/self-hosting/deploy/compose). +::: + +:::caution +Beware that this example configuration neighter supports LDAPS nor StartTLS. +We highly recommend to enable LDAPS or StartTLS in your production setup. +Otherwise, your users passwords are sent in clear text through the wire. +::: + + + +## How it works + + + +## OpenLDAP Configuration + +### Basic configuration + +To run LDAP locally to test it with ZITADEL please refer to [OpenLDAP](https://www.openldap.org/) with [slapd](https://www.openldap.org/software/man.cgi?query=slapd). + +For a quickstart guide please refer to their [official documentation](https://www.openldap.org/doc/admin22/quickstart.html). + +A basic configuration would be like this +``` +# +# See slapd.conf(5) for details on configuration options. +# This file should NOT be world readable. +# +include /usr/local/etc/openldap/schema/core.schema +include /usr/local/etc/openldap/schema/cosine.schema +include /usr/local/etc/openldap/schema/inetorgperson.schema +include /usr/local/etc/openldap/schema/nis.schema +include /usr/local/etc/openldap/schema/misc.schema + +# Define global ACLs to disable default read access. + +# Do not enable referrals until AFTER you have a working directory +# service AND an understanding of referrals. +#referral ldap://root.openldap.org + +pidfile /usr/local/var/run/slapd.pid +argsfile /usr/local/var/run/slapd.args + +# Load dynamic backend modules: +modulepath /usr/local/Cellar/openldap/2.4.53/libexec/openldap +moduleload back_mdb.la +moduleload back_ldap.la + +# Sample security restrictions +# Require integrity protection (prevent hijacking) +# Require 112-bit (3DES or better) encryption for updates +# Require 63-bit encryption for simple bind +# security ssf=1 update_ssf=112 simple_bind=64 + +# Sample access control policy: +# Root DSE: allow anyone to read it +# Subschema (sub)entry DSE: allow anyone to read it +# Other DSEs: +# Allow self write access +# Allow authenticated users read access +# Allow anonymous users to authenticate +# Directives needed to implement policy: +# access to dn.base="" by * read +# access to dn.base="cn=Subschema" by * read +# access to * +# by self write +# by users read +# by anonymous auth +# +# if no access controls are present, the default policy +# allows anyone and everyone to read anything but restricts +# updates to rootdn. (e.g., "access to * by * read") +# +# rootdn can always read and write EVERYTHING! + +####################################################################### +# MDB database definitions +####################################################################### + +database ldif +#maxsize 1073741824 +suffix "dc=example,dc=com" +rootdn "cn=admin,dc=example,dc=com" +# Cleartext passwords, especially for the rootdn, should +# be avoid. See slappasswd(8) and slapd.conf(5) for details. +# Use of strong authentication encouraged. +rootpw {SSHA}6FTOTIITpkP9IAf22VjHqu4JisyBmW5A +# The database directory MUST exist prior to running slapd AND +# should only be accessible by the slapd and slap tools. +# Mode 700 recommended. +directory /usr/local/var/openldap-data +# Indices to maintain +#index objectClass eq +``` + +Which is the default configuration with an admin user under the DN `cn=admin,dc=example,dc=com` and password `Password1!`, BaseDN `"dc=example,dc=com` and database set to `ldif`. +In addition, there are some schemas included which can be used to create the users. + +### Example users + +For a basic structure and an example user you can use this structure in a `.ldif` file: +``` +dn: dc=example,dc=com +dc: example +description: Company +objectClass: dcObject +objectClass: organization +o: Example, Inc. + +dn: ou=people, dc=example,dc=com +ou: people +description: All people in organisation +objectclass: organizationalunit + +dn: cn=test,ou=people,dc=example,dc=com +objectclass: inetOrgPerson +cn: testuser +sn: test +uid: test +userpassword: {SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= +mail: test@example.com +description: Person +ou: Human Resources +``` + +Which in essence creates a user with DN `cn=test,ou=people,dc=example,dc=com`, uid `test` and password `test`. + +The user can be applied after OpenLDAP is running with +```bash +ldapadd -x -h localhost -D "cn=admin,dc=example,dc=com" -f example.ldif -w 'Password1!' +``` + +## ZITADEL Configuration + +### Add custom login policy + + + +### Go to the IdP Providers Overview + + + +### Create a new LDAP Provider + +Fill in the template fields with the exact values listed below. The fields are described in the [LDAP guide](./ldap#create-a-new-ldap-provider). + +**Name**: OpenLDAP + +**Servers**: "ldap://localhost:389" + +**BaseDN**: "dc=example,dc=com" + +**BindDn**: "cn=admin,dc=example,dc=com" + +**BindPassword**: "Password1!" + +**Userbase**: "dn" + +**User filters**: "uid" + +**User Object Classes**: "inetOrgPerson" + +**LDAP Attributes**: id attributes = "uid" + +**StartTLS**: For this example should be left untouched, if this setting is enabled after the initial connection ZITADEL tries to build a TLS connection. + +**Timeout**: Can be left empty, if this setting is set all connection run with a set timeout, if it is 0s the default timeout of 60s is used. + + + + +![LDAP Provider](/img/guides/zitadel_ldap_create_provider.png) + +### Activate IdP + + + +![Activate the LDAP Provider](/img/guides/zitadel_activate_ldap.png) + +## Test the setup + + + +![LDAP Button](/img/guides/zitadel_login_ldap.png) + +![LDAP Login](/img/guides/zitadel_login_ldap_input.png) diff --git a/docs/docs/guides/manage/customize/texts.md b/docs/docs/guides/manage/customize/texts.md index 4f1d1de8c5..1609e2a93e 100644 --- a/docs/docs/guides/manage/customize/texts.md +++ b/docs/docs/guides/manage/customize/texts.md @@ -35,6 +35,7 @@ ZITADEL is available in the following languages - German (de) - English (en) +- Spanish (es) - French (fr) - Italian (it) - 日本語 (ja) diff --git a/docs/docs/guides/migrate/introduction.md b/docs/docs/guides/migrate/introduction.md new file mode 100644 index 0000000000..887a374a23 --- /dev/null +++ b/docs/docs/guides/migrate/introduction.md @@ -0,0 +1,79 @@ +--- +title: Migrate to ZITADEL +sidebar_label: Introduction +--- + +This section of guides shows you how to migrate from your current auth system to ZITADEL. +The individual guides in this section should give you an overview of things to consider before you start the migration. + +When moving from a previous auth solution to ZITADEL, it is important to note that some decisions and features are unique to ZITADEL. +Without duplicating too much content here are some important features and patterns to consider in terms of solution architecture. +You can read more about the basic structure and important concepts of ZITADEL in our [concepts section](https://zitadel.com/docs/concepts/introduction). + +## Multi-Tenancy Architecture + +Multi-tenancy in ZITADEL can be achieved through either [Instances](/docs/concepts/structure/instance) or [Organizations](/docs/concepts/structure/organizations). +Where instances represent isolated ZITADEL instances, Organizations provide a more permeable approach to multi-tenancy. + +In most cases, when you want to achieve multi-tenancy, you use Organizations. Each organization can have their own set of Settings (eg, Security Policies, IDPs, Branding), Managers, and Users. +Please also consult our guide on [Solution Scenarios](/docs/guides/solution-scenarios/introduction +) for B2C and B2B for more details. + +## Delegated Access Management + +Some solutions, that offer multi-tenancy, require you to copy applications and settings to each tenant and manage changes individually. +ZITADEL works differently by using [Granted Projects](/docs/concepts/structure/granted_projects). + +Projects can be granted to [Organization](/docs/concepts/structure/projects#granted-organizations) or even to individual users. +You can think of it as a logical link to a Project, which can be used by the receiving Organization or User as if it was their own project, except privileges to modify the Project itself. + +Delegated access management is a great way of keeping the management overhead low and enabling [self-service](/docs/concepts/features/selfservice#managers-in-delegation) for Organizations to manage their own Settings and Authorizations. + +## Actions + +ZITADEL [Actions](/docs/apis/actions/introduction) is the key feature to customize and create workflows and change the default behavior of the platform. + +You define custom code that should be run on a specific Trigger. +A trigger could be the creation of a new user, getting profile information about a user, or a login attempt. + +With the [HTTP module](/docs/apis/actions/modules) you can even make calls to third party systems for example to receive additional user information from a backend system, or triggering a workflow in other systems (Webhook). + +You can also create custom claims or manipulate tokens and information on the userinfo endpoint by using the [Complement Token Flow](/docs/apis/actions/complement-token). +This might be required, if an application expects roles/permissions in a certain format or additional attributes (eg, a backend user-id) as claims. + +## Metadata + +You can store arbitrary key-value pairs of data on objects such as Users or Organizations. +Metadata could link a user to a specific backend user-id or represent an "organizational unit" for your business logic. +Metadata can be access directly with the correct [scopes](/docs/apis/openidoauth/scopes#reserved-scopes) or transformed to custom claims (see above). + +## Migrating users + +Migrating users with minimal impact on users can be a challenging task. +We provide some more information on migrating users and secrets in [this guide](./users.md). + +## Technical considerations + +### Batch migration + +**Batch migration** is the easiest way, if you can afford some minimal downtime to move all users and applications over to ZITADEL. +See the [User guide](./users.md) for batch migration of users. + +### Just-in-time migration + +In case all your applications depend on ZITADEL after the migration date, and ZITADEL is able to retrieve the required user information, including secrets, from the legacy system, then the recommended way is to let **ZITADEL orchestrate the user migration just-in-time**: + +- Create a pre-authentication [Action](/docs/apis/actions/introduction) to request user data from the legacy system and create a new user in ZITADEL. +- Optionally, create a post-authentication Action to flag successfully migrated users in your legacy system + +For all other cases, we recommend that the **legacy system orchestrates the migration** of users to ZITADEL for more flexibility: + +- Update your legacy system to create a user in ZITADEL on their next login, if not already flagged as migrated, by using our APIs (you can set the password and a verified email) +- Redirect migrated users with a login hint in the [auth request](/docs/apis/openidoauth/authrequest.mdx) to ZITADEL to pre-select the user + +In this case the migration can also be done as an import job or also allowing to create user session in both the legacy auth solution and ZITADEL in parallel with identity brokering: + +- Setup ZITADEL to use your legacy system as external identity provider (note: you can also use JWT-IDP, if you only have a token). +- Configure your app to use ZITADEL, which will redirect users automatically to the external identity provider to login. +- A session will be created both on the legacy system and ZITADEL +- If a user does not exist already in ZITADEL you can auto-register new users and use an Action to pull additional information (eg, Secrets) from your legacy system. Note: ZITADEL links external identity information to users, meaning you can have users use both a password and external identity providers to login with the same user. diff --git a/docs/docs/guides/migrate/sources/auth0.md b/docs/docs/guides/migrate/sources/auth0.md new file mode 100644 index 0000000000..dca95a7c3a --- /dev/null +++ b/docs/docs/guides/migrate/sources/auth0.md @@ -0,0 +1,41 @@ +--- +title: Migrate from Auth0 +sidebar_label: From Auth0 +--- + +Migrating users from Auth0 to ZITADEL requires the following steps: + +- Request and download hashed passwords +- Export all user data +- Import users and password hashes to ZITADEL + +## Export hashed passwords + +Auth0 does not export hashed passwords as part of the bulk user export. +You must create a support ticket to download password hashes and password-related information. +Please also refer to the Auth0 guide on how to [Export Data](https://auth0.com/docs/troubleshoot/customer-support/manage-subscriptions/export-data#user-passwords). + +:::info +You can also import users into ZITADEL with an verified email but without the passwords. +Users will be prompted to create a new password after they login for the first time after migration. +::: + +1. Go to https://support.auth0.com/tickets and click on **Open Ticket** +2. Issue Type: **I have a question regarding my Auth0 account** +3. What can we help you with?: **I would like to obtain an export of my tenant password hashes** +4. Fill out the form: Request password hashes as bcrypt +5. **Submit ticket** + +You will receive a JSON file including the password hashes. +See this [community post](https://community.auth0.com/t/password-hashes-export-data-format/58730) for more information about the contents and format. + +## Export all user data + +Create a [bulk user export](https://auth0.com/docs/manage-users/user-migration/bulk-user-exports) from the Auth0 Management API. +You will receive a newline-delimited JSON with the requested user data. + +## Import users and password hashes to ZITADEL + +You will need to merge the received password hashes with the user bulk export. + +After you successfully merged the datasets, you can follow the instructions described in the [Migrate Users](../users) guide to import users to ZITADEL. diff --git a/docs/docs/guides/migrate/sources/zitadel.md b/docs/docs/guides/migrate/sources/zitadel.md new file mode 100644 index 0000000000..2d19eb3e32 --- /dev/null +++ b/docs/docs/guides/migrate/sources/zitadel.md @@ -0,0 +1,196 @@ +--- +title: Migrate from ZITADEL +sidebar_label: From ZITADEL +--- + +This guide explains how to migrate from ZITADEL, this includes + +* ZITADEL Cloud to self-hosted +* ZITADEL self-hosted to ZITADEL Cloud +* ZITADEL v1 (deprecated) to ZITADEL v2.x + +## Considerations + +The following scripts don't include: + +* Global policies +* IAM members +* Global IDPs +* Global second/multi factors +* Machine keys +* Personal Access Tokens +* Application keys +* Passwordless authentication + +Which results in that if you want to import, and you have no defined organization-specific custom policies, the experience for your users will not be exactly like in your old instance. + +:::note +Note that the resources will be migrated without the event stream. This means that you will not have the audit trail for the imported objects. +::: + +## Authorization + +You need a PAT from a service user with IAM Owner permissions in both the source and target system. + +### Source system + +1. Go to your default organization +2. Create a service user "import_user" with Access Token Type "Bearer" +3. Create a [personal access token](/docs/guides/integrate/pat) +4. Go to the global instance settings +5. Add the import_user as [manager](/docs/guides/manage/console/managers) with the role "IAM Owner" + +Save the PAT to the environment variabel `PAT_EXPORT_TOKEN` and the source domain as `ZITADEL_EXPORT_DOMAIN` to run the following scripts. + +### Target system + +1. Go to your default organization +2. Create a service user "export_user" with Access Token Type "Bearer" +3. Create a [personal access token](/docs/guides/integrate/pat) +4. Go to the global instance settings +5. Add the export_user as [manager](/docs/guides/manage/console/managers) with the role "IAM Owner" + +Save the PAT to the environment variabel `PAT_IMPORT_TOKEN` and the source domain as `ZITADEL_IMPORT_DOMAIN` to run the following scripts. + +:::warning Clean-up +You should let the PAT expire as soon as possible. +Make sure to delete the created users after you are done with the migration. +::: + +## Use file + +### Export to file + +To export all necessary data you only have to use one request, as an example: + +```bash +curl --request POST \ + --url $ZITADEL_EXPORT_DOMAIN/admin/v1/export \ + --header "Authorization: Bearer $PAT_EXPORT_TOKEN" \ + --header 'Content-Type: application/json' \ + --data '{ + "org_ids": [ ], + "excluded_org_ids": [ ], + "with_passwords": true, + "with_otp": true, + "timeout": "30s", + "response_output": true +}' -o export.json +``` + +| Field | Type | Description | +| --- | --- | --- | +| org_ids | list of strings | provide a list of organizationIDs to select which organizations should be exported (eg, `[ "70669144072186707", "70671105999825752" ]`); leave empty to export all | +| excluded_org_ids | list of strings | to exclude several organization, if for example no organizations are selected | +| with_passwords | bool | to include the hashed_passwords of the users in the export | +| with_otp | bool | to include the OTP-code of the users in the export | +| timeout | duration string | timeout of the call to export the data | +| response_output | bool | to output the export as response to the call | + +### Import from file + +:::note +To import the exported data into you new instance, you have to have an already existing instance on a ZITADEL, with all desired configuration and global resources. +::: + +Then as an example you can use one request for the import: + +```bash +curl --request POST \ + --url $ZITADEL_IMPORT_DOMAIN/admin/v1/import \ + --header "Authorization: Bearer $PAT_IMPORT_TOKEN" \ + --header 'Content-Type: application/json' \ + --data '{ + "timeout": "10m", + "data_orgsv1": '"$(cat export.json)"' +}' +``` + +| Field | Type | Description | +| --- | --- | --- | +| timeout | duration string | timeout of the call to import the data | +| data_orgsv1 | string | data which was exported from ZITADEL V1 | + +## Use Google Cloud Storage + +### Export to GCS + +:::note +To use this requests you have to have an access token with enough permissions to export and import. +The used serviceaccount has to have at least the role "Storage Object Creator" to create objects on GCS +::: + +To export all necessary data you only have to use one request which results in a file in your GCS, as an example: + +```bash +curl --request POST \ + --url $ZITADEL_EXPORT_DOMAIN/admin/v1/export \ + --header "Authorization: Bearer $PAT_EXPORT_TOKEN" \ + --header 'Content-Type: application/json' \ + --data '{ + "org_ids": [ ], + "excluded_org_ids": [ ], + "with_passwords": true, + "with_otp": true, + "timeout": "30s", + "gcs_output": { + "path": "export.json", + "bucket": "caos-zitadel-exports", + "serviceaccount_json": "XXXX" + } +}' -o export.json +``` + +| Field | Type | Description | +| --- | --- | --- | +| org_ids | list of strings | provide a list of organizationIDs to select which organizations should be exported (eg, `[ "70669144072186707", "70671105999825752" ]`); leave empty to export all | +| excluded_org_ids | list of strings | to exclude several organization, if for example no organizations are selected | +| with_passwords | bool | to include the hashed_passwords of the users in the export | +| with_otp | bool | to include the OTP-code of the users in the export | +| timeout | duration string | timeout of the call to export the data | +| gcs_output | object(data_orgsv1_gcs) | to write a file into GCS as output to the call | + +data_orgsv1_gcs object: + +| Field | Type | Description | +| --- | --- | --- | +| path | string | path to the output file on GCS | +| bucket | string | used bucket for output on GCS | +| serviceaccount_json | string | base64-encoded serviceaccount.json used to output the file on GCS | + +### Import to GCS + +:::note +To import the exported data into you new instance, you have to have an already existing instance on a ZITADEL, with all desired configuration and global resources. +The used serviceaccount has to have at least the role "Storage Object Viewer" to read objects from GCS +::: + +Then as an example you can use one request for the import: + +```bash +curl --request POST \ + --url $ZITADEL_IMPORT_DOMAIN/admin/v1/import \ + --header "Authorization: Bearer $PAT_IMPORT_TOKEN" \ + --header 'Content-Type: application/json' \ + --data '{ + "timeout": "10m", + "data_orgsv1_gcs": { + "path": "export.json", + "bucket": "caos-zitadel-exports", + "serviceaccount_json": "XXXX" + } +}' +``` + +| Field | Type | Description | +| --- | --- | --- | +| timeout | duration string | timeout of the call to import the data | +| data_orgsv1_gcs | object(data_orgsv1_gcs) | to read the export from GCS directly | + +data_orgsv1_gcs object: + +| Field | Type | Description | +| --- | --- | --- | +| path | string | path to the exported file on GCS | +| bucket | string | used bucket to read from GCS | +| serviceaccount_json | string | base64-encoded serviceaccount.json used to read the file from GCS| \ No newline at end of file diff --git a/docs/docs/guides/migrate/users.md b/docs/docs/guides/migrate/users.md new file mode 100644 index 0000000000..c01bbfb380 --- /dev/null +++ b/docs/docs/guides/migrate/users.md @@ -0,0 +1,236 @@ +--- +title: Migrate Users +sidebar_label: Users +--- + +Migrating users from an existing system, while minimizing impact on said users, can be a challenging task. + +## Individual Users + +Creating individual users can be done with this endpoint: [ImportHumanUser](/docs/apis/mgmt/management-service-import-human-user). +Please also consult our [guide](/docs/guides/manage/user/reg-create-user) on how to create users. + +```json +{ + "userName": "test9@test9", + "profile": { + "firstName": "Road", + "lastName": "Runner", + "displayName": "Road Runner", + "preferredLanguage": "en" + }, + "email": { + "email": "test@test.com", + "isEmailVerified": false + }, + "hashedPassword": { + "value": "$2a$14$aPbwhMVJSVrRRW2NoM/5.esSJO6o/EIGzGxWiM5SAEZlGqCsr9DAK", + "algorithm": "bcrypt" + }, + "passwordChangeRequired": false, + "otpCode": "testotp", + "requestPasswordlessRegistration": false, + "idps": [ + { + "configId": "124425861423228496", + "externalUserId": "roadrunner@mailonline.com", + "displayName": "name" + } + ] +} +``` + +## Bulk import + +For bulk import use the [import endpoint](https://zitadel.com/docs/apis/admin/admin-service-import-data) on the admin API: + +```json +{ + "timeout": "10m", + "data_orgs": { + "orgs": [ + { + "orgId": "104133391254874632", + "org": { + "name": "ACME" + }, + "humanUsers": [ + { + "userId": "104133391271651848", + "user": { + "userName": "test9@test9", + "profile": { + "firstName": "Road", + "lastName": "Runner", + "displayName": "Road Runner", + "preferredLanguage": "de" + }, + "email": { + "email": "test@acme.tld", + "isEmailVerified": true + }, + "hashedPassword": { + "value": "$2a$14$aPbwhMVJSVrRRW2NoM/5.esSJO6o/EIGzGxWiM5SAEZlGqCsr9DAK", + "algorithm": "bcrypt" + } + } + }, + { + "userId": "120080115081209416", + "user": { + "userName": "testuser", + "profile": { + "firstName": "Test", + "lastName": "User", + "displayName": "Test User", + "preferredLanguage": "und" + }, + "email": { + "email": "fabienne@caos.ch", + "isEmailVerified": true + }, + "hashedPassword": { + "value": "$2a$14$785Fcdbpo9rn5L7E21nIAOJvGCPgWFrZhIAIfDonYXzWuZIKRAQkO", + "algorithm": "bcrypt" + } + } + }, + { + "userId": "145195347319252359", + "user": { + "userName": "wile@test9", + "profile": { + "firstName": "Wile E.", + "lastName": "Coyote", + "displayName": "Wile E. Coyote", + "preferredLanguage": "en" + }, + "email": { + "email": "wile.e@acme.tld" + } + } + } + ] + } + ] + } +} +``` + +:::info +We will improve the bulk import interface for users in the future. +You can show your interest or join the discussion on [this issue](https://github.com/zitadel/zitadel/issues/5524). +::: + +## Migrate secrets + +Besides user data you need to migrate secrets, such as password hashes, OTP seeds, and public keys for passkeys (FIDO2). +The snippets in the sections below are parts from the bulk import endpoint, to clarify how the different objects can be imported. + +### Passwords + +Passwords are stored only as hash. +You can transfer the hashes as long as ZITADEL [supports the same hash algorithm](/docs/concepts/architecture/secrets#hashed-secrets). +Password change on the next sign-in can be enforced. + +_snippet from [bulk-import](#bulk-import) example:_ +```json +{ + "userName": "test9@test9", + ..., + "hashedPassword": { + "value": "$2a$14$aPbwhMVJSVrRRW2NoM/5.esSJO6o/EIGzGxWiM5SAEZlGqCsr9DAK", + "algorithm": "bcrypt" + }, + "passwordChangeRequired": false, + ..., +} +``` + +In case the hashes can't be transferred directly, you always have the option to create a user in ZITADEL without password and prompt users to create a new password. + +If your legacy system receives the passwords in clear text (eg, login form) you could also directly create users via ZITADEL API. We will explain this pattern in more detail in this guide. + +:::info +In case the hash algorithm you are using is not supported by ZITADEL, please let us know after searching our discussions, issues, and chat for similar requests. +::: + +### One-time-passwords (OTP) + +You can pass the OTP secret when creating users: + +_snippet from [bulk-import](#bulk-import) example:_ +```json +{ + "userName": "test9@test9", + ..., + "otpCode": "testotp", + ..., +} +``` + +### Passkeys + +When creating new users, you can trigger a workflow that prompts the users to setup a passkey authenticator. + +_snippet from [bulk-import](#bulk-import) example:_ +```json +{ + "userName": "test9@test9", + ..., + "requestPasswordlessRegistration": false, + ..., +} +``` + +For passkeys to work on the new system you need to make sure that the new auth server has the same domain as the legacy auth server. + +:::info +Currently it is not possible to migrate passkeys directly from another system. +::: + +## Users linked to an external IDP + +A users `sub` is bound to the external [IDP's Client ID](https://zitadel.com/docs/guides/manage/console/instance-settings#identity-providers). +This means that the IDP Client ID configured in ZITADEL must be the same ID as in the legacy system. + +Users should be imported with their `externalUserId`. + +_snippet from [bulk-import](#bulk-import) example:_ +```json +{ + "userName": "test9@test9", + ..., + "idps": [ + { + "configId": "124425861423228496", + "externalUserId": "roadrunner@mailonline.com", + "displayName": "name" + } + ..., +} +``` + +You can use an Action with [post-creation flow](https://zitadel.com/docs/apis/actions/external-authentication#post-creation) to pull information such as roles from the old system and apply them to the user in ZITADEL. + +## Metadata + +You can store arbitrary key-value information on a user (or Organization) in ZITADEL. +Use metadata to store additional attributes of the users, such as organizational unit, backend-id, etc. + +:::info +Metadata must be added to users after the users were created. Currently metadata can't be added during user creation. +[API reference: User Metadata](https://zitadel.com/docs/category/apis/mgmt/user-metadata) +::: + +Request metadata from the userinfo endpoint by passing the required [reserved scope](/docs/apis/openidoauth/scopes#reserved-scopes) in your auth request. +With the [complement token flow](/docs/apis/actions/complement-token), you can also transform metadata (or roles) to custom claims. + +## Authorizations / Roles + +You can assign roles from owned or granted projects to a user. + +:::info +Authorizations must be added to users after the users were created. Currently metadata can't be added during user creation. +[API reference: User Authorization / Grants](https://zitadel.com/docs/category/apis/auth/user-authorizations-grants) +::: \ No newline at end of file diff --git a/docs/sidebars.js b/docs/sidebars.js index d8d45b3a60..b967f0183f 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -22,8 +22,8 @@ module.exports = { type: "category", label: "Backend", items: [ - "examples/secure-api/go", - "examples/secure-api/python-flask", + "examples/secure-api/go", + "examples/secure-api/python-flask", "examples/secure-api/dot-net" ], collapsed: true, @@ -107,15 +107,27 @@ module.exports = { }, { type: "category", - label: "Integrate", + label: "Migrate", collapsed: true, - link: { - type: 'generated-index', - title: 'Overview', - slug: 'guides/integrate', - }, items: [ - + "guides/migrate/introduction", + "guides/migrate/users", + { + type: "category", + label: "Sources", + collapsed: true, + items: [ + "guides/migrate/sources/zitadel", + "guides/migrate/sources/auth0", + ] + }, + ] + }, + { + type: "category", + label: "Integrate", + items: [ + { type: "category", label: "Authenticate Users", @@ -132,6 +144,12 @@ module.exports = { collapsed: true, items: [ "guides/integrate/identity-providers/introduction", + "guides/integrate/identity-providers/google", + "guides/integrate/identity-providers/azure-ad", + "guides/integrate/identity-providers/github", + "guides/integrate/identity-providers/gitlab", + "guides/integrate/identity-providers/ldap", + "guides/integrate/identity-providers/openldap", "guides/integrate/identity-providers/google-oidc", "guides/integrate/identity-providers/azuread-oidc", ], @@ -154,7 +172,6 @@ module.exports = { "guides/integrate/access-zitadel-apis", "guides/integrate/access-zitadel-system-api", "guides/integrate/event-api", - "guides/integrate/export-and-import", { type: "category", label: "Example Code", @@ -277,8 +294,8 @@ module.exports = { title: "Auth API", slug: "/apis/auth", description: - "The authentication API (aka Auth API) is used for all operations on the currently logged in user. The user id is taken from the sub claim in the token.", - + "The authentication API (aka Auth API) is used for all operations on the currently logged in user. The user id is taken from the sub claim in the token.", + }, items: require("./docs/apis/auth/sidebar.js"), }, @@ -290,7 +307,7 @@ module.exports = { title: "Management API", slug: "/apis/mgmt", description: - "The management API is as the name states the interface where systems can mutate IAM objects like, organizations, projects, clients, users and so on if they have the necessary access rights. To identify the current organization you can send a header x-zitadel-orgid or if no header is set, the organization of the authenticated user is set.", + "The management API is as the name states the interface where systems can mutate IAM objects like, organizations, projects, clients, users and so on if they have the necessary access rights. To identify the current organization you can send a header x-zitadel-orgid or if no header is set, the organization of the authenticated user is set.", }, items: require("./docs/apis/mgmt/sidebar.js"), }, @@ -302,7 +319,7 @@ module.exports = { title: "Admin API", slug: "/apis/admin", description: - "This API is intended to configure and manage one ZITADEL instance itself.", + "This API is intended to configure and manage one ZITADEL instance itself.", }, items: require("./docs/apis/admin/sidebar.js"), }, @@ -314,9 +331,9 @@ module.exports = { title: "System API", slug: "/apis/system", description: - "This API is intended to manage the different ZITADEL instances within the system.\n" + - "\n" + - "Checkout the guide how to access the ZITADEL System API.", + "This API is intended to manage the different ZITADEL instances within the system.\n" + + "\n" + + "Checkout the guide how to access the ZITADEL System API.", }, items: require("./docs/apis/system/sidebar.js"), }, diff --git a/docs/static/img/guides/azure_api_permissions.png b/docs/static/img/guides/azure_api_permissions.png new file mode 100644 index 0000000000..a3826fb09b Binary files /dev/null and b/docs/static/img/guides/azure_api_permissions.png differ diff --git a/docs/static/img/guides/azure_app_registration.png b/docs/static/img/guides/azure_app_registration.png new file mode 100644 index 0000000000..578666492b Binary files /dev/null and b/docs/static/img/guides/azure_app_registration.png differ diff --git a/docs/static/img/guides/azure_client_secret.png b/docs/static/img/guides/azure_client_secret.png new file mode 100644 index 0000000000..715bdeb898 Binary files /dev/null and b/docs/static/img/guides/azure_client_secret.png differ diff --git a/docs/static/img/guides/azure_client_tenant_id.png b/docs/static/img/guides/azure_client_tenant_id.png new file mode 100644 index 0000000000..28976b2c8e Binary files /dev/null and b/docs/static/img/guides/azure_client_tenant_id.png differ diff --git a/docs/static/img/guides/azure_token_configuration.png b/docs/static/img/guides/azure_token_configuration.png new file mode 100644 index 0000000000..9b20ea619e Binary files /dev/null and b/docs/static/img/guides/azure_token_configuration.png differ diff --git a/docs/static/img/guides/github_login.png b/docs/static/img/guides/github_login.png new file mode 100644 index 0000000000..e71d0e30e1 Binary files /dev/null and b/docs/static/img/guides/github_login.png differ diff --git a/docs/static/img/guides/github_oauth_app_registration.png b/docs/static/img/guides/github_oauth_app_registration.png new file mode 100644 index 0000000000..4350ea5e2a Binary files /dev/null and b/docs/static/img/guides/github_oauth_app_registration.png differ diff --git a/docs/static/img/guides/github_oauth_client_id_secret.png b/docs/static/img/guides/github_oauth_client_id_secret.png new file mode 100644 index 0000000000..79ab4e849e Binary files /dev/null and b/docs/static/img/guides/github_oauth_client_id_secret.png differ diff --git a/docs/static/img/guides/gitlab_app_id_secret.png b/docs/static/img/guides/gitlab_app_id_secret.png new file mode 100644 index 0000000000..c5495e1027 Binary files /dev/null and b/docs/static/img/guides/gitlab_app_id_secret.png differ diff --git a/docs/static/img/guides/gitlab_app_registration.png b/docs/static/img/guides/gitlab_app_registration.png new file mode 100644 index 0000000000..3cec036e71 Binary files /dev/null and b/docs/static/img/guides/gitlab_app_registration.png differ diff --git a/docs/static/img/guides/gitlab_login.png b/docs/static/img/guides/gitlab_login.png new file mode 100644 index 0000000000..9589abf322 Binary files /dev/null and b/docs/static/img/guides/gitlab_login.png differ diff --git a/docs/static/img/guides/google_client_id_secret.png b/docs/static/img/guides/google_client_id_secret.png new file mode 100644 index 0000000000..6a6917271e Binary files /dev/null and b/docs/static/img/guides/google_client_id_secret.png differ diff --git a/docs/static/img/guides/google_login.png b/docs/static/img/guides/google_login.png new file mode 100644 index 0000000000..769b34edf0 Binary files /dev/null and b/docs/static/img/guides/google_login.png differ diff --git a/docs/static/img/guides/google_oauth_app_registration.png b/docs/static/img/guides/google_oauth_app_registration.png new file mode 100644 index 0000000000..1008388ba9 Binary files /dev/null and b/docs/static/img/guides/google_oauth_app_registration.png differ diff --git a/docs/static/img/guides/microsoft_login.png b/docs/static/img/guides/microsoft_login.png new file mode 100644 index 0000000000..8c3347f4db Binary files /dev/null and b/docs/static/img/guides/microsoft_login.png differ diff --git a/docs/static/img/guides/zitadel_activate_azure.png b/docs/static/img/guides/zitadel_activate_azure.png new file mode 100644 index 0000000000..226b615748 Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_azure.png differ diff --git a/docs/static/img/guides/zitadel_activate_github.png b/docs/static/img/guides/zitadel_activate_github.png new file mode 100644 index 0000000000..c490766f63 Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_github.png differ diff --git a/docs/static/img/guides/zitadel_activate_gitlab.png b/docs/static/img/guides/zitadel_activate_gitlab.png new file mode 100644 index 0000000000..2d15dca4ac Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_gitlab.png differ diff --git a/docs/static/img/guides/zitadel_activate_google.png b/docs/static/img/guides/zitadel_activate_google.png new file mode 100644 index 0000000000..cd0a69d305 Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_google.png differ diff --git a/docs/static/img/guides/zitadel_activate_ldap.png b/docs/static/img/guides/zitadel_activate_ldap.png new file mode 100644 index 0000000000..98c3499737 Binary files /dev/null and b/docs/static/img/guides/zitadel_activate_ldap.png differ diff --git a/docs/static/img/guides/zitadel_allow_external_idp.png b/docs/static/img/guides/zitadel_allow_external_idp.png new file mode 100644 index 0000000000..22ec28dad7 Binary files /dev/null and b/docs/static/img/guides/zitadel_allow_external_idp.png differ diff --git a/docs/static/img/guides/zitadel_azure_provider.png b/docs/static/img/guides/zitadel_azure_provider.png new file mode 100644 index 0000000000..371148b6a7 Binary files /dev/null and b/docs/static/img/guides/zitadel_azure_provider.png differ diff --git a/docs/static/img/guides/zitadel_github_create_provider.png b/docs/static/img/guides/zitadel_github_create_provider.png new file mode 100644 index 0000000000..84431c609a Binary files /dev/null and b/docs/static/img/guides/zitadel_github_create_provider.png differ diff --git a/docs/static/img/guides/zitadel_gitlab_create_provider.png b/docs/static/img/guides/zitadel_gitlab_create_provider.png new file mode 100644 index 0000000000..20650e4174 Binary files /dev/null and b/docs/static/img/guides/zitadel_gitlab_create_provider.png differ diff --git a/docs/static/img/guides/zitadel_google_create_provider.png b/docs/static/img/guides/zitadel_google_create_provider.png new file mode 100644 index 0000000000..d6ec6a9d34 Binary files /dev/null and b/docs/static/img/guides/zitadel_google_create_provider.png differ diff --git a/docs/static/img/guides/zitadel_identity_provider_overview.png b/docs/static/img/guides/zitadel_identity_provider_overview.png new file mode 100644 index 0000000000..055917aee4 Binary files /dev/null and b/docs/static/img/guides/zitadel_identity_provider_overview.png differ diff --git a/docs/static/img/guides/zitadel_ldap_create_provider.png b/docs/static/img/guides/zitadel_ldap_create_provider.png new file mode 100644 index 0000000000..4286d93ad2 Binary files /dev/null and b/docs/static/img/guides/zitadel_ldap_create_provider.png differ diff --git a/docs/static/img/guides/zitadel_login_azure.png b/docs/static/img/guides/zitadel_login_azure.png new file mode 100644 index 0000000000..32b6ba45e1 Binary files /dev/null and b/docs/static/img/guides/zitadel_login_azure.png differ diff --git a/docs/static/img/guides/zitadel_login_external_not_found_registration.png b/docs/static/img/guides/zitadel_login_external_not_found_registration.png new file mode 100644 index 0000000000..41f95e7916 Binary files /dev/null and b/docs/static/img/guides/zitadel_login_external_not_found_registration.png differ diff --git a/docs/static/img/guides/zitadel_login_github.png b/docs/static/img/guides/zitadel_login_github.png new file mode 100644 index 0000000000..efd79e28a8 Binary files /dev/null and b/docs/static/img/guides/zitadel_login_github.png differ diff --git a/docs/static/img/guides/zitadel_login_gitlab.png b/docs/static/img/guides/zitadel_login_gitlab.png new file mode 100644 index 0000000000..d4daedb11e Binary files /dev/null and b/docs/static/img/guides/zitadel_login_gitlab.png differ diff --git a/docs/static/img/guides/zitadel_login_google.png b/docs/static/img/guides/zitadel_login_google.png new file mode 100644 index 0000000000..7890809102 Binary files /dev/null and b/docs/static/img/guides/zitadel_login_google.png differ diff --git a/docs/static/img/guides/zitadel_login_ldap.png b/docs/static/img/guides/zitadel_login_ldap.png new file mode 100644 index 0000000000..751b5de25d Binary files /dev/null and b/docs/static/img/guides/zitadel_login_ldap.png differ diff --git a/docs/static/img/guides/zitadel_login_ldap_input.png b/docs/static/img/guides/zitadel_login_ldap_input.png new file mode 100644 index 0000000000..e176fbe6db Binary files /dev/null and b/docs/static/img/guides/zitadel_login_ldap_input.png differ diff --git a/e2e/cypress/e2e/events/events.cy.ts b/e2e/cypress/e2e/events/events.cy.ts new file mode 100644 index 0000000000..65362b6129 --- /dev/null +++ b/e2e/cypress/e2e/events/events.cy.ts @@ -0,0 +1,18 @@ +describe('events', () => { + beforeEach(() => { + cy.context().as('ctx'); + }); + + it('events can be filtered', () => { + const eventTypeEnglish = 'Instance added'; + cy.visit('/events'); + cy.get('[data-e2e="event-type-cell"]').should('have.length', 20); + cy.get('[data-e2e="open-filter-button"]').click(); + cy.get('[data-e2e="event-type-filter-checkbox"]').click(); + cy.get('#mat-select-value-1').click(); + cy.contains('mat-option', eventTypeEnglish).click(); + cy.get('body').click(); + cy.get('[data-e2e="filter-finish-button"]').click(); + cy.contains('[data-e2e="event-type-cell"]', eventTypeEnglish).should('have.length.at.least', 1); + }); +}); diff --git a/go.mod b/go.mod index 3ac3be8409..eb61ce26e2 100644 --- a/go.mod +++ b/go.mod @@ -3,46 +3,46 @@ module github.com/zitadel/zitadel go 1.19 require ( - cloud.google.com/go/storage v1.29.0 + cloud.google.com/go/storage v1.30.1 github.com/BurntSushi/toml v1.2.1 github.com/DATA-DOG/go-sqlmock v1.5.0 - github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.11.2 + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.13.0 github.com/Masterminds/sprig v2.22.0+incompatible - github.com/Masterminds/squirrel v1.5.3 + github.com/Masterminds/squirrel v1.5.4 github.com/VictoriaMetrics/fastcache v1.12.1 github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b github.com/allegro/bigcache v1.2.1 github.com/benbjohnson/clock v1.3.0 github.com/boombuler/barcode v1.0.1 - github.com/cockroachdb/cockroach-go/v2 v2.2.20 - github.com/dop251/goja v0.0.0-20230216180835-5937a312edda - github.com/dop251/goja_nodejs v0.0.0-20230207183254-2229640ea097 + github.com/cockroachdb/cockroach-go/v2 v2.3.3 + github.com/dop251/goja v0.0.0-20230402114112-623f9dda9079 + github.com/dop251/goja_nodejs v0.0.0-20230322100729-2550c7b6c124 github.com/drone/envsubst v1.0.3 github.com/duo-labs/webauthn v0.0.0-20221205164246-ebaf9b74c6ec - github.com/envoyproxy/protoc-gen-validate v0.9.1 + github.com/envoyproxy/protoc-gen-validate v0.10.1 github.com/go-ldap/ldap/v3 v3.4.4 - github.com/golang/glog v1.0.0 + github.com/golang/glog v1.1.1 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 github.com/gorilla/csrf v1.7.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/schema v1.2.0 github.com/gorilla/securecookie v1.1.1 - github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 github.com/h2non/gock v1.2.0 github.com/improbable-eng/grpc-web v0.15.0 github.com/jackc/pgconn v1.14.0 github.com/jackc/pgtype v1.14.0 - github.com/jackc/pgx/v4 v4.18.0 + github.com/jackc/pgx/v4 v4.18.1 github.com/jarcoal/jpath v0.0.0-20140328210829-f76b8b2dbf52 github.com/jinzhu/gorm v1.9.16 github.com/k3a/html2text v1.1.0 github.com/kevinburke/twilio-go v0.0.0-20221122012537-65f3dd7539e2 github.com/lib/pq v1.10.7 github.com/lucasb-eyer/go-colorful v1.2.0 - github.com/minio/minio-go/v7 v7.0.49 + github.com/minio/minio-go/v7 v7.0.50 github.com/mitchellh/mapstructure v1.5.0 github.com/muesli/gamut v0.3.1 github.com/nicksnyder/go-i18n/v2 v2.2.1 @@ -51,57 +51,57 @@ require ( github.com/rakyll/statik v0.1.7 github.com/rs/cors v1.8.3 github.com/sony/sonyflake v1.1.0 - github.com/spf13/cobra v1.6.1 + github.com/spf13/cobra v1.7.0 github.com/spf13/viper v1.15.0 github.com/stretchr/testify v1.8.2 github.com/superseriousbusiness/exifremove v0.0.0-20210330092427-6acd27eac203 github.com/ttacon/libphonenumber v1.2.1 github.com/zitadel/logging v0.3.4 - github.com/zitadel/oidc/v2 v2.2.5 - github.com/zitadel/saml v0.0.10 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.27.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.27.0 - go.opentelemetry.io/otel v1.11.2 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.2.0 - go.opentelemetry.io/otel/exporters/prometheus v0.25.0 - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.2.0 - go.opentelemetry.io/otel/metric v0.25.0 - go.opentelemetry.io/otel/sdk v1.11.2 - go.opentelemetry.io/otel/sdk/export/metric v0.25.0 - go.opentelemetry.io/otel/sdk/metric v0.25.0 - go.opentelemetry.io/otel/trace v1.11.2 + github.com/zitadel/oidc/v2 v2.2.6 + github.com/zitadel/saml v0.0.11 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 + go.opentelemetry.io/otel v1.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 + go.opentelemetry.io/otel/exporters/prometheus v0.37.0 + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 + go.opentelemetry.io/otel/metric v0.37.0 + go.opentelemetry.io/otel/sdk v1.14.0 + go.opentelemetry.io/otel/sdk/metric v0.37.0 + go.opentelemetry.io/otel/trace v1.14.0 golang.org/x/crypto v0.7.0 golang.org/x/net v0.8.0 golang.org/x/oauth2 v0.6.0 golang.org/x/sync v0.1.0 golang.org/x/text v0.8.0 - golang.org/x/tools v0.6.0 - google.golang.org/api v0.110.0 - google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 - google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.29.1 + golang.org/x/tools v0.7.0 + google.golang.org/api v0.115.0 + google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd + google.golang.org/grpc v1.54.0 + google.golang.org/protobuf v1.30.0 gopkg.in/square/go-jose.v2 v2.6.0 sigs.k8s.io/yaml v1.3.0 ) require ( - github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.35.2 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.37.0 // indirect github.com/cloudflare/cfssl v1.6.3 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/klauspost/cpuid/v2 v2.2.3 // indirect + github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/muhlemmer/gu v0.3.1 // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect - go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect + github.com/pelletier/go-toml/v2 v2.0.7 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect + go.uber.org/multierr v1.11.0 // indirect ) require ( cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go/compute v1.19.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.12.0 // indirect - cloud.google.com/go/trace v1.8.0 // indirect + cloud.google.com/go/iam v1.0.0 // indirect + cloud.google.com/go/trace v1.9.0 // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect @@ -133,20 +133,20 @@ require ( github.com/gofrs/flock v0.8.1 // indirect github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 // indirect + github.com/golang/geo v0.0.0-20230404232722-c4acd7a044dc // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/certificate-transparency-go v1.1.4 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.3.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect + github.com/googleapis/gax-go/v2 v2.8.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/h2non/filetype v1.1.3 // indirect github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect - github.com/imdario/mergo v0.3.13 // indirect + github.com/imdario/mergo v0.3.15 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgio v1.0.0 // indirect @@ -154,11 +154,11 @@ require ( github.com/jackc/pgproto3/v2 v2.3.2 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jonboulle/clockwork v0.3.0 // indirect + github.com/jonboulle/clockwork v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/go-types v0.0.0-20210723172823-2deba1f80ba7 // indirect - github.com/kevinburke/rest v0.0.0-20230118171807-ac09c3f0ec45 // indirect - github.com/klauspost/compress v1.15.15 // indirect + github.com/kevinburke/rest v0.0.0-20230306061549-8f487d822ad0 // indirect + github.com/klauspost/compress v1.16.4 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -173,14 +173,14 @@ require ( github.com/muesli/clusters v0.0.0-20200529215643-2700303c1762 // indirect github.com/muesli/kmeans v0.3.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.13.0 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.37.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect github.com/rs/xid v1.4.0 // indirect - github.com/russellhaering/goxmldsig v1.2.0 // indirect + github.com/russellhaering/goxmldsig v1.3.0 // indirect github.com/sirupsen/logrus v1.9.0 - github.com/spf13/afero v1.9.3 // indirect + github.com/spf13/afero v1.9.5 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect @@ -189,11 +189,10 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.2.0 // indirect - go.opentelemetry.io/otel/internal/metric v0.25.0 // indirect - go.opentelemetry.io/proto/otlp v0.15.0 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sys v0.6.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect + go.opentelemetry.io/proto/otlp v0.19.0 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/sys v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index bd231ad384..4efcc17bb2 100644 --- a/go.sum +++ b/go.sum @@ -32,18 +32,18 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= -cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= -cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= -cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= +cloud.google.com/go/iam v1.0.0 h1:hlQJMovyJJwYjZcTohUH4o1L8Z8kYz+E+W/zktiLCBc= +cloud.google.com/go/iam v1.0.0/go.mod h1:ikbQ4f1r91wTmBmmOtBCOtuEOei6taatNXytzB7Cxew= +cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/monitoring v1.13.0 h1:2qsrgXGVoRXpP7otZ14eE1I568zAa92sJSDPyOJvwjM= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -55,10 +55,10 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= -cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= -cloud.google.com/go/trace v1.8.0 h1:GFPLxbp5/FzdgTzor3nlNYNxMd6hLmzkE7sA9F0qQcA= -cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/trace v1.9.0 h1:olxC0QHC59zgJVALtgqfD9tGk0lfeCP5/AGXL3Px/no= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= code.gitea.io/sdk/gitea v0.11.3/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY= contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= @@ -85,11 +85,11 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.11.2 h1:Z5/bjyZhqXd7dNI76Z/KnyxtqavKF1UgGhInFSAIa8s= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.11.2/go.mod h1:mHbBqn8wTt1/+bTA55xe2mLX5b+RKz2dVcGz8sH2HsY= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.35.2 h1:xXo67CnDmiDMhgD3zAiuejKKMQ9nNkAQZZ4RS5U5jJY= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.35.2 h1:uH5W8NML+jD8iFiBbNUh5X7Nt0FVDK44Hel+Ux0ZEqU= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.35.2/go.mod h1:H785fvlgotVZqht+1rHhXSs8EJ8uPVmpBYkTYO3ccpc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.13.0 h1:aRQEQ57Mw12h0tG8oo2UGC5d8fpUFCvD1lcS9fdGh6I= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.13.0/go.mod h1:WzE/bKzbWw91rEv1w53y4taJheFSkUzp2Mu8uItorHg= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.37.0 h1:+3ioRuJPNQk6WkbdClWVo8FyfpXu/ZXePQ3syDwrN4o= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.37.0 h1:k5x4SiDgKS8wVQO/ww1fnoh5gwYEg6Wsi+1z5kB9uDM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.37.0/go.mod h1:oEccMakRmMNrayCPR+5OmZE/aeXmTPzUtmomEXIPBdI= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -104,8 +104,8 @@ github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0 github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/squirrel v1.5.3 h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc= -github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= @@ -159,7 +159,7 @@ github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZw github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= -github.com/benbjohnson/clock v1.2.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -187,12 +187,14 @@ github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6 github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/backoff v0.0.0-20161212185259-647f3cdfc87a/go.mod h1:rzgs2ZOiguV6/NpiDgADjRLPNyZlApIWxKpkT+X8SdY= @@ -210,8 +212,8 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/cockroach-go/v2 v2.2.20 h1:TLSzwdTdIwgsbdApHzaxunhSMrmbGf5YY6oxtaP2kvw= -github.com/cockroachdb/cockroach-go/v2 v2.2.20/go.mod h1:73vQi5H/H7kE8SgOt+XA6729Tubvj5hxKIEgbQQhp4c= +github.com/cockroachdb/cockroach-go/v2 v2.3.3 h1:fNmtG6XhoA1DhdDCIu66YyGSsNb1szj4CaAsbDxRmy4= +github.com/cockroachdb/cockroach-go/v2 v2.3.3/go.mod h1:1wNJ45eSXW9AnOc3skntW9ZUZz6gxrQK3cOj3rK+BC8= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= @@ -255,12 +257,12 @@ github.com/dlclark/regexp2 v1.8.1 h1:6Lcdwya6GjPUNsBct8Lg/yRPwMhABj269AAzdGSiR+0 github.com/dlclark/regexp2 v1.8.1/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= github.com/dop251/goja v0.0.0-20221118162653-d4bf6fde1b86/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= -github.com/dop251/goja v0.0.0-20230216180835-5937a312edda h1:yWEvdMtib3RbPysHDTNf/c3gerF5r+iMcmhlAeE6hEk= -github.com/dop251/goja v0.0.0-20230216180835-5937a312edda/go.mod h1:yRkwfj0CBpOGre+TwBsqPV0IH0Pk73e4PXJOeNDboGs= +github.com/dop251/goja v0.0.0-20230402114112-623f9dda9079 h1:xkbJGxVnk5sM8/LXeTKaBOfAZrI+iqvIPyH8oK1c6CQ= +github.com/dop251/goja v0.0.0-20230402114112-623f9dda9079/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= -github.com/dop251/goja_nodejs v0.0.0-20230207183254-2229640ea097 h1:WsLyDk8yHsVT1puf/32883ZxEb6Pgqd19AlQH9mxVK0= -github.com/dop251/goja_nodejs v0.0.0-20230207183254-2229640ea097/go.mod h1:0tlktQL7yHfYEtjcRGi/eiOkbDR5XF7gyFFvbC5//E0= +github.com/dop251/goja_nodejs v0.0.0-20230322100729-2550c7b6c124 h1:QDuDMgEkC/lnmvk0d/fZfcUUml18uUbS9TY5QtbdFhs= +github.com/dop251/goja_nodejs v0.0.0-20230322100729-2550c7b6c124/go.mod h1:0tlktQL7yHfYEtjcRGi/eiOkbDR5XF7gyFFvbC5//E0= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= github.com/dsoprea/go-exif v0.0.0-20210131231135-d154f10435cc/go.mod h1:lOaOt7+UEppOgyvRy749v3do836U/hw0YVJNjoyPaEs= @@ -316,15 +318,14 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.3.0-java/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.1/go.mod h1:txg5va2Qkip90uYoSKH+nkAAmXrb2j3iq4FLwdrCbXQ= -github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= -github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= github.com/etcd-io/gofail v0.0.0-20190801230047-ad7f989257ca/go.mod h1:49H/RkXP8pKaZy4h0d+NW16rSLhyVBt4o6VLJbmOqDE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -365,16 +366,14 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-ldap/ldap/v3 v3.4.4 h1:qPjipEpt+qDa6SI/h1fzuGWoRUY+qqQ9sOZq67/PYUs= github.com/go-ldap/ldap/v3 v3.4.4/go.mod h1:fe1MsuN5eJJ1FeLT/LEBVdWfNWKh459R7aXgXtJC+aI= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -423,12 +422,13 @@ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2V github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/geo v0.0.0-20200319012246-673a6f80352d/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= -github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 h1:gtexQ/VGyN+VVFRXSFiguSNcXmS6rkKT+X7FdIrTtfo= -github.com/golang/geo v0.0.0-20210211234256-740aa86cb551/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/geo v0.0.0-20230404232722-c4acd7a044dc h1:WkAZHSmcnJhZyutVoVXe7lDSQBbISxITcm57tYf22PE= +github.com/golang/geo v0.0.0-20230404232722-c4acd7a044dc/go.mod h1:8wI0hitZ3a1IxZfeH3/5I97CI8i5cLGsYe7xNhQGs9U= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v0.0.0-20210429001901-424d2337a529/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.1 h1:jxpi2eWoU84wbX9iIEyAeeoac3FLuifZpY9tcNUD9kw= +github.com/golang/glog v1.1.1/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -515,6 +515,9 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= +github.com/google/pprof v0.0.0-20230323073829-e72429f035bd h1:r8yyd+DJDmsUhGrRBxH5Pj7KeFK5l+Y3FsgT8keqKtk= +github.com/google/pprof v0.0.0-20230323073829-e72429f035bd/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0/go.mod h1:RaTPr0KUf2K7fnZYLNDrr8rxAamWs3iNywJLtQ2AzBg= github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -533,8 +536,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5 github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -562,8 +565,9 @@ github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -573,8 +577,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4G github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1 h1:I6ITHEanAwjB0FvaxmGm8pKqmCLR7QIe05ZmO4QAXMw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.1/go.mod h1:gYC+WX4YJFarA2ie73G2epzt7TBWpo9pzcBnK1g0MSw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= github.com/h2non/filetype v1.1.1/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= @@ -617,15 +621,15 @@ github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmK github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= +github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= @@ -639,8 +643,6 @@ github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsU github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.12.0/go.mod h1:ZkhRC59Llhrq3oSfrikvwQ5NaxYExr6twkdkMLaKono= -github.com/jackc/pgconn v1.12.1/go.mod h1:ZkhRC59Llhrq3oSfrikvwQ5NaxYExr6twkdkMLaKono= github.com/jackc/pgconn v1.14.0 h1:vrbA9Ud87g6JdFWkHTJXppVce58qPIdP7N8y0Ml/A7Q= github.com/jackc/pgconn v1.14.0/go.mod h1:9mBNlny0UvkgJdCDvdVHYSjI+8tD2rnKK69Wz8ti++E= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= @@ -658,7 +660,6 @@ github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvW github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.3.2 h1:7eY55bdBeCz1F2fTzSz69QC+pG46jYq9/jtSPiJ5nn0= github.com/jackc/pgproto3/v2 v2.3.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= @@ -668,21 +669,17 @@ github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01C github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.11.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgtype v1.14.0 h1:y+xUdabmyMkJLyApYuPj38mW+aAIqCe5uuBB51rH3Vw= github.com/jackc/pgtype v1.14.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.16.0/go.mod h1:N0A9sFdWzkw/Jy1lwoiB64F2+ugFZi987zRxcPez/wI= -github.com/jackc/pgx/v4 v4.16.1/go.mod h1:SIhx0D5hoADaiXZVyv+3gSm3LCIIINTVO0PficsvWGQ= -github.com/jackc/pgx/v4 v4.18.0 h1:Ltaa1ePvc7msFGALnCrqKJVEByu/qYh5jJBYcDtAno4= -github.com/jackc/pgx/v4 v4.18.0/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= +github.com/jackc/pgx/v4 v4.18.1 h1:YP7G1KABtKpB5IHrO9vYwSrCOhs7p3uqhvhhQBptya0= +github.com/jackc/pgx/v4 v4.18.1/go.mod h1:FydWkUyadDmdNH/mHnGob881GawxeEm7TcMCzkb+qQE= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jarcoal/httpmock v1.0.5/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik= github.com/jarcoal/jpath v0.0.0-20140328210829-f76b8b2dbf52 h1:jny9eqYPwkG8IVy7foUoRjQmFLcArCSz+uPsL6KS0HQ= @@ -698,17 +695,15 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas= -github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548/go.mod h1:hGT6jSUVzF6no3QaDSMLGLEHtHSBSefs+MgcDWnmhmo= github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= -github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/jonboulle/clockwork v0.3.0 h1:9BSCMi8C+0qdApAp4auwX0RkLGUjs956h0EkuQymUhg= -github.com/jonboulle/clockwork v0.3.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= +github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -730,8 +725,8 @@ github.com/k3a/html2text v1.1.0 h1:ks4hKSTdiTRsLr0DM771mI5TvsoG6zH7m1Ulv7eJRHw= github.com/k3a/html2text v1.1.0/go.mod h1:ieEXykM67iT8lTvEWBh6fhpH4B23kB9OMKPdIBmgUqA= github.com/kevinburke/go-types v0.0.0-20210723172823-2deba1f80ba7 h1:K8qael4LemsmJCGt+ccI8b0fCNFDttmEu3qtpFt3G0M= github.com/kevinburke/go-types v0.0.0-20210723172823-2deba1f80ba7/go.mod h1:/Pk5i/SqYdYv1cie5wGwoZ4P6TpgMi+Yf58mtJSHdOw= -github.com/kevinburke/rest v0.0.0-20230118171807-ac09c3f0ec45 h1:WMM9MCVDgEtKsp7eQe0DCCkMaqykkNwdx38wn86NlVk= -github.com/kevinburke/rest v0.0.0-20230118171807-ac09c3f0ec45/go.mod h1:pD+iEcdAGVXld5foVN4e24zb/6fnb60tgZPZ3P/3T/I= +github.com/kevinburke/rest v0.0.0-20230306061549-8f487d822ad0 h1:2b9anKtyO/UTUQb+TAdPAW+w0p9xCIvng4fdZJ2xsYk= +github.com/kevinburke/rest v0.0.0-20230306061549-8f487d822ad0/go.mod h1:pD+iEcdAGVXld5foVN4e24zb/6fnb60tgZPZ3P/3T/I= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kevinburke/twilio-go v0.0.0-20221122012537-65f3dd7539e2 h1:k+lYMvS9cAl7e4Ea78qodfa6QZfXNa4QlFS/0GYpanI= github.com/kevinburke/twilio-go v0.0.0-20221122012537-65f3dd7539e2/go.mod h1:PDdDH7RSKjjy9iFyoMzfeChOSmXpXuMEUqmAJSihxx4= @@ -743,12 +738,12 @@ github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCy github.com/kisom/goutils v1.4.3/go.mod h1:Lp5qrquG7yhYnWzZCI/68Pa/GpFynw//od6EkGnWpac= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= +github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= -github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -778,7 +773,6 @@ github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.1/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= @@ -825,8 +819,8 @@ github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WT github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.49 h1:dE5DfOtnXMXCjr/HWI6zN9vCrY6Sv666qhhiwUMvGV4= -github.com/minio/minio-go/v7 v7.0.49/go.mod h1:UI34MvQEiob3Cf/gGExGMmzugkM/tNgbFypNDy5LMVc= +github.com/minio/minio-go/v7 v7.0.50 h1:4IL4V8m/kI90ZL6GupCARZVrBv8/XrcKcJhaJ3iz68k= +github.com/minio/minio-go/v7 v7.0.50/go.mod h1:IbbodHyjUAguneyucUaahv+VMNs/EOTV9du7A7/Z3HU= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -913,8 +907,8 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= +github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -940,17 +934,16 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= -github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -961,10 +954,8 @@ github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB8 github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.24.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -974,9 +965,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pseudomuto/protoc-gen-doc v1.4.1/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg= github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= @@ -990,8 +980,8 @@ github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= @@ -1000,8 +990,8 @@ github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russellhaering/goxmldsig v1.2.0 h1:Y6GTTc9Un5hCxSzVz4UIWQ/zuVwDvzJk80guqzwx6Vg= -github.com/russellhaering/goxmldsig v1.2.0/go.mod h1:gM4MDENBQf7M+V824SGfyIUVFWydB7n0KkEubVJl+Tw= +github.com/russellhaering/goxmldsig v1.3.0 h1:DllIWUgMy0cRUMfGiASiYEa35nsieyD3cigIwLonTPM= +github.com/russellhaering/goxmldsig v1.3.0/go.mod h1:gM4MDENBQf7M+V824SGfyIUVFWydB7n0KkEubVJl+Tw= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -1014,9 +1004,8 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= -github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1044,8 +1033,8 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= @@ -1054,8 +1043,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -1141,10 +1130,10 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zitadel/logging v0.3.4 h1:9hZsTjMMTE3X2LUi0xcF9Q9EdLo+FAezeu52ireBbHM= github.com/zitadel/logging v0.3.4/go.mod h1:aPpLQhE+v6ocNK0TWrBrd363hZ95KcI17Q1ixAQwZF0= -github.com/zitadel/oidc/v2 v2.2.5 h1:vxSVowLnvbujqmJRWsBxC7lCBZngrK0zVlQKznb4IxI= -github.com/zitadel/oidc/v2 v2.2.5/go.mod h1:tGkj9lQk6KVj5hsM89XPadvi6I06666sMy3KtykvSFM= -github.com/zitadel/saml v0.0.10 h1:cyKd78Vat9vz55S74lggJrXMSqbAPsnJDrPFTPScNYY= -github.com/zitadel/saml v0.0.10/go.mod h1:Hze1/zRN9j1uh7U+89vweP/OwLNO8BLHg3zU1Jtycdg= +github.com/zitadel/oidc/v2 v2.2.6 h1:L2k5q1X8Rucax5Ynp3B3lz7JQDJxUwfWCOmgc9Bh0BM= +github.com/zitadel/oidc/v2 v2.2.6/go.mod h1:tGkj9lQk6KVj5hsM89XPadvi6I06666sMy3KtykvSFM= +github.com/zitadel/saml v0.0.11 h1:kObucnBrcu1PHCO7RGT0iVeuJL/5I50gUgr40S41nMs= +github.com/zitadel/saml v0.0.11/go.mod h1:YGWAvPZRv4DbEZ78Ht/2P0AWzGn+6WGhFf90PMXl0Po= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE= github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4/go.mod h1:5iU54tB79AMBcySS0R2XIyZBAVmeHranShAFELYx7is= @@ -1176,57 +1165,53 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.27.0 h1:TON1iU3Y5oIytGQHIejDYLam5uoSMsmA0UV9Yupb5gQ= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.27.0/go.mod h1:T/zQwBldOpoAEpE3HMbLnI8ydESZVz4ggw6Is4FF9LI= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.27.0 h1:0BgiNWjN7rUWO9HdjF4L12r8OW86QkVQcYmCjnayJLo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.27.0/go.mod h1:bdvm3YpMxWAgEfQhtTBaVR8ceXPRuRBSQrvOBnIlHxc= -go.opentelemetry.io/otel v1.2.0/go.mod h1:aT17Fk0Z1Nor9e0uisf98LrntPGMnk4frBO9+dkf69I= -go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= -go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.2.0 h1:xzbcGykysUh776gzD1LUPsNNHKWN0kQWDnJhn1ddUuk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.2.0/go.mod h1:14T5gr+Y6s2AgHPqBMgnGwp04csUjQmYXFWPeiBoq5s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.2.0 h1:VsgsSCDwOSuO8eMVh63Cd4nACMqgjpmAeJSIvVNneD0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.2.0/go.mod h1:9mLBBnPRf3sf+ASVH2p9xREXVBvwib02FxcKnavtExg= -go.opentelemetry.io/otel/exporters/prometheus v0.25.0 h1:8f9PiHQ2yqRRWktEJ/u2cIPLD8yUagIuNOaFpSsCefI= -go.opentelemetry.io/otel/exporters/prometheus v0.25.0/go.mod h1:TmEyKmTplB/cdILsJBqD9/JDK9ssGXWjsrpmMHodFLw= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.2.0 h1:OiYdrCq1Ctwnovp6EofSPwlp5aGy4LgKNbkg7PtEUw8= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.2.0/go.mod h1:DUFCmFkXr0VtAHl5Zq2JRx24G6ze5CAq8YfdD36RdX8= -go.opentelemetry.io/otel/internal/metric v0.25.0 h1:w/7RXe16WdPylaIXDgcYM6t/q0K5lXgSdZOEbIEyliE= -go.opentelemetry.io/otel/internal/metric v0.25.0/go.mod h1:Nhuw26QSX7d6n4duoqAFi5KOQR4AuzyMcl5eXOgwxtc= -go.opentelemetry.io/otel/metric v0.25.0 h1:7cXOnCADUsR3+EOqxPaSKwhEuNu0gz/56dRN1hpIdKw= -go.opentelemetry.io/otel/metric v0.25.0/go.mod h1:E884FSpQfnJOMMUaq+05IWlJ4rjZpk2s/F1Ju+TEEm8= -go.opentelemetry.io/otel/sdk v1.2.0/go.mod h1:jNN8QtpvbsKhgaC6V5lHiejMoKD+V8uadoSafgHPx1U= -go.opentelemetry.io/otel/sdk v1.11.2 h1:GF4JoaEx7iihdMFu30sOyRx52HDHOkl9xQ8SMqNXUiU= -go.opentelemetry.io/otel/sdk v1.11.2/go.mod h1:wZ1WxImwpq+lVRo4vsmSOxdd+xwoUJ6rqyLc3SyX9aU= -go.opentelemetry.io/otel/sdk/export/metric v0.25.0 h1:6UjAFmVB5Fza3K5qUJpYWGrk8QMPIqlSnya5FI46VBY= -go.opentelemetry.io/otel/sdk/export/metric v0.25.0/go.mod h1:Ej7NOa+WpN49EIcr1HMUYRvxXXCCnQCg2+ovdt2z8Pk= -go.opentelemetry.io/otel/sdk/metric v0.25.0 h1:J+Ta+4IAA5W9AdWhGQLfciEpavBqqSkBzTDeYvJLFNU= -go.opentelemetry.io/otel/sdk/metric v0.25.0/go.mod h1:G4xzj4LvC6xDDSsVXpvRVclQCbofGGg4ZU2VKKtDRfg= -go.opentelemetry.io/otel/trace v1.2.0/go.mod h1:N5FLswTubnxKxOJHM7XZC074qpeEdLy3CgAVsdMucK0= -go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= -go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0 h1:5jD3teb4Qh7mx/nfzq4jO2WFFpvXD0vYWFDrdvNWmXk= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0/go.mod h1:UMklln0+MRhZC4e3PwmN3pCtq4DyIadWw4yikh6bNrw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 h1:lE9EJyw3/JhrjWH/hEy9FptnalDQgj7vpbgC2KCCCxE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0/go.mod h1:pcQ3MM3SWvrA71U4GDqv9UFDJ3HQsW7y5ZO3tDTlUdI= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM= +go.opentelemetry.io/otel/exporters/prometheus v0.37.0 h1:NQc0epfL0xItsmGgSXgfbH2C1fq2VLXkZoDFsfRNHpc= +go.opentelemetry.io/otel/exporters/prometheus v0.37.0/go.mod h1:hB8qWjsStK36t50/R0V2ULFb4u95X/Q6zupXLgvjTh8= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 h1:sEL90JjOO/4yhquXl5zTAkLLsZ5+MycAgX99SDsxGc8= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0/go.mod h1:oCslUcizYdpKYyS9e8srZEqM6BB8fq41VJBjLAE6z1w= +go.opentelemetry.io/otel/metric v0.37.0 h1:pHDQuLQOZwYD+Km0eb657A25NaRzy0a+eLyKfDXedEs= +go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= +go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= +go.opentelemetry.io/otel/sdk/metric v0.37.0 h1:haYBBtZZxiI3ROwSmkZnI+d0+AVzBWeviuYQDeBWosU= +go.opentelemetry.io/otel/sdk/metric v0.37.0/go.mod h1:mO2WV1AZKKwhwHTV3AKOoIEb9LbUaENZDuGUQd+j4A0= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.10.0/go.mod h1:zG20xCK0szZ1xdokeSOwEcmlXu+x9kkdRe6N1DhKcfU= -go.opentelemetry.io/proto/otlp v0.15.0 h1:h0bKrvdrT/9sBwEJ6iWUqT/N/xPcS66bL4u3isneJ6w= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI= golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1253,9 +1238,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220824171710-5757bc0c5503/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= @@ -1298,8 +1282,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1353,11 +1337,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= @@ -1378,9 +1359,7 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210413134643-5e61552d6c78/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1466,13 +1445,11 @@ golang.org/x/sys v0.0.0-20210412220455-f1c623a9e750/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220207234003-57398862261d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220513210249-45d2b4557a2a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1480,8 +1457,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1496,6 +1473,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= @@ -1533,6 +1511,7 @@ golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1576,8 +1555,8 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1612,8 +1591,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.45.0/go.mod h1:ISLIJCedJolbZvDfAk+Ctuq5hf+aJ33WgtUsfyFoLXA= -google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.115.0 h1:6FFkVvStt4YqXSx3azKyzj7fXerGnVlLJ/eud01nBDE= +google.golang.org/api v0.115.0/go.mod h1:9cD4/t6uvd9naoEJFA+M96d0IuB6BqFuyhpw68+mRGg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1678,8 +1657,8 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210413151531-c14fb6ef47c3/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210510173355-fb37daa5cd7a/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 h1:muK+gVBJBfFb4SejshDBlN2/UgxCCOKH9Y34ljqEGOc= -google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd h1:sLpv7bNL1AsX3fdnWh9WVh7ejIzXdOc1RRHGeAmeStU= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1708,10 +1687,9 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1727,8 +1705,8 @@ google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX7 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= -google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1765,12 +1743,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.3.5/go.mod h1:EGCWefLFQSVFrHGy4J8EtiHCWX5Q8t0yz2Jt9aKkGzU= -gorm.io/gorm v1.23.4/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.23.5/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/api/api.go b/internal/api/api.go index 78044e5b6b..3cb851e3d0 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -10,6 +10,8 @@ import ( "github.com/improbable-eng/grpc-web/go/grpcweb" "github.com/zitadel/logging" "google.golang.org/grpc" + "google.golang.org/grpc/health" + healthpb "google.golang.org/grpc/health/grpc_health_v1" internal_authz "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/api/grpc/server" @@ -26,17 +28,19 @@ type API struct { port uint16 grpcServer *grpc.Server verifier *internal_authz.TokenVerifier - health health + health healthCheck router *mux.Router http1HostName string + grpcGateway *server.Gateway + healthServer *health.Server } -type health interface { +type healthCheck interface { Health(ctx context.Context) error - Instance(ctx context.Context, shouldTriggerBulk bool) (*query.Instance, error) } func New( + ctx context.Context, port uint16, router *mux.Router, queries *query.Queries, @@ -44,7 +48,7 @@ func New( authZ internal_authz.Config, tlsConfig *tls.Config, http2HostName, http1HostName string, accessSvc *logstore.Service, -) *API { +) (_ *API, err error) { api := &API{ port: port, verifier: verifier, @@ -54,43 +58,89 @@ func New( } api.grpcServer = server.CreateServer(api.verifier, authZ, queries, http2HostName, tlsConfig, accessSvc) - api.routeGRPC() + api.grpcGateway, err = server.CreateGateway(ctx, port, http1HostName) + if err != nil { + return nil, err + } + api.registerHealthServer() - api.RegisterHandler("/debug", api.healthHandler()) + api.RegisterHandlerOnPrefix("/debug", api.healthHandler()) api.router.Handle("/", http.RedirectHandler(login.HandlerPrefix, http.StatusFound)) - return api + return api, nil } -func (a *API) RegisterServer(ctx context.Context, grpcServer server.Server) error { +// RegisterServer registers a grpc service on the grpc server, +// creates a new grpc gateway and registers it as a separate http handler +// +// used for v1 api (system, admin, mgmt, auth) +func (a *API) RegisterServer(ctx context.Context, grpcServer server.WithGatewayPrefix) error { grpcServer.RegisterServer(a.grpcServer) - handler, prefix, err := server.CreateGateway(ctx, grpcServer, a.port, a.http1HostName) + handler, prefix, err := server.CreateGatewayWithPrefix(ctx, grpcServer, a.port, a.http1HostName) if err != nil { return err } - a.RegisterHandler(prefix, handler) + a.RegisterHandlerOnPrefix(prefix, handler) a.verifier.RegisterServer(grpcServer.AppName(), grpcServer.MethodPrefix(), grpcServer.AuthMethods()) + a.healthServer.SetServingStatus(grpcServer.MethodPrefix(), healthpb.HealthCheckResponse_SERVING) return nil } -func (a *API) RegisterHandler(prefix string, handler http.Handler) { +// RegisterService registers a grpc service on the grpc server, +// and its gateway on the gateway handler +// +// used for >= v2 api (e.g. user, session, ...) +func (a *API) RegisterService(ctx context.Context, grpcServer server.Server) error { + grpcServer.RegisterServer(a.grpcServer) + err := server.RegisterGateway(ctx, a.grpcGateway, grpcServer) + if err != nil { + return err + } + a.verifier.RegisterServer(grpcServer.AppName(), grpcServer.MethodPrefix(), grpcServer.AuthMethods()) + a.healthServer.SetServingStatus(grpcServer.MethodPrefix(), healthpb.HealthCheckResponse_SERVING) + return nil +} + +// RegisterHandlerOnPrefix registers a http handler on a path prefix +// the prefix will not be passed to the actual handler +func (a *API) RegisterHandlerOnPrefix(prefix string, handler http.Handler) { prefix = strings.TrimSuffix(prefix, "/") subRouter := a.router.PathPrefix(prefix).Name(prefix).Subrouter() subRouter.PathPrefix("").Handler(http.StripPrefix(prefix, handler)) } -func (a *API) routeGRPC() { +// RegisterHandlerPrefixes registers a http handler on a multiple path prefixes +// the prefix will remain when calling the actual handler +func (a *API) RegisterHandlerPrefixes(handler http.Handler, prefixes ...string) { + for _, prefix := range prefixes { + prefix = strings.TrimSuffix(prefix, "/") + subRouter := a.router.PathPrefix(prefix).Name(prefix).Subrouter() + subRouter.PathPrefix("").Handler(handler) + } +} + +func (a *API) registerHealthServer() { + healthServer := health.NewServer() + healthpb.RegisterHealthServer(a.grpcServer, healthServer) + a.healthServer = healthServer +} + +func (a *API) RouteGRPC() { http2Route := a.router. MatcherFunc(func(r *http.Request, _ *mux.RouteMatch) bool { return r.ProtoMajor == 2 }). - Subrouter() + Subrouter(). + Name("grpc") http2Route. Methods(http.MethodPost). Headers("Content-Type", "application/grpc"). Handler(a.grpcServer) a.routeGRPCWeb() + a.router.NewRoute(). + Handler(a.grpcGateway.Handler()). + Name("grpc-gateway") } func (a *API) routeGRPCWeb() { @@ -117,7 +167,8 @@ func (a *API) routeGRPCWeb() { func(r *http.Request, _ *mux.RouteMatch) bool { return grpcWebServer.IsGrpcWebRequest(r) || grpcWebServer.IsAcceptableGrpcCorsRequest(r) }). - Handler(grpcWebServer) + Handler(grpcWebServer). + Name("grpc-web") } func (a *API) healthHandler() http.Handler { diff --git a/internal/api/grpc/admin/server.go b/internal/api/grpc/admin/server.go index 42429cb124..267fad2f45 100644 --- a/internal/api/grpc/admin/server.go +++ b/internal/api/grpc/admin/server.go @@ -78,8 +78,8 @@ func (s *Server) AuthMethods() authz.MethodMapping { return admin.AdminService_AuthMethods } -func (s *Server) RegisterGateway() server.GatewayFunc { - return admin.RegisterAdminServiceHandlerFromEndpoint +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return admin.RegisterAdminServiceHandler } func (s *Server) GatewayPathPrefix() string { diff --git a/internal/api/grpc/auth/server.go b/internal/api/grpc/auth/server.go index e30ab12892..ff7d7ae7b6 100644 --- a/internal/api/grpc/auth/server.go +++ b/internal/api/grpc/auth/server.go @@ -76,8 +76,8 @@ func (s *Server) AuthMethods() authz.MethodMapping { return auth.AuthService_AuthMethods } -func (s *Server) RegisterGateway() server.GatewayFunc { - return auth.RegisterAuthServiceHandlerFromEndpoint +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return auth.RegisterAuthServiceHandler } func (s *Server) GatewayPathPrefix() string { diff --git a/internal/api/grpc/auth/user_grant.go b/internal/api/grpc/auth/user_grant.go index 7816e66476..242a54b044 100644 --- a/internal/api/grpc/auth/user_grant.go +++ b/internal/api/grpc/auth/user_grant.go @@ -5,6 +5,7 @@ import ( "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/api/grpc/object" + "github.com/zitadel/zitadel/internal/api/grpc/user" "github.com/zitadel/zitadel/internal/query" auth_pb "github.com/zitadel/zitadel/pkg/grpc/auth" ) @@ -53,5 +54,6 @@ func UserGrantToPb(grant *query.UserGrant) *auth_pb.UserGrant { ProjectName: grant.ProjectName, ProjectGrantId: grant.GrantID, RoleKeys: grant.Roles, + UserType: user.TypeToPb(grant.UserType), } } diff --git a/internal/api/grpc/management/idp_converter.go b/internal/api/grpc/management/idp_converter.go index 70bcc5dd08..6b0becd98a 100644 --- a/internal/api/grpc/management/idp_converter.go +++ b/internal/api/grpc/management/idp_converter.go @@ -298,6 +298,7 @@ func addAzureADProviderToCommand(req *mgmt_pb.AddAzureADProviderRequest) command Tenant: idp_grpc.AzureADTenantToCommand(req.Tenant), EmailVerified: req.EmailVerified, IDPOptions: idp_grpc.OptionsToCommand(req.ProviderOptions), + Scopes: req.Scopes, } } @@ -309,6 +310,7 @@ func updateAzureADProviderToCommand(req *mgmt_pb.UpdateAzureADProviderRequest) c Tenant: idp_grpc.AzureADTenantToCommand(req.Tenant), EmailVerified: req.EmailVerified, IDPOptions: idp_grpc.OptionsToCommand(req.ProviderOptions), + Scopes: req.Scopes, } } diff --git a/internal/api/grpc/management/server.go b/internal/api/grpc/management/server.go index 30d177a5e8..732f44ea29 100644 --- a/internal/api/grpc/management/server.go +++ b/internal/api/grpc/management/server.go @@ -70,8 +70,8 @@ func (s *Server) AuthMethods() authz.MethodMapping { return management.ManagementService_AuthMethods } -func (s *Server) RegisterGateway() server.GatewayFunc { - return management.RegisterManagementServiceHandlerFromEndpoint +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return management.RegisterManagementServiceHandler } func (s *Server) GatewayPathPrefix() string { diff --git a/internal/api/grpc/member/converter.go b/internal/api/grpc/member/converter.go index df53409aa5..a62e2c3238 100644 --- a/internal/api/grpc/member/converter.go +++ b/internal/api/grpc/member/converter.go @@ -2,6 +2,7 @@ package member import ( "github.com/zitadel/zitadel/internal/api/grpc/object" + "github.com/zitadel/zitadel/internal/api/grpc/user" "github.com/zitadel/zitadel/internal/domain" "github.com/zitadel/zitadel/internal/errors" "github.com/zitadel/zitadel/internal/query" @@ -33,6 +34,7 @@ func MemberToPb(assetAPIPrefix string, m *query.Member) *member_pb.Member { LastName: m.LastName, DisplayName: m.DisplayName, AvatarUrl: domain.AvatarURL(assetAPIPrefix, m.ResourceOwner, m.AvatarURL), + UserType: user.TypeToPb(m.UserType), Details: object.ToViewDetailsPb( m.Sequence, m.CreationDate, diff --git a/internal/api/grpc/org/converter.go b/internal/api/grpc/org/converter.go index f98c97e4ff..a73d77a279 100644 --- a/internal/api/grpc/org/converter.go +++ b/internal/api/grpc/org/converter.go @@ -26,7 +26,7 @@ func OrgQueryToModel(apiQuery *org_pb.OrgQuery) (query.SearchQuery, error) { case *org_pb.OrgQuery_NameQuery: return query.NewOrgNameSearchQuery(object.TextMethodToQuery(q.NameQuery.Method), q.NameQuery.Name) case *org_pb.OrgQuery_StateQuery: - return query.NewOrgStateSearchQuery(int32(q.StateQuery.State)) + return query.NewOrgStateSearchQuery(OrgStateToDomain(q.StateQuery.State)) default: return nil, errors.ThrowInvalidArgument(nil, "ORG-vR9nC", "List.Query.Invalid") } @@ -49,6 +49,8 @@ func OrgQueryToQuery(search *org_pb.OrgQuery) (query.SearchQuery, error) { return query.NewOrgDomainSearchQuery(object.TextMethodToQuery(q.DomainQuery.Method), q.DomainQuery.Domain) case *org_pb.OrgQuery_NameQuery: return query.NewOrgNameSearchQuery(object.TextMethodToQuery(q.NameQuery.Method), q.NameQuery.Name) + case *org_pb.OrgQuery_StateQuery: + return query.NewOrgStateSearchQuery(OrgStateToDomain(q.StateQuery.State)) default: return nil, errors.ThrowInvalidArgument(nil, "ADMIN-ADvsd", "List.Query.Invalid") } @@ -108,6 +110,21 @@ func OrgStateToPb(state domain.OrgState) org_pb.OrgState { } } +func OrgStateToDomain(state org_pb.OrgState) domain.OrgState { + switch state { + case org_pb.OrgState_ORG_STATE_ACTIVE: + return domain.OrgStateActive + case org_pb.OrgState_ORG_STATE_INACTIVE: + return domain.OrgStateInactive + case org_pb.OrgState_ORG_STATE_REMOVED: + return domain.OrgStateRemoved + case org_pb.OrgState_ORG_STATE_UNSPECIFIED: + fallthrough + default: + return domain.OrgStateUnspecified + } +} + func DomainQueriesToModel(queries []*org_pb.DomainSearchQuery) (_ []query.SearchQuery, err error) { q := make([]query.SearchQuery, len(queries)) for i, query := range queries { diff --git a/internal/api/grpc/server/gateway.go b/internal/api/grpc/server/gateway.go index 6c3b2fbdea..7fae522d95 100644 --- a/internal/api/grpc/server/gateway.go +++ b/internal/api/grpc/server/gateway.go @@ -7,8 +7,10 @@ import ( "strings" "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/zitadel/logging" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" + healthpb "google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/protobuf/encoding/protojson" client_middleware "github.com/zitadel/zitadel/internal/api/grpc/client/middleware" @@ -50,26 +52,84 @@ var ( ) ) -type Gateway interface { - RegisterGateway() GatewayFunc - GatewayPathPrefix() string +type Gateway struct { + mux *runtime.ServeMux + http1HostName string + connection *grpc.ClientConn } -type GatewayFunc func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) error +func (g *Gateway) Handler() http.Handler { + return addInterceptors(g.mux, g.http1HostName) +} -func CreateGateway(ctx context.Context, g Gateway, port uint16, http1HostName string) (http.Handler, string, error) { +type RegisterGatewayFunc func(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error + +func CreateGatewayWithPrefix(ctx context.Context, g WithGatewayPrefix, port uint16, http1HostName string) (http.Handler, string, error) { runtimeMux := runtime.NewServeMux(serveMuxOptions...) opts := []grpc.DialOption{ grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithUnaryInterceptor(client_middleware.DefaultTracingClient()), } - err := g.RegisterGateway()(ctx, runtimeMux, fmt.Sprintf("localhost:%d", port), opts) + connection, err := dial(ctx, port, opts) + if err != nil { + return nil, "", err + } + err = g.RegisterGateway()(ctx, runtimeMux, connection) if err != nil { return nil, "", fmt.Errorf("failed to register grpc gateway: %w", err) } return addInterceptors(runtimeMux, http1HostName), g.GatewayPathPrefix(), nil } +func CreateGateway(ctx context.Context, port uint16, http1HostName string) (*Gateway, error) { + connection, err := dial(ctx, + port, + []grpc.DialOption{ + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithUnaryInterceptor(client_middleware.DefaultTracingClient()), + }) + if err != nil { + return nil, err + } + runtimeMux := runtime.NewServeMux(append(serveMuxOptions, runtime.WithHealthzEndpoint(healthpb.NewHealthClient(connection)))...) + return &Gateway{ + mux: runtimeMux, + http1HostName: http1HostName, + connection: connection, + }, nil +} + +func RegisterGateway(ctx context.Context, gateway *Gateway, server Server) error { + err := server.RegisterGateway()(ctx, gateway.mux, gateway.connection) + if err != nil { + return fmt.Errorf("failed to register grpc gateway: %w", err) + } + return nil +} + +func dial(ctx context.Context, port uint16, opts []grpc.DialOption) (*grpc.ClientConn, error) { + endpoint := fmt.Sprintf("localhost:%d", port) + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return nil, err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + logging.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + logging.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + return conn, nil +} + func addInterceptors(handler http.Handler, http1HostName string) http.Handler { handler = http_mw.CallDurationHandler(handler) handler = http1Host(handler, http1HostName) diff --git a/internal/api/grpc/server/middleware/service_interceptor.go b/internal/api/grpc/server/middleware/service_interceptor.go index 99291e936b..a32fcfa989 100644 --- a/internal/api/grpc/server/middleware/service_interceptor.go +++ b/internal/api/grpc/server/middleware/service_interceptor.go @@ -3,14 +3,18 @@ package middleware import ( "context" + "google.golang.org/grpc" + "github.com/zitadel/zitadel/internal/api/service" _ "github.com/zitadel/zitadel/internal/statik" - "google.golang.org/grpc" ) func ServiceHandler() grpc.UnaryServerInterceptor { return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { - namer := info.Server.(interface{ AppName() string }) + namer, ok := info.Server.(interface{ AppName() string }) + if !ok { + return handler(ctx, req) + } ctx = service.WithService(ctx, namer.AppName()) return handler(ctx, req) } diff --git a/internal/api/grpc/server/server.go b/internal/api/grpc/server/server.go index 86fb625928..71eef0afa6 100644 --- a/internal/api/grpc/server/server.go +++ b/internal/api/grpc/server/server.go @@ -2,9 +2,11 @@ package server import ( "crypto/tls" + grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" "google.golang.org/grpc" "google.golang.org/grpc/credentials" + healthpb "google.golang.org/grpc/health/grpc_health_v1" "github.com/zitadel/zitadel/internal/api/authz" grpc_api "github.com/zitadel/zitadel/internal/api/grpc" @@ -16,13 +18,21 @@ import ( ) type Server interface { - Gateway RegisterServer(*grpc.Server) + RegisterGateway() RegisterGatewayFunc AppName() string MethodPrefix() string AuthMethods() authz.MethodMapping } +// WithGatewayPrefix extends the server interface with a prefix for the grpc gateway +// +// it's used for the System, Admin, Mgmt and Auth API +type WithGatewayPrefix interface { + Server + GatewayPathPrefix() string +} + func CreateServer( verifier *authz.TokenVerifier, authConfig authz.Config, @@ -40,7 +50,7 @@ func CreateServer( middleware.MetricsHandler(metricTypes, grpc_api.Probes...), middleware.NoCacheInterceptor(), middleware.ErrorHandler(), - middleware.InstanceInterceptor(queries, hostHeaderName, system_pb.SystemService_MethodPrefix), + middleware.InstanceInterceptor(queries, hostHeaderName, system_pb.SystemService_MethodPrefix, healthpb.Health_ServiceDesc.ServiceName), middleware.AccessStorageInterceptor(accessSvc), middleware.AuthorizationInterceptor(verifier, authConfig), middleware.TranslationHandler(), diff --git a/internal/api/grpc/session/v2/server.go b/internal/api/grpc/session/v2/server.go new file mode 100644 index 0000000000..22919fdb7d --- /dev/null +++ b/internal/api/grpc/session/v2/server.go @@ -0,0 +1,51 @@ +package session + +import ( + "google.golang.org/grpc" + + "github.com/zitadel/zitadel/internal/api/authz" + "github.com/zitadel/zitadel/internal/api/grpc/server" + "github.com/zitadel/zitadel/internal/command" + "github.com/zitadel/zitadel/internal/query" + "github.com/zitadel/zitadel/pkg/grpc/session/v2alpha" +) + +var _ session.SessionServiceServer = (*Server)(nil) + +type Server struct { + session.UnimplementedSessionServiceServer + command *command.Commands + query *query.Queries +} + +type Config struct{} + +func CreateServer( + command *command.Commands, + query *query.Queries, +) *Server { + return &Server{ + command: command, + query: query, + } +} + +func (s *Server) RegisterServer(grpcServer *grpc.Server) { + session.RegisterSessionServiceServer(grpcServer, s) +} + +func (s *Server) AppName() string { + return session.SessionService_ServiceDesc.ServiceName +} + +func (s *Server) MethodPrefix() string { + return session.SessionService_ServiceDesc.ServiceName +} + +func (s *Server) AuthMethods() authz.MethodMapping { + return session.SessionService_AuthMethods +} + +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return session.RegisterSessionServiceHandler +} diff --git a/internal/api/grpc/session/v2/session.go b/internal/api/grpc/session/v2/session.go new file mode 100644 index 0000000000..3e90e76a99 --- /dev/null +++ b/internal/api/grpc/session/v2/session.go @@ -0,0 +1,18 @@ +package session + +import ( + "context" + + "github.com/zitadel/zitadel/internal/api/authz" + "github.com/zitadel/zitadel/pkg/grpc/session/v2alpha" + "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +func (s *Server) GetSession(ctx context.Context, req *session.GetSessionRequest) (*session.GetSessionResponse, error) { + return &session.GetSessionResponse{ + Session: &session.Session{ + Id: req.Id, + User: &user.User{Id: authz.GetCtxData(ctx).UserID}, + }, + }, nil +} diff --git a/internal/api/grpc/system/server.go b/internal/api/grpc/system/server.go index 2d9745181a..a954cfce43 100644 --- a/internal/api/grpc/system/server.go +++ b/internal/api/grpc/system/server.go @@ -67,8 +67,8 @@ func (s *Server) AuthMethods() authz.MethodMapping { return system.SystemService_AuthMethods } -func (s *Server) RegisterGateway() server.GatewayFunc { - return system.RegisterSystemServiceHandlerFromEndpoint +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return system.RegisterSystemServiceHandler } func (s *Server) GatewayPathPrefix() string { diff --git a/internal/api/grpc/user/converter.go b/internal/api/grpc/user/converter.go index 9d0cadd993..6b56ad6632 100644 --- a/internal/api/grpc/user/converter.go +++ b/internal/api/grpc/user/converter.go @@ -254,3 +254,16 @@ func ExternalIDPViewsToExternalIDPs(externalIDPs []*query.IDPUserLink) []*domain } return idps } + +func TypeToPb(userType domain.UserType) user_pb.Type { + switch userType { + case domain.UserTypeHuman: + return user_pb.Type_TYPE_HUMAN + case domain.UserTypeMachine: + return user_pb.Type_TYPE_MACHINE + case domain.UserTypeUnspecified: + return user_pb.Type_TYPE_UNSPECIFIED + default: + return user_pb.Type_TYPE_UNSPECIFIED + } +} diff --git a/internal/api/grpc/user/user_grant.go b/internal/api/grpc/user/user_grant.go index 42292966bf..52d75326ea 100644 --- a/internal/api/grpc/user/user_grant.go +++ b/internal/api/grpc/user/user_grant.go @@ -38,6 +38,7 @@ func UserGrantToPb(assetPrefix string, grant *query.UserGrant) *user_pb.UserGran ProjectName: grant.ProjectName, AvatarUrl: domain.AvatarURL(assetPrefix, grant.UserResourceOwner, grant.AvatarURL), PreferredLoginName: grant.PreferredLoginName, + UserType: TypeToPb(grant.UserType), Details: object.ToViewDetailsPb( grant.Sequence, grant.CreationDate, diff --git a/internal/api/grpc/user/v2/server.go b/internal/api/grpc/user/v2/server.go new file mode 100644 index 0000000000..6a7a96d31d --- /dev/null +++ b/internal/api/grpc/user/v2/server.go @@ -0,0 +1,51 @@ +package user + +import ( + "google.golang.org/grpc" + + "github.com/zitadel/zitadel/internal/api/authz" + "github.com/zitadel/zitadel/internal/api/grpc/server" + "github.com/zitadel/zitadel/internal/command" + "github.com/zitadel/zitadel/internal/query" + "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +var _ user.UserServiceServer = (*Server)(nil) + +type Server struct { + user.UnimplementedUserServiceServer + command *command.Commands + query *query.Queries +} + +type Config struct{} + +func CreateServer( + command *command.Commands, + query *query.Queries, +) *Server { + return &Server{ + command: command, + query: query, + } +} + +func (s *Server) RegisterServer(grpcServer *grpc.Server) { + user.RegisterUserServiceServer(grpcServer, s) +} + +func (s *Server) AppName() string { + return user.UserService_ServiceDesc.ServiceName +} + +func (s *Server) MethodPrefix() string { + return user.UserService_ServiceDesc.ServiceName +} + +func (s *Server) AuthMethods() authz.MethodMapping { + return user.UserService_AuthMethods +} + +func (s *Server) RegisterGateway() server.RegisterGatewayFunc { + return user.RegisterUserServiceHandler +} diff --git a/internal/api/grpc/user/v2/test.go b/internal/api/grpc/user/v2/test.go new file mode 100644 index 0000000000..8b5bc38654 --- /dev/null +++ b/internal/api/grpc/user/v2/test.go @@ -0,0 +1,55 @@ +package user + +import ( + "context" + + "github.com/zitadel/zitadel/internal/api/authz" + "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +func (s *Server) TestGet(ctx context.Context, req *user.TestGetRequest) (*user.TestGetResponse, error) { + return &user.TestGetResponse{ + Ctx: req.Ctx.String(), + }, nil +} + +func (s *Server) TestPost(ctx context.Context, req *user.TestPostRequest) (*user.TestPostResponse, error) { + return &user.TestPostResponse{ + Ctx: req.Ctx.String(), + }, nil +} + +func (s *Server) TestAuth(ctx context.Context, req *user.TestAuthRequest) (*user.TestAuthResponse, error) { + reqCtx, err := authDemo(ctx, req.Ctx) + if err != nil { + return nil, err + } + return &user.TestAuthResponse{ + User: &user.User{Id: authz.GetCtxData(ctx).UserID}, + Ctx: reqCtx, + }, nil +} + +func authDemo(ctx context.Context, reqCtx *user.Context) (*user.Context, error) { + ro := authz.GetCtxData(ctx).ResourceOwner + if reqCtx == nil { + return &user.Context{Ctx: &user.Context_OrgId{OrgId: ro}}, nil + } + switch c := reqCtx.Ctx.(type) { + case *user.Context_OrgId: + if c.OrgId == ro { + return reqCtx, nil + } + return nil, errors.ThrowPermissionDenied(nil, "USER-dg4g", "Errors.User.NotAllowedOrg") + case *user.Context_OrgDomain: + if c.OrgDomain == "forbidden.com" { + return nil, errors.ThrowPermissionDenied(nil, "USER-SDg4g", "Errors.User.NotAllowedOrg") + } + return reqCtx, nil + case *user.Context_Instance: + return reqCtx, nil + default: + return reqCtx, nil + } +} diff --git a/internal/api/oidc/op.go b/internal/api/oidc/op.go index c8d72a12ed..48167f402c 100644 --- a/internal/api/oidc/op.go +++ b/internal/api/oidc/op.go @@ -73,7 +73,7 @@ type OPStorage struct { assetAPIPrefix func(ctx context.Context) string } -func NewProvider(ctx context.Context, config Config, defaultLogoutRedirectURI string, externalSecure bool, command *command.Commands, query *query.Queries, repo repository.Repository, encryptionAlg crypto.EncryptionAlgorithm, cryptoKey []byte, es *eventstore.Eventstore, projections *database.DB, userAgentCookie, instanceHandler, accessHandler func(http.Handler) http.Handler) (op.OpenIDProvider, error) { +func NewProvider(config Config, defaultLogoutRedirectURI string, externalSecure bool, command *command.Commands, query *query.Queries, repo repository.Repository, encryptionAlg crypto.EncryptionAlgorithm, cryptoKey []byte, es *eventstore.Eventstore, projections *database.DB, userAgentCookie, instanceHandler, accessHandler func(http.Handler) http.Handler) (op.OpenIDProvider, error) { opConfig, err := createOPConfig(config, defaultLogoutRedirectURI, cryptoKey) if err != nil { return nil, caos_errs.ThrowInternal(err, "OIDC-EGrqd", "cannot create op config: %w") diff --git a/internal/api/saml/provider.go b/internal/api/saml/provider.go index 8158846214..f46802f6aa 100644 --- a/internal/api/saml/provider.go +++ b/internal/api/saml/provider.go @@ -1,7 +1,6 @@ package saml import ( - "context" "fmt" "net/http" @@ -29,7 +28,6 @@ type Config struct { } func NewProvider( - ctx context.Context, conf Config, externalSecure bool, command *command.Commands, @@ -68,13 +66,13 @@ func NewProvider( accessHandler, http_utils.CopyHeadersToContext, ), + provider.WithCustomTimeFormat("2006-01-02T15:04:05.999Z"), } if !externalSecure { options = append(options, provider.WithAllowInsecure()) } return provider.NewProvider( - ctx, provStorage, HandlerPrefix, conf.ProviderConfig, diff --git a/internal/api/ui/login/renderer.go b/internal/api/ui/login/renderer.go index 7c9cf74c6c..8266b74d07 100644 --- a/internal/api/ui/login/renderer.go +++ b/internal/api/ui/login/renderer.go @@ -161,7 +161,7 @@ func CreateRenderer(pathPrefix string, staticDir http.FileSystem, staticStorage return path.Join(r.pathPrefix, EndpointMFAPrompt) }, "mfaPromptChangeUrl": func(id string, provider domain.MFAType) string { - return path.Join(r.pathPrefix, fmt.Sprintf("%s?%s=%s;%s=%v", EndpointMFAPrompt, QueryAuthRequestID, id, "provider", provider)) + return path.Join(r.pathPrefix, fmt.Sprintf("%s?%s=%s&%s=%v", EndpointMFAPrompt, QueryAuthRequestID, id, "provider", provider)) }, "mfaInitVerifyUrl": func() string { return path.Join(r.pathPrefix, EndpointMFAInitVerify) diff --git a/internal/api/ui/login/static/i18n/de.yaml b/internal/api/ui/login/static/i18n/de.yaml index b634fff2d5..5b12002119 100644 --- a/internal/api/ui/login/static/i18n/de.yaml +++ b/internal/api/ui/login/static/i18n/de.yaml @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: Geschlecht Female: weiblich Male: männlich @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: Allgemeine Geschäftsbedingungen und Datenschutz TosConfirm: Ich akzeptiere die TosLinkText: AGBs @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Powered By diff --git a/internal/api/ui/login/static/i18n/en.yaml b/internal/api/ui/login/static/i18n/en.yaml index cf7de142fb..14b0d90011 100644 --- a/internal/api/ui/login/static/i18n/en.yaml +++ b/internal/api/ui/login/static/i18n/en.yaml @@ -7,7 +7,7 @@ Login: UsernamePlaceHolder: username LoginnamePlaceHolder: username@domain ExternalUserDescription: Login with an external user. - MustBeMemberOfOrg: The user must be member of the {{.OrgName}} organisation. + MustBeMemberOfOrg: The user must be member of the {{.OrgName}} organization. RegisterButtonText: register NextButtonText: next @@ -26,7 +26,7 @@ SelectAccount: OtherUser: Other User SessionState0: active SessionState1: inactive - MustBeMemberOfOrg: The user must be member of the {{.OrgName}} organisation. + MustBeMemberOfOrg: The user must be member of the {{.OrgName}} organization. Password: Title: Password @@ -118,7 +118,7 @@ InitMFADone: MFAProvider: Provider0: Authenticator App (e.g Google/Microsoft Authenticator, Authy) Provider1: Device dependent (e.g FaceID, Windows Hello, Fingerprint) - ChooseOther: or choose an other option + ChooseOther: or choose another option VerifyMFAOTP: Title: Verify 2-Factor @@ -143,7 +143,7 @@ Passwordless: PasswordlessPrompt: Title: Passwordless setup - Description: Would you like to setup passwordless login? (Authenticationmethods of your device like FaceID, Windows Hello or Fingerprint) + Description: Would you like to setup passwordless login? (Authentication methods of your device like FaceID, Windows Hello or Fingerprint) DescriptionInit: You need to set up passwordless login. Use the link you were given to register your device. PasswordlessButtonText: Go passwordless NextButtonText: next @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: Gender Female: Female Male: Male @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Japanese: 日本語 Polish: Polski + Spanish: Español TosAndPrivacyLabel: Terms and conditions TosConfirm: I accept the TosLinkText: TOS @@ -263,9 +265,9 @@ ExternalRegistrationUserOverview: NextButtonText: save RegistrationOrg: - Title: Organisation Registration - Description: Enter your organisationname and userdata. - OrgNameLabel: Organisationname + Title: Organization Registration + Description: Enter your organization name and userdata. + OrgNameLabel: Organization name EmailLabel: E-Mail UsernameLabel: Username FirstnameLabel: First name @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Powered By @@ -334,8 +337,8 @@ Errors: NotFound: User could not be found AlreadyExists: User already exists Inactive: User is inactive - NotFoundOnOrg: User could not be found on chosen organisation - NotAllowedOrg: User is no member of the required organisation + NotFoundOnOrg: User could not be found on chosen organization + NotAllowedOrg: User is no member of the required organization NotMatchingUserID: User and user in authrequest don't match UserIDMissing: UserID is empty Invalid: Invalid userdata @@ -365,11 +368,11 @@ Errors: NotFound: Address not found NotChanged: Address not changed Username: - AlreadyExists: Username already taken + AlreadyExists: Username already taken Reserved: Username is already taken Empty: Username is empty Password: - ConfirmationWrong: Passwordconfirmation is wrong + ConfirmationWrong: Password confirmation is wrong Empty: Password is empty Invalid: Password is invalid InvalidAndLocked: Password is invalid and user is locked, contact your administrator. @@ -377,7 +380,7 @@ Errors: Invalid: Username or Password is invalid PasswordComplexityPolicy: NotFound: Password policy not found - MinLength: Password is to short + MinLength: Password is too short HasLower: Password must contain lower letter HasUpper: Password must contain upper letter HasNumber: Password must contain number @@ -413,7 +416,7 @@ Errors: CreationNotAllowed: Creation of a new user is not allowed on this Provider LinkingNotAllowed: Linking of a user is not allowed on this Provider GrantRequired: Login not possible. The user is required to have at least one grant on the application. Please contact your administrator. - ProjectRequired: Login not possible. The organisation of the user must be granted to the project. Please contact your administrator. + ProjectRequired: Login not possible. The organization of the user must be granted to the project. Please contact your administrator. IdentityProvider: InvalidConfig: Identity Provider configuration is invalid IAM: diff --git a/internal/api/ui/login/static/i18n/es.yaml b/internal/api/ui/login/static/i18n/es.yaml new file mode 100644 index 0000000000..a9ab5e9f40 --- /dev/null +++ b/internal/api/ui/login/static/i18n/es.yaml @@ -0,0 +1,429 @@ +Login: + Title: ¡Hola de nuevo! + Description: Introduce tus datos de inicio de sesión. + TitleLinking: Inicio de sesión para vincular un usuario + DescriptionLinking: Introduce tus datos de inicio de sesión para vincular tu usuario externo con un usuario ZITADEL. + LoginNameLabel: Nombre de inicio de sesión + UsernamePlaceHolder: username + LoginnamePlaceHolder: username@dominio + ExternalUserDescription: Inicia sesión con un usuario externo. + MustBeMemberOfOrg: El usuario debe ser miembro de la organización {{.OrgName}}. + RegisterButtonText: registrar + NextButtonText: siguiente + +LDAP: + Title: Inicio de sesión + Description: Introduce tus datos de inicio de sesión. + LoginNameLabel: Nombre de inicio de sesión + PasswordLabel: Contraseña + NextButtonText: siguiente + +SelectAccount: + Title: Seleccionar cuenta + Description: Utiliza tu cuenta ZITADEL + TitleLinking: Selecciona tu cuenta para vincular el usuario + DescriptionLinking: Selecciona tu cuenta para vincular con tu usuario externo. + OtherUser: Otro Usuario + SessionState0: activo + SessionState1: inactivo + MustBeMemberOfOrg: El usuario debe ser miembro de la organización {{.OrgName}}. + +Password: + Title: Contraseña + Description: Introduce tus datos de inicio de sesión. + PasswordLabel: Contraseña + MinLength: Longitud mínima + HasUppercase: Una letra mayúscula + HasLowercase: Una letra minúscula + HasNumber: Número + HasSymbol: Símbolo + Confirmation: Las contraseñas coinciden + ResetLinkText: restablecer contraseña + BackButtonText: atrás + NextButtonText: siguiente + +UsernameChange: + Title: Cambiar nombre de usuario + Description: Introduce tu nuevo nombre de usuario + UsernameLabel: Nombre de usuario + CancelButtonText: cancelar + NextButtonText: siguiente + +UsernameChangeDone: + Title: Nombre de usuario cambiado + Description: Tu nombre de usuario se cambió correctamente. + NextButtonText: siguiente + +InitPassword: + Title: Establecer contraseña + Description: Habrás recibido un código, que tendrás que introducir en el siguiente campo, para establecer tu nueva contraseña. + CodeLabel: Código + NewPasswordLabel: Nueva contraseña + NewPasswordConfirmLabel: Confirmar contraseña + ResendButtonText: reenviar código + NextButtonText: siguiente + +InitPasswordDone: + Title: Contraseña establecida + Description: La contraseña se estableció correctamente + NextButtonText: siguiente + CancelButtonText: cancelar + +InitUser: + Title: Activar usuario + Description: Verifica tu email con el siguiente código y establece tu contraseña. + CodeLabel: Código + NewPasswordLabel: Nueva contraseña + NewPasswordConfirm: Confirmar contraseña + NextButtonText: siguiente + ResendButtonText: reenviar código + +InitUserDone: + Title: Usuario activado + Description: Email verificado y contraseña establecida correctamente + NextButtonText: siguiente + CancelButtonText: cancelar + +InitMFAPrompt: + Title: Configuración de doble factor + Description: La autenticación de doble factor te proporciona seguridad adicional para tu cuenta de usuario. Ésta asegura que solo tú tienes acceso a tu cuenta. + Provider0: App autenticadora (p.e Google/Microsoft Authenticator, Authy) + Provider1: Dependiente de un dispositivo (p.e FaceID, Windows Hello, Huella dactilar) + NextButtonText: siguiente + SkipButtonText: saltar + +InitMFAOTP: + Title: Verificación de doble factor + Description: Crea tu doble factor de autenticación. Descarga una aplicación autenticadora si todavía no tienes una. + OTPDescription: Escanea el código con tu app autenticadora (p.e Google/Microsoft Authenticator, Authy) o copia el secreto e inserta el código generado más abajo. + SecretLabel: Secreto + CodeLabel: Código + NextButtonText: siguiente + CancelButtonText: cancelar + +InitMFAU2F: + Title: Añadir clave de seguridad + Description: Una clave de seguridad es un método de verificación que puede integrarse en tu teléfono móvil, con Bluetooth, o conectándolo directamente en el puerto USB de tu ordenador. + TokenNameLabel: Nombre de la clave de seguridad / dispositivo + NotSupported: WebAuthN no está soportado por tu navegador. Por favor asegúrate de que está actualizado o utiliza uno diferente (p.e. Chrome, Safari, Firefox) + RegisterTokenButtonText: Añadir clave de seguridad + ErrorRetry: Reintentar, crear un nuevo challenge o elegir un método diferente. + +InitMFADone: + Title: Clave de seguridad verificada + Description: ¡Genial! Acabas de configurar satisfactoriamente tu doble factor y has hecho que tu cuenta sea más segura. El doble factor tendrá que introducirse en cada inicio de sesión. + NextButtonText: siguiente + CancelButtonText: cancelar + +MFAProvider: + Provider0: App autenticadora (p.e Google/Microsoft Authenticator, Authy) + Provider1: Dependiente de un dispositivo (p.e FaceID, Windows Hello, Huella dactilar) + ChooseOther: o elige otra opción + +VerifyMFAOTP: + Title: Verificar doble factor + Description: Verifica tu doble factor + CodeLabel: Código + NextButtonText: siguiente + +VerifyMFAU2F: + Title: Verificación de doble factor + Description: Verifica tu doble factor de autenticación con el dispositivo registrado (p.e FaceID, Windows Hello, Huella dactilar) + NotSupported: WebAuthN no está soportado por tu navegador. Por favor asegúrate de que está actualizado o utiliza uno diferente (p.e. Chrome, Safari, Firefox) + ErrorRetry: Inténtalo nuevamente, crea una nueva petición o elige otro método. + ValidateTokenButtonText: Verificar doble factor + +Passwordless: + Title: Inicio de sesión sin contraseña + Description: Iniciar sesión con métodos de autenticación proporcionados por tu dispositivo como FaceID, Windows Hello o tu huella dactilar. + NotSupported: WebAuthN no está soportado por tu navegador. Por favor asegúrate de que está actualizado o utiliza uno diferente (p.e. Chrome, Safari, Firefox) + ErrorRetry: Inténtalo nuevamente, crea un nuevo reto (challenge) o elige un método diferente. + LoginWithPwButtonText: Inicio de sesión con contraseña + ValidateTokenButtonText: Inicio de sesión sin contraseña + +PasswordlessPrompt: + Title: Configuración de acceso sin contraseña + Description: ¿Te gustaría configurar tu inicio de sesión sin contraseña? (métodos de autenticación de tu dispositivo como FaceID, Windows Hello o tu huella dactilar) + DescriptionInit: Necesitas configurar tu inicio de sesión sin contraseña. Utiliza el enlace que se te ha proporcionado para registrar tu dispositivo. + PasswordlessButtonText: Adelante con el inicio sin contraseñas + NextButtonText: siguiente + SkipButtonText: saltar + +PasswordlessRegistration: + Title: Configuración de acceso sin contraseña + Description: Añade tu medio de autenticación proporcionando un nombre (p.e MyMobilePhone, MacBook, etc) y después haz clic en el botón 'Registrar acceso sin contraseña'. + TokenNameLabel: Nombre del dispositivo + NotSupported: WebAuthN no está soportado por tu navegador. Por favor asegúrate de que está actualizado o utiliza uno diferente (p.e. Chrome, Safari, Firefox) + RegisterTokenButtonText: Registrar acceso sin contraseña + ErrorRetry: Inténtalo nuevamente, crea un nuevo reto (challenge) o elige un método diferente. + +PasswordlessRegistrationDone: + Title: Configuración de acceso sin contraseña + Description: Se añadió con éxito el dispositivo para iniciar sesión sin contraseña. + DescriptionClose: Ya puedes cerrar esta ventana. + NextButtonText: siguiente + CancelButtonText: cancelar + +PasswordChange: + Title: Cambiar contraseña + Description: Cambia tu contraseña. Introduce tu contraseña anterior y la nueva. + OldPasswordLabel: Contraseña anterior + NewPasswordLabel: Nueva contraseña + NewPasswordConfirmLabel: Confirmación de contraseña + CancelButtonText: cancelar + NextButtonText: siguiente + Footer: Pie + +PasswordChangeDone: + Title: Cambiar contraseña + Description: Tu contraseña se cambió correctamente. + NextButtonText: siguiente + +PasswordResetDone: + Title: Se ha enviado un enlace para restablecer la contraseña + Description: Comprueba tu email para restablecer la contraseña. + NextButtonText: siguiente + +EmailVerification: + Title: Verificación de email + Description: Te hemos enviado un email para verificar tu dirección. Por favor introduce el código en el siguiente campo. + CodeLabel: Código + NextButtonText: siguiente + ResendButtonText: reenviar código + +EmailVerificationDone: + Title: Verificación de email + Description: Tu dirección de email se ha verificado correctamente. + NextButtonText: siguiente + CancelButtonText: cancelar + LoginButtonText: iniciar sesión + +RegisterOption: + Title: Opciones de registro + Description: Elige cómo te gustaría registrarte + RegisterUsernamePasswordButtonText: Con nombre de usuario y contraseña + ExternalLoginDescription: o regístrate con un usuario externo + LoginButtonText: iniciar sesión + +RegistrationUser: + Title: Registro + Description: Introduce tus datos de usuario. Tu email se utilizará como nombre de inicio de sesión. + DescriptionOrgRegister: Introduce tus datos de usuario. + EmailLabel: Email + UsernameLabel: Nombre de usuario + FirstnameLabel: Nombre + LastnameLabel: Apellidos + LanguageLabel: Idioma + German: Deutsch + English: English + Italian: Italiano + French: Français + Chinese: 简体中文 + Polish: Polski + Japanese: 日本語 + Spanish: Español + GenderLabel: Género + Female: Mujer + Male: Hombre + Diverse: Diverso / X + PasswordLabel: Contraseña + PasswordConfirmLabel: Confirmación de contraseña + TosAndPrivacyLabel: Términos y condiciones + TosConfirm: Acepto los + TosLinkText: TDS + PrivacyConfirm: Acepto la + PrivacyLinkText: política de privacidad + ExternalLogin: o regístrate con un usuario externo + BackButtonText: inicio de sesión + NextButtonText: siguiente + +ExternalRegistrationUserOverview: + Title: Registro de usuarios externos + Description: Hemos tomado los detalles de tu usuario del proveedor seleccionado. Ahora puedes cambiarlos o completarlos. + EmailLabel: Email + UsernameLabel: Nombre de usuario + FirstnameLabel: Nombre + LastnameLabel: Apellidos + NicknameLabel: Apodo + PhoneLabel: Número de teléfono + LanguageLabel: Idioma + German: Deutsch + English: English + Italian: Italiano + French: Français + Chinese: 简体中文 + Japanese: 日本語 + Polish: Polski + Spanish: Español + TosAndPrivacyLabel: Términos y condiciones + TosConfirm: Acepto los + TosLinkText: TDS + PrivacyConfirm: Acepto la + PrivacyLinkText: política de privacidad + ExternalLogin: o regístrate con un usuario externo + BackButtonText: atrás + NextButtonText: guardar + +RegistrationOrg: + Title: Registro de organización + Description: Introduce el nombre de tu organización y tus datos de usuario. + OrgNameLabel: Nombre de organización + EmailLabel: Email + UsernameLabel: Nombre de usuario + FirstnameLabel: Nombre + LastnameLabel: Apellidos + PasswordLabel: Contraseña + PasswordConfirmLabel: Confirmación de contraseña + TosAndPrivacyLabel: Términos y condiciones + TosConfirm: Acepto los + TosLinkText: TDS + PrivacyConfirm: Acepto la + PrivacyLinkText: política de privacidad + SaveButtonText: Crear organización + +LoginSuccess: + Title: Se inició sesión con éxito + AutoRedirectDescription: Se te redirigirá a tu aplicación automáticamente. Si no fuera así, haz clic en el botón siguiente. Puedes cerrar esta ventana posteriormente. + RedirectedDescription: Ya puedes cerrar esta ventana. + NextButtonText: siguiente + +LogoutDone: + Title: Cerraste sesión + Description: Cerraste la sesión con éxito. + LoginButtonText: iniciar sesión + +LinkingUsersDone: + Title: Vinculación de usuario + Description: usuario vinculado con éxito. + CancelButtonText: cancelar + NextButtonText: siguiente + +ExternalNotFound: + Title: Usuario externo no encontrado + Description: Usuario externo no encontrado. ¿Quieres vincular tu usuario o autoregistrar uno nuevo? + LinkButtonText: Vincular + AutoRegisterButtonText: registrar + TosAndPrivacyLabel: Términos y condiciones + TosConfirm: Acepto los + TosLinkText: TDS + PrivacyConfirm: Acepto la + PrivacyLinkText: política de privacidad + German: Deutsch + English: English + Italian: Italiano + French: Français + Chinese: 简体中文 + Polish: Polski + Japanese: 日本語 + Spanish: Español + +Footer: + PoweredBy: Powered By + Tos: TDS + PrivacyPolicy: Política de privacidad + Help: Ayuda + SupportEmail: Email de soporte + +Errors: + Internal: Se produjo un error interno + AuthRequest: + NotFound: No pude encontrar la petición de autenticación (authrequest) + UserAgentNotCorresponding: El User Agent no se corresponde + UserAgentNotFound: No se encontró el ID del User Agent + TokenNotFound: No se encontró el Token + RequestTypeNotSupported: El tipo de petición no está soportado + MissingParameters: Faltan parámetros requeridos + User: + NotFound: El usuario no pudo ser encontrado + AlreadyExists: El usuario ya existe + Inactive: El usuario está inactivo + NotFoundOnOrg: El usuario no pudo encontrarse en la organización elegida + NotAllowedOrg: El usuario no es miembro de la organización requerida + NotMatchingUserID: El usuario y el usuario contenido en la petición de autenticación (authrequest) no coinciden + UserIDMissing: El ID de usuario está vacío + Invalid: Datos de usuario no válidos + DomainNotAllowedAsUsername: El dominio ya está reservado y no puede usarse + NotAllowedToLink: El usuario no está autorizado para vincularse con un proveedor de inicio de sesión externo + Profile: + NotFound: Perfil no encontrado + NotChanged: El perfil no ha cambiado + Empty: El perfil está vacío + FirstNameEmpty: El nombre del perfil está vacío + LastNameEmpty: Los apellidos del perfil están vacíos + IDMissing: Falta el ID del perfil + Email: + NotFound: Email no encontrado + Invalid: El email no es válido + AlreadyVerified: El email ya ha sido verificado + NotChanged: El email no ha cambiado + Empty: El email está vacío + IDMissing: Falta el ID del email + Phone: + NotFound: Teléfono no encontrado + Invalid: El teléfono no es válido + AlreadyVerified: El teléfono ya ha sido verificado + Empty: El teléfono está vacío + NotChanged: El teléfono no ha cambiado + Address: + NotFound: Dirección no encontrada + NotChanged: La dirección no cambió + Username: + AlreadyExists: El nombre de usuario ya está cogido + Reserved: El nombre de usuario ya está cogido + Empty: El nombre de usuario está vacío + Password: + ConfirmationWrong: La confirmación de la contraseña es incorrecta + Empty: La contraseña está vacía + Invalid: La contraseña no es válida + InvalidAndLocked: La contraseña no es válida y el usuario está bloqueado, contacta con tu administrador. + UsernameOrPassword: + Invalid: El nombre de usuario o la contraseña no son válidos + PasswordComplexityPolicy: + NotFound: No se encontró una política de contraseñas + MinLength: La contraseña es demasiada corta + HasLower: La contraseña debe contener una letra minúscula + HasUpper: La contraseña debe contener una letra mayúscula + HasNumber: La contraseña debe contener un número + HasSymbol: La contraseña debe contener un símbolo + Code: + Expired: El código ha caducado + Invalid: El código no es válido + Empty: El código está vacío + CryptoCodeNil: El código criptográfico es nulo + NotFound: No pude encontrar el código + GeneratorAlgNotSupported: Algoritmo de generación no soportado + EmailVerify: + UserIDEmpty: El ID de usuario está vacío + ExternalData: + CouldNotRead: Los datos externos no pudieron leerse correctamente + MFA: + NoProviders: No hay proveedores multifactor disponibles + OTP: + AlreadyReady: El multifactor OTP (OneTimePassword) ya está configurado + NotExisting: El multifactor OTP (OneTimePassword) no existe + InvalidCode: Código no válido + NotReady: El multifactor OTP (OneTimePassword) no está listo + Locked: El usuario está bloqueado + SomethingWentWrong: Algo fue mal + NotActive: El usuario no está activo + ExternalIDP: + IDPTypeNotImplemented: El tipo de IDP no está implementado + NotAllowed: El proveedor de inicio de sesión externo no está permitido + IDPConfigIDEmpty: El ID del proveedor de identidad está vacío + ExternalUserIDEmpty: El ID de usuario externo está vacío + UserDisplayNameEmpty: El nombre mostrado del usuario está vacío + NoExternalUserData: No se recibieron datos del usuario externo + CreationNotAllowed: La creación de un nuevo usuario no está permitida para este proveedor + LinkingNotAllowed: La vinculación de un usuario no está permitida para este proveedor + GrantRequired: El inicio de sesión no es posible. Se requiere que el usuario tenga al menos una concesión sobre la aplicación. Por favor contacta con tu administrador. + ProjectRequired: El inicio de sesión no es posible. La organización del usuario debe tener el acceso concedido para el proyecto. Por favor contacta con tu administrador. + IdentityProvider: + InvalidConfig: La configuración del proveedor de identidades no es válida + IAM: + LockoutPolicy: + NotExisting: No existe política de bloqueo + Org: + LoginPolicy: + RegistrationNotAllowed: El registro no está permitido + +optional: (opcional) diff --git a/internal/api/ui/login/static/i18n/fr.yaml b/internal/api/ui/login/static/i18n/fr.yaml index f1eae1f15c..be50b4327e 100644 --- a/internal/api/ui/login/static/i18n/fr.yaml +++ b/internal/api/ui/login/static/i18n/fr.yaml @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: Genre Female: Femme Male: Homme @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: Termes et conditions TosConfirm: J'accepte les TosLinkText: TOS @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Promulgué par diff --git a/internal/api/ui/login/static/i18n/it.yaml b/internal/api/ui/login/static/i18n/it.yaml index 7231632c6e..b27e27b072 100644 --- a/internal/api/ui/login/static/i18n/it.yaml +++ b/internal/api/ui/login/static/i18n/it.yaml @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: Genere Female: Femminile Male: Maschile @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: Termini di servizio TosConfirm: Accetto i TosLinkText: Termini di servizio @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Alimentato da diff --git a/internal/api/ui/login/static/i18n/ja.yaml b/internal/api/ui/login/static/i18n/ja.yaml index a27a728b12..bdb9ec09d7 100644 --- a/internal/api/ui/login/static/i18n/ja.yaml +++ b/internal/api/ui/login/static/i18n/ja.yaml @@ -213,6 +213,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: 性別 Female: 女性 Male: 男性 @@ -245,6 +246,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: 利用規約 TosConfirm: 私は利用規約を承諾します。 TosLinkText: TOS @@ -305,6 +307,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Powered By diff --git a/internal/api/ui/login/static/i18n/pl.yaml b/internal/api/ui/login/static/i18n/pl.yaml index bdc4e33760..ca038b2561 100644 --- a/internal/api/ui/login/static/i18n/pl.yaml +++ b/internal/api/ui/login/static/i18n/pl.yaml @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: Płeć Female: Kobieta Male: Mężczyzna @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: Warunki i zasady TosConfirm: Akceptuję TosLinkText: Warunki korzystania @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Obsługiwane przez diff --git a/internal/api/ui/login/static/i18n/zh.yaml b/internal/api/ui/login/static/i18n/zh.yaml index 80f9e4f0a9..830476299f 100644 --- a/internal/api/ui/login/static/i18n/zh.yaml +++ b/internal/api/ui/login/static/i18n/zh.yaml @@ -221,6 +221,7 @@ RegistrationUser: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español GenderLabel: 性别 Female: 女性 Male: 男性 @@ -253,6 +254,7 @@ ExternalRegistrationUserOverview: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español TosAndPrivacyLabel: 条款和条款 TosConfirm: 我接受 TosLinkText: 服务条款 @@ -313,6 +315,7 @@ ExternalNotFound: Chinese: 简体中文 Polish: Polski Japanese: 日本語 + Spanish: Español Footer: PoweredBy: Powered By diff --git a/internal/api/ui/login/static/templates/external_not_found_option.html b/internal/api/ui/login/static/templates/external_not_found_option.html index 96a1197e0a..253962588a 100644 --- a/internal/api/ui/login/static/templates/external_not_found_option.html +++ b/internal/api/ui/login/static/templates/external_not_found_option.html @@ -64,6 +64,8 @@ +