chore: deps update (#11968)

# Which Problems Are Solved
This pr updates major and minor dependencies and is the first step on
getting our dependabot alerts cut down.

# How the Problems Are Solved

Depedency updates across the board eg:
- Upgrade Angular to v21
- Upgrade next.js to v16.2
- Upgrade tailwind to v4 in the login
- Upgrade vitest to v4 in the login

This is an uncompleted list refer to the changed files for a full
overview of all the updates.

# Additional Changes

Migrated all control flow in the console to the modern control flow
syntax.
Fixed the dependsOn setting for the @zitadel/login:test-unit nx target.

# Additional Context

- Closes https://github.com/zitadel/zitadel/issues/11274

---------

Co-authored-by: Max Peintner <[email protected]>
This commit is contained in:
Ramon
2026-04-02 15:53:08 +02:00
committed by GitHub
co-authored by Max Peintner
parent 891c7473ca
commit 0945195f68
241 changed files with 15156 additions and 14966 deletions
@@ -14,110 +14,139 @@
</div>
<div mat-dialog-content cdkFocusInitial autofocus>
<div *ngIf="showNew && !(dns || http)">
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION' | translate }}</p>
<p class="domain-desc">
{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTML' | translate }}
@if (showNew && !(dns || http)) {
<div>
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION' | translate }}</p>
<p class="domain-desc">
{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTML' | translate }}
</p>
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS' | translate }}</p>
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_SKIP' | translate }}</p>
</div>
}
@if (showNew && !(dns || http)) {
<cnsl-info-section [type]="InfoSectionType.WARN" class="desc">{{
'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_DESC' | translate
}}</cnsl-info-section>
}
@if (!showNew && !(dns || http)) {
<p class="desc">
{{
'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_ONGOING'
| translate: { value: domain?.validationType == 1 ? 'HTTP' : 'DNS' }
}}
</p>
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS' | translate }}</p>
<p class="domain-desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_SKIP' | translate }}</p>
</div>
}
<cnsl-info-section [type]="InfoSectionType.WARN" *ngIf="showNew && !(dns || http)" class="desc">{{
'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_DESC' | translate
}}</cnsl-info-section>
<p *ngIf="!showNew && !(dns || http)" class="desc">
{{
'ORG.PAGES.ORGDOMAIN.VERIFICATION_VALIDATION_ONGOING'
| translate: { value: domain?.validationType == 1 ? 'HTTP' : 'DNS' }
}}
</p>
<ng-container *ngIf="showNew">
<div *ngIf="http">
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_DESC' | translate: { value: domain?.domainName } }}</p>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_URL_LABEL' | translate }}</p>
<div class="domain-entry" *ngIf="http.url">
<p>{{ http.url }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="http.url"
(copiedValue)="copied = $event"
mat-icon-button
>
<i *ngIf="copied !== http.url" class="las la-clipboard"></i>
<i *ngIf="copied === http.url" class="las la-clipboard-check"></i>
</button>
@if (showNew) {
@if (http) {
<div>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_DESC' | translate: { value: domain?.domainName } }}</p>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_URL_LABEL' | translate }}</p>
@if (http.url) {
<div class="domain-entry">
<p>{{ http.url }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="http.url"
(copiedValue)="copied = $event"
mat-icon-button
>
@if (copied !== http.url) {
<i class="las la-clipboard"></i>
}
@if (copied === http.url) {
<i class="las la-clipboard-check"></i>
}
</button>
</div>
}
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_FILE_LABEL' | translate }}</p>
<button mat-stroked-button (click)="saveFile()" color="primary">{{ 'ORG.PAGES.DOWNLOAD_FILE' | translate }}</button>
</div>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_HTTP_FILE_LABEL' | translate }}</p>
<button mat-stroked-button (click)="saveFile()" color="primary">{{ 'ORG.PAGES.DOWNLOAD_FILE' | translate }}</button>
</div>
<div *ngIf="dns">
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_DESC' | translate: { value: domain?.domainName } }}</p>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_HOST_LABEL' | translate }}</p>
<div class="domain-line">
<div class="domain-entry" *ngIf="dns.token">
<p>{{ dnsChallenge }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="dnsChallenge"
(copiedValue)="copied = $event"
mat-icon-button
>
<i *ngIf="copied !== dnsChallenge" class="las la-clipboard"></i>
<i *ngIf="copied === dnsChallenge" class="las la-clipboard-check"></i>
</button>
}
@if (dns) {
<div>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_DESC' | translate: { value: domain?.domainName } }}</p>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_HOST_LABEL' | translate }}</p>
<div class="domain-line">
@if (dns.token) {
<div class="domain-entry">
<p>{{ dnsChallenge }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="dnsChallenge"
(copiedValue)="copied = $event"
mat-icon-button
>
@if (copied !== dnsChallenge) {
<i class="las la-clipboard"></i>
}
@if (copied === dnsChallenge) {
<i class="las la-clipboard-check"></i>
}
</button>
</div>
}
<span>.{{ domain?.domainName }}</span>
</div>
<span>.{{ domain?.domainName }}</span>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_CHALLENGE_LABEL' | translate }}</p>
@if (dns.token) {
<div class="domain-entry">
<p>{{ dns.token }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="dns.token"
(copiedValue)="copied = $event"
mat-icon-button
>
@if (copied !== dns.token) {
<i class="las la-clipboard"></i>
}
@if (copied === dns.token) {
<i class="las la-clipboard-check"></i>
}
</button>
</div>
}
</div>
<p class="desc">{{ 'ORG.PAGES.ORGDOMAIN.VERIFICATION_DNS_CHALLENGE_LABEL' | translate }}</p>
<div class="domain-entry" *ngIf="dns.token">
<p>{{ dns.token }}</p>
<button
color="primary"
[disabled]="copied === data.clientSecret"
matTooltip="copy to clipboard"
cnslCopyToClipboard
[valueToCopy]="dns.token"
(copiedValue)="copied = $event"
mat-icon-button
>
<i *ngIf="copied !== dns.token" class="las la-clipboard"></i>
<i *ngIf="copied === dns.token" class="las la-clipboard-check"></i>
</button>
</div>
</div>
</ng-container>
}
}
</div>
<div mat-dialog-actions class="action">
<button
*ngIf="!showNew || dns || http"
color="primary"
type="submit"
mat-raised-button
class="verify-button"
(click)="validate()"
>
{{ 'ACTIONS.VERIFY' | translate }}
</button>
<mat-spinner class="spinner" *ngIf="validating" diameter="20" mode="indeterminate"></mat-spinner>
@if (!showNew || dns || http) {
<button color="primary" type="submit" mat-raised-button class="verify-button" (click)="validate()">
{{ 'ACTIONS.VERIFY' | translate }}
</button>
}
@if (validating) {
<mat-spinner class="spinner" diameter="20" mode="indeterminate"></mat-spinner>
}
<button *ngIf="!showNew" mat-stroked-button color="primary" (click)="showNew = true">
{{ 'ORG.PAGES.ORGDOMAIN.RESETMETHOD' | translate }}
</button>
@if (!showNew) {
<button mat-stroked-button color="primary" (click)="showNew = true">
{{ 'ORG.PAGES.ORGDOMAIN.RESETMETHOD' | translate }}
</button>
}
<div>
<button color="primary" *ngIf="showNew && !(dns || http)" mat-raised-button (click)="loadHttpToken()">HTTP</button>
<button color="primary" *ngIf="showNew && !(dns || http)" mat-raised-button (click)="loadDnsToken()">DNS</button>
@if (showNew && !(dns || http)) {
<button color="primary" mat-raised-button (click)="loadHttpToken()">HTTP</button>
}
@if (showNew && !(dns || http)) {
<button color="primary" mat-raised-button (click)="loadDnsToken()">DNS</button>
}
</div>
<button mat-stroked-button (click)="closeDialog()">