diff --git a/apps/login/locales/de.json b/apps/login/locales/de.json index 8625725ef..b7f108be6 100644 --- a/apps/login/locales/de.json +++ b/apps/login/locales/de.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Sitzung konnte nicht geladen werden", "couldNotLoadAuthMethods": "Authentifizierungsmethoden konnten nicht geladen werden", "failedPrecondition": "Vorbedingung fehlgeschlagen", - "sessionNotValid": "Sitzung ist nicht gültig" + "sessionNotValid": "Sitzung ist nicht gültig", + "passwordVerificationMissing": "Passwort-Verifizierung fehlt.", + "passwordVerificationTooOld": "Passwort-Verifizierung ist zu alt. Bitte verifizieren Sie Ihr Passwort erneut." } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "Sitzung konnte nicht gefunden werden", "couldNotUpdateSession": "Sitzung konnte nicht aktualisiert werden", "userNotFound": "Benutzer nicht im System gefunden", - "couldNotDetermineRedirect": "Weiterleitungs-URL nach Passkey-Verifizierung konnte nicht ermittelt werden", - "couldNotSetSession": "Sitzung konnte nicht gesetzt werden", - "couldNotGetUser": "Benutzerdaten konnten nicht abgerufen werden", - "couldNotRetrieveSessionCookie": "Sitzungs-Cookie konnte nicht abgerufen werden" + "couldNotDetermineRedirect": "Weiterleitungs-URL nach Passkey-Verifizierung konnte nicht ermittelt werden" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "Benutzer ist bereits verifiziert!", "couldNotResendInvite": "Einladung konnte nicht erneut gesendet werden", "inviteSendFailed": "Einladungs-E-Mail konnte nicht gesendet werden", - "emailSendFailed": "Verifizierungs-E-Mail konnte nicht gesendet werden" + "emailSendFailed": "Verifizierungs-E-Mail konnte nicht gesendet werden", + "contextMissing": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut." } }, "authenticator": { diff --git a/apps/login/locales/en.json b/apps/login/locales/en.json index 433655576..abb1d298e 100644 --- a/apps/login/locales/en.json +++ b/apps/login/locales/en.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Could not load session", "couldNotLoadAuthMethods": "Could not load auth methods", "failedPrecondition": "Failed precondition", - "sessionNotValid": "Session is not valid" + "sessionNotValid": "Session is not valid", + "passwordVerificationMissing": "Password verification is missing.", + "passwordVerificationTooOld": "Password verification is too old. Please verify your password again." } }, "idp": { @@ -406,7 +408,8 @@ "userAlreadyVerified": "User is already verified!", "couldNotResendInvite": "Could not resend invite", "inviteSendFailed": "Failed to send invitation email", - "emailSendFailed": "Failed to send verification email" + "emailSendFailed": "Failed to send verification email", + "contextMissing": "An error occurred. Please try again." } }, "authenticator": { diff --git a/apps/login/locales/es.json b/apps/login/locales/es.json index 9cf8bf482..474845b15 100644 --- a/apps/login/locales/es.json +++ b/apps/login/locales/es.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "No se pudo cargar la sesión", "couldNotLoadAuthMethods": "No se pudieron cargar los métodos de autenticación", "failedPrecondition": "Precondición fallida", - "sessionNotValid": "La sesión no es válida" + "sessionNotValid": "La sesión no es válida", + "passwordVerificationMissing": "Falta la verificación de la contraseña.", + "passwordVerificationTooOld": "La verificación de la contraseña es demasiado antigua. Por favor, verifique su contraseña de nuevo." } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "No se pudo encontrar la sesión", "couldNotUpdateSession": "No se pudo actualizar la sesión", "userNotFound": "Usuario no encontrado en el sistema", - "couldNotDetermineRedirect": "No se pudo determinar la URL de redirección después de la verificación de clave de acceso", - "couldNotSetSession": "No se pudo establecer la sesión", - "couldNotGetUser": "No se pudieron recuperar los datos del usuario", - "couldNotRetrieveSessionCookie": "No se pudo recuperar la cookie de sesión" + "couldNotDetermineRedirect": "No se pudo determinar la URL de redirección después de la verificación de clave de acceso" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "¡El usuario ya está verificado!", "couldNotResendInvite": "No se pudo reenviar la invitación", "inviteSendFailed": "No se pudo enviar el correo de invitación", - "emailSendFailed": "No se pudo enviar el correo de verificación" + "emailSendFailed": "No se pudo enviar el correo electrónico de verificación", + "contextMissing": "Ocurrió un error. Por favor inténtelo de nuevo." } }, "authenticator": { diff --git a/apps/login/locales/it.json b/apps/login/locales/it.json index 518f4f6ec..d5675308a 100644 --- a/apps/login/locales/it.json +++ b/apps/login/locales/it.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Impossibile caricare la sessione", "couldNotLoadAuthMethods": "Impossibile caricare i metodi di autenticazione", "failedPrecondition": "Precondizione non soddisfatta", - "sessionNotValid": "La sessione non è valida" + "sessionNotValid": "La sessione non è valida", + "passwordVerificationMissing": "Manca la verifica della password.", + "passwordVerificationTooOld": "La verifica della password è troppo vecchia. Si prega di verificare nuovamente la password." } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "Impossibile trovare la sessione", "couldNotUpdateSession": "Impossibile aggiornare la sessione", "userNotFound": "Utente non trovato nel sistema", - "couldNotDetermineRedirect": "Impossibile determinare l'URL di reindirizzamento dopo la verifica passkey", - "couldNotSetSession": "Impossibile impostare la sessione", - "couldNotGetUser": "Impossibile recuperare i dati dell'utente", - "couldNotRetrieveSessionCookie": "Impossibile recuperare il cookie di sessione" + "couldNotDetermineRedirect": "Impossibile determinare l'URL di reindirizzamento dopo la verifica passkey" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "L'utente è già verificato!", "couldNotResendInvite": "Impossibile reinviare l'invito", "inviteSendFailed": "Impossibile inviare l'email di invito", - "emailSendFailed": "Impossibile inviare l'email di verifica" + "emailSendFailed": "Impossibile inviare l'email di verifica", + "contextMissing": "Si è verificato un errore. Riprova." } }, "authenticator": { diff --git a/apps/login/locales/ja.json b/apps/login/locales/ja.json index 57ce73c37..a12999f98 100644 --- a/apps/login/locales/ja.json +++ b/apps/login/locales/ja.json @@ -35,6 +35,22 @@ }, "required": { "loginName": "必須項目です" + }, + "errors": { + "internalError": "内部エラーが発生しました", + "couldNotGetLoginSettings": "ログイン設定を取得できませんでした", + "couldNotSearchUsers": "ユーザーを検索できませんでした", + "couldNotGetDomain": "ドメインを取得できませんでした", + "couldNotGetHost": "ホストを取得できませんでした", + "couldNotStartIDPFlow": "IDPフローを開始できませんでした", + "moreThanOneUserFound": "複数のユーザーが見つかりました。一意の識別子を指定してください。", + "userNotFound": "ユーザーがシステムに見つかりません", + "couldNotCreateSession": "ユーザーのセッションを作成できませんでした", + "initialUserNotSupported": "初期ユーザーはサポートされていません", + "usernamePasswordNotAllowed": "ユーザー名とパスワードは許可されていません!詳細については管理者にお問い合わせください。", + "passkeysNotAllowed": "パスキーは許可されていません!詳細については管理者にお問い合わせください。", + "couldNotFindIdentityProvider": "IDプロバイダーが見つかりませんでした。", + "userNotActive": "ユーザーはアクティブではありません。詳細については管理者にお問い合わせください。" } }, "password": { @@ -48,6 +64,13 @@ }, "required": { "password": "必須項目です" + }, + "errors": { + "couldNotVerifyPassword": "パスワードを確認できませんでした", + "couldNotResetPassword": "パスワードをリセットできませんでした" + }, + "info": { + "passwordResetSent": "パスワードがリセットされました。メールを確認してください" } }, "set": { @@ -66,6 +89,11 @@ "code": "必須項目です", "newPassword": "パスワードを入力してください!", "confirmPassword": "必須項目です" + }, + "errors": { + "couldNotSetPassword": "パスワードを設定できませんでした", + "couldNotResetPassword": "パスワードをリセットできませんでした", + "couldNotVerifyPassword": "パスワードを確認できませんでした" } }, "change": { @@ -79,7 +107,42 @@ "required": { "newPassword": "新しいパスワードを入力してください!", "confirmPassword": "必須項目です" + }, + "errors": { + "couldNotChangePassword": "パスワードを変更できませんでした", + "couldNotVerifyPassword": "パスワードを確認できませんでした", + "unknownError": "不明なエラー" } + }, + "errors": { + "passwordVerificationMissing": "パスワード確認がありません。", + "passwordVerificationTooOld": "パスワード確認が古すぎます。もう一度パスワードを確認してください。", + "noHostFound": "ホストが見つかりません", + "couldNotSendResetLink": "パスワードリセットリンクを送信できませんでした", + "couldNotCreateSessionForUser": "ユーザーのセッションを作成できませんでした", + "couldNotVerifyPassword": "パスワードを確認できませんでした", + "failedToAuthenticate": "認証に失敗しました。パスワード試行回数 {maxPasswordAttempts} 回中 {failedAttempts} 回失敗しました。{lockoutMessage}", + "failedToAuthenticateNoLimit": "認証に失敗しました。", + "accountLockedContactAdmin": " アカウントのロックを解除するには管理者に連絡してください", + "userNotFound": "ユーザーがシステムに見つかりません", + "initialUserNotSupported": "初期ユーザーはサポートされていません", + "userInitialStateNotSupported": "ユーザーの初期状態はサポートされていません", + "codeOrVerificationRequired": "コードを提供するか、有効なユーザー確認チェックを行う必要があります", + "verificationRequired": "ユーザー確認チェックを行う必要があります", + "couldNotLoadSession": "セッションを読み込めませんでした", + "couldNotLoadAuthMethods": "認証方法を読み込めませんでした", + "failedPrecondition": "前提条件に失敗しました", + "sessionNotValid": "セッションが無効です" + }, + "complexity": { + "length": "{minLength} 文字以上である必要があります。", + "hasSymbol": "記号を含める必要があります。", + "hasNumber": "数字を含める必要があります。", + "hasUppercase": "大文字を含める必要があります。", + "hasLowercase": "小文字を含める必要があります。", + "equals": "パスワード確認が一致しました。", + "matches": "一致します", + "doesNotMatch": "一致しません" } }, "idp": { @@ -194,7 +257,20 @@ "title": "パスキーで認証", "description": "デバイスが指紋、顔、または画面ロックの入力を求めます", "usePassword": "パスワードを使用", - "submit": "続行" + "submit": "続行", + "errors": { + "couldNotRequestChallenge": "パスキーチャレンジを要求できませんでした", + "couldNotVerifyPasskey": "パスキーを確認できませんでした", + "noResponseReceived": "パスキー確認に失敗しました - 応答がありません", + "noRedirectProvided": "パスキー確認は完了しましたが、リダイレクトが提供されませんでした", + "couldNotRetrievePasskey": "パスキーの取得中にエラーが発生しました", + "verificationCancelled": "パスキー確認がキャンセルされました", + "verificationFailed": "パスキー確認中にエラーが発生しました", + "couldNotFindSession": "セッションが見つかりませんでした", + "couldNotUpdateSession": "セッションを更新できませんでした", + "userNotFound": "ユーザーがシステムに見つかりません", + "couldNotDetermineRedirect": "パスキー確認後のリダイレクトURLを決定できませんでした" + } }, "set": { "title": "パスキーの設定", @@ -261,6 +337,13 @@ "firstname": "必須項目です", "lastname": "必須項目です", "email": "必須項目です" + }, + "errors": { + "couldNotCreateUser": "ユーザーを作成できませんでした", + "couldNotCreateSession": "セッションを作成できませんでした", + "userNotFound": "ユーザーがシステムに見つかりません", + "couldNotLinkIDP": "IDPをユーザーにリンクできませんでした", + "couldNotRegisterUser": "ユーザーを登録できませんでした" } }, "invite": { @@ -318,7 +401,8 @@ "userAlreadyVerified": "ユーザーは既に確認済みです!", "couldNotResendInvite": "招待を再送信できませんでした", "inviteSendFailed": "招待メールの送信に失敗しました", - "emailSendFailed": "確認メールの送信に失敗しました" + "emailSendFailed": "確認メールの送信に失敗しました", + "contextMissing": "エラーが発生しました。もう一度お試しください。" } }, "authenticator": { @@ -360,6 +444,14 @@ "unknownContext": "ユーザーのコンテキストを取得できませんでした。最初にユーザー名を入力するか、検索パラメータとしてloginNameを指定してください。", "sessionExpired": "現在のセッションが期限切れです。再度ログインしてください。", "failedLoading": "データの読み込みに失敗しました。再試行してください。", - "tryagain": "再試行" + "tryagain": "再試行", + "couldNotContinueSession": "セッションを継続できませんでした - ユーザー情報が不足しています" + }, + "zitadel": { + "errors": { + "errorOccured": "エラーが発生しました", + "multipleUsersFound": "複数のユーザーが見つかりました", + "userNotFound": "ユーザーがシステムに見つかりません" + } } } diff --git a/apps/login/locales/pl.json b/apps/login/locales/pl.json index 387ad83f1..7fdff2657 100644 --- a/apps/login/locales/pl.json +++ b/apps/login/locales/pl.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Nie można załadować sesji", "couldNotLoadAuthMethods": "Nie można załadować metod uwierzytelniania", "failedPrecondition": "Nie spełniono warunków wstępnych", - "sessionNotValid": "Sesja jest nieważna" + "sessionNotValid": "Sesja jest nieważna", + "passwordVerificationMissing": "Brak weryfikacji hasła.", + "passwordVerificationTooOld": "Weryfikacja hasła jest przestarzała. Proszę zweryfikować hasło ponownie." } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "Nie można znaleźć sesji", "couldNotUpdateSession": "Nie można zaktualizować sesji", "userNotFound": "Użytkownik nie znaleziony w systemie", - "couldNotDetermineRedirect": "Nie można określić adresu URL przekierowania po weryfikacji klucza dostępu", - "couldNotSetSession": "Nie można ustawić sesji", - "couldNotGetUser": "Nie można pobrać danych użytkownika", - "couldNotRetrieveSessionCookie": "Nie można pobrać pliku cookie sesji" + "couldNotDetermineRedirect": "Nie można określić adresu URL przekierowania po weryfikacji klucza dostępu" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "Użytkownik jest już zweryfikowany!", "couldNotResendInvite": "Nie udało się ponownie wysłać zaproszenia", "inviteSendFailed": "Nie udało się wysłać wiadomości e-mail z zaproszeniem", - "emailSendFailed": "Nie udało się wysłać wiadomości e-mail weryfikacyjnej" + "emailSendFailed": "Nie udało się wysłać wiadomości e-mail weryfikacyjnej", + "contextMissing": "Wystąpił błąd. Spróbuj ponownie." } }, "authenticator": { @@ -452,6 +452,6 @@ "sessionExpired": "Twoja sesja wygasła. Zaloguj się ponownie.", "failedLoading": "Nie udało się załadować danych. Spróbuj ponownie.", "tryagain": "Spróbuj ponownie", - "couldNotContinueSession": "Nie można kontynuować sesji - brakujące informacje o użytkowniku" + "couldNotContinueSession": "Nie udało się kontynuować sesji - brak informacji o użytkowniku" } } diff --git a/apps/login/locales/ru.json b/apps/login/locales/ru.json index e4d77dc2f..672138bd5 100644 --- a/apps/login/locales/ru.json +++ b/apps/login/locales/ru.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Не удалось загрузить сессию", "couldNotLoadAuthMethods": "Не удалось загрузить методы аутентификации", "failedPrecondition": "Нарушено предварительное условие", - "sessionNotValid": "Сессия недействительна" + "sessionNotValid": "Сессия недействительна", + "passwordVerificationMissing": "Отсутствует проверка пароля.", + "passwordVerificationTooOld": "Проверка пароля устарела. Пожалуйста, подтвердите пароль еще раз." } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "Не удалось найти сеанс", "couldNotUpdateSession": "Не удалось обновить сеанс", "userNotFound": "Пользователь не найден в системе", - "couldNotDetermineRedirect": "Не удалось определить URL перенаправления после проверки пасскей", - "couldNotSetSession": "Не удалось установить сеанс", - "couldNotGetUser": "Не удалось получить данные пользователя", - "couldNotRetrieveSessionCookie": "Не удалось получить cookie сеанса" + "couldNotDetermineRedirect": "Не удалось определить URL перенаправления после проверки пасскей" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "Пользователь уже подтверждён!", "couldNotResendInvite": "Не удалось повторно отправить приглашение", "inviteSendFailed": "Не удалось отправить письмо с приглашением", - "emailSendFailed": "Не удалось отправить письмо с подтверждением" + "emailSendFailed": "Не удалось отправить письмо с подтверждением", + "contextMissing": "Произошла ошибка. Пожалуйста, попробуйте еще раз." } }, "authenticator": { diff --git a/apps/login/locales/tr.json b/apps/login/locales/tr.json index 8ed9bd5ff..205380178 100644 --- a/apps/login/locales/tr.json +++ b/apps/login/locales/tr.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Oturum yüklenemedi", "couldNotLoadAuthMethods": "Kimlik doğrulama yöntemleri yüklenemedi", "failedPrecondition": "Ön koşul başarısız", - "sessionNotValid": "Oturum geçerli değil" + "sessionNotValid": "Oturum geçerli değil", + "passwordVerificationMissing": "Şifre doğrulaması eksik.", + "passwordVerificationTooOld": "Şifre doğrulaması çok eski. Lütfen şifrenizi tekrar doğrulayın." } }, "idp": { @@ -159,18 +161,6 @@ "signInWithAzureAD": "AzureAD ile Giriş", "signInWithGithub": "GitHub ile Giriş", "signInWithGitlab": "GitLab ile Giriş", - "loginSuccess": { - "title": "Giriş başarılı", - "description": "Başarıyla giriş yaptınız!" - }, - "linkingSuccess": { - "title": "Hesap bağlandı", - "description": "Hesabınızı başarıyla bağladınız!" - }, - "registerSuccess": { - "title": "Kayıt başarılı", - "description": "Başarıyla kayıt oldunuz!" - }, "loginError": { "title": "Giriş başarısız", "description": "Giriş yapılmaya çalışılırken bir hata oluştu." @@ -194,6 +184,23 @@ "description": "Kayıt işlemini tamamlayamadık.", "info": "Kayıt için organizasyon belirlenemedi. Lütfen yardım için yöneticinizle iletişime geçin.", "backToLogin": "Girişe Dön" + }, + "processing": { + "message": "Kimlik doğrulama işleniyor...", + "noRedirect": "Sunucudan yönlendirme veya hata dönmedi", + "unexpectedError": "Beklenmeyen bir hata oluştu" + }, + "errors": { + "missingParameters": "Eksik gerekli parametreler", + "missingIdpInfo": "IDP bilgisi eksik", + "idpNotFound": "Kimlik sağlayıcı bulunamadı", + "linkingNotAllowed": "Bu kimlik sağlayıcı için bağlantıya izin verilmiyor", + "linkingFailed": "Kimlik sağlayıcı hesaba bağlanamadı", + "autoLinkingFailed": "Hesap otomatik olarak bağlanamadı", + "userCreationFailed": "Kullanıcı hesabı oluşturulamadı", + "orgResolutionFailed": "Kayıt için organizasyon belirlenemedi", + "sessionCreationFailed": "Oturum oluşturulamadı veya yönlendirme belirlenemedi", + "unknownError": "Bilinmeyen bir hata oluştu" } }, "ldap": { @@ -257,7 +264,20 @@ "title": "Passkey ile kimlik doğrulama", "description": "Cihazınız parmak izinizi, yüzünüzü veya ekran kilidinizi isteyecektir", "usePassword": "Şifre kullan", - "submit": "Devam" + "submit": "Devam", + "errors": { + "couldNotRequestChallenge": "Passkey meydan okuması istenemedi", + "couldNotVerifyPasskey": "Passkey doğrulanamadı", + "noResponseReceived": "Passkey doğrulaması başarısız - yanıt alınamadı", + "noRedirectProvided": "Passkey doğrulaması tamamlandı ancak yönlendirme sağlanmadı", + "couldNotRetrievePasskey": "Passkey alınırken bir hata oluştu", + "verificationCancelled": "Passkey doğrulaması iptal edildi", + "verificationFailed": "Passkey doğrulaması sırasında bir hata oluştu", + "couldNotFindSession": "Oturum bulunamadı", + "couldNotUpdateSession": "Oturum güncellenemedi", + "userNotFound": "Kullanıcı sistemde bulunamadı", + "couldNotDetermineRedirect": "Passkey doğrulamasından sonra yönlendirme URL'si belirlenemedi" + } }, "set": { "title": "Passkey kur", @@ -386,7 +406,10 @@ "couldNotCreateSession": "Oturum oluşturulamadı", "noHostFound": "Host bulunamadı", "userAlreadyVerified": "Kullanıcı zaten doğrulanmış!", - "couldNotResendInvite": "Davet yeniden gönderilemedi" + "couldNotResendInvite": "Davet yeniden gönderilemedi", + "contextMissing": "Bir hata oluştu. Lütfen tekrar deneyin.", + "inviteSendFailed": "Davet e-postası gönderilemedi", + "emailSendFailed": "Doğrulama e-postası gönderilemedi" } }, "authenticator": { @@ -428,6 +451,7 @@ "unknownContext": "Kullanıcının bağlamı alınamadı. Önce kullanıcı adını girdiğinizden emin olun veya searchParam olarak bir loginName sağlayın.", "sessionExpired": "Mevcut oturumunuzun süresi doldu. Lütfen tekrar giriş yapın.", "failedLoading": "Veri yüklenemedi. Lütfen tekrar deneyin.", - "tryagain": "Tekrar Dene" + "tryagain": "Tekrar Dene", + "couldNotContinueSession": "Oturuma devam edilemedi - kullanıcı bilgileri eksik" } -} \ No newline at end of file +} diff --git a/apps/login/locales/uk.json b/apps/login/locales/uk.json index c7c82bea6..ba32f6030 100644 --- a/apps/login/locales/uk.json +++ b/apps/login/locales/uk.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "Не вдалося завантажити сеанс", "couldNotLoadAuthMethods": "Не вдалося завантажити методи автентифікації", "failedPrecondition": "Не виконано передумову", - "sessionNotValid": "Сеанс недійсний" + "sessionNotValid": "Сеанс недійсний", + "passwordVerificationMissing": "Відсутня перевірка пароля.", + "passwordVerificationTooOld": "Перевірка пароля застаріла. Будь ласка, перевірте пароль ще раз." } }, "idp": { @@ -406,7 +408,8 @@ "userAlreadyVerified": "Користувача вже підтверджено!", "couldNotResendInvite": "Не вдалося повторно надіслати запрошення", "inviteSendFailed": "Не вдалося надіслати лист-запрошення", - "emailSendFailed": "Не вдалося надіслати лист підтвердження" + "emailSendFailed": "Не вдалося надіслати лист підтвердження", + "contextMissing": "Сталася помилка. Будь ласка, спробуйте ще раз." } }, "authenticator": { diff --git a/apps/login/locales/zh.json b/apps/login/locales/zh.json index 00a2d0932..f699b884f 100644 --- a/apps/login/locales/zh.json +++ b/apps/login/locales/zh.json @@ -147,7 +147,9 @@ "couldNotLoadSession": "无法加载会话", "couldNotLoadAuthMethods": "无法加载验证方法", "failedPrecondition": "前置条件失败", - "sessionNotValid": "会话无效" + "sessionNotValid": "会话无效", + "passwordVerificationMissing": "缺少密码验证。", + "passwordVerificationTooOld": "密码验证已过期。请重新通过验证。" } }, "idp": { @@ -274,10 +276,7 @@ "couldNotFindSession": "找不到会话", "couldNotUpdateSession": "无法更新会话", "userNotFound": "系统中未找到用户", - "couldNotDetermineRedirect": "密钥验证后无法确定重定向URL", - "couldNotSetSession": "无法设置会话", - "couldNotGetUser": "无法检索用户数据", - "couldNotRetrieveSessionCookie": "无法检索会话Cookie" + "couldNotDetermineRedirect": "密钥验证后无法确定重定向URL" } }, "set": { @@ -409,7 +408,8 @@ "userAlreadyVerified": "用户已验证!", "couldNotResendInvite": "无法重新发送邀请", "inviteSendFailed": "发送邀请邮件失败", - "emailSendFailed": "发送验证邮件失败" + "emailSendFailed": "发送验证邮件失败", + "contextMissing": "发生错误。请重试。" } }, "authenticator": { diff --git a/apps/login/package.json b/apps/login/package.json index 2fe8b7f7f..2ffc39bc4 100644 --- a/apps/login/package.json +++ b/apps/login/package.json @@ -60,6 +60,7 @@ "@types/node": "^22.19.3", "@types/react": "19.2.7", "@types/react-dom": "19.2.3", + "@types/uuid": "^10.0.0", "@types/tinycolor2": "^1.4.6", "@typescript-eslint/eslint-plugin": "^8.52.0", "@typescript-eslint/parser": "^8.52.0", diff --git a/apps/login/src/app/(login)/authenticator/set/page.tsx b/apps/login/src/app/(login)/authenticator/set/page.tsx index a117bebe7..bb4eb0050 100644 --- a/apps/login/src/app/(login)/authenticator/set/page.tsx +++ b/apps/login/src/app/(login)/authenticator/set/page.tsx @@ -77,6 +77,11 @@ export default async function Page(props: { searchParams: Promise { return resp.identityProviders; }); - const branding = await getBrandingSettings({ serviceConfig, organization: organization ?? defaultOrganization, - }); + const branding = await getBrandingSettings({ serviceConfig, organization: organization ?? defaultOrganization }); return ( @@ -64,7 +61,8 @@ export default async function Page(props: { searchParams: Promise { if (session && session.factors?.user?.id) { - return listAuthenticationMethodTypes({ serviceConfig, userId: session.factors.user.id, - }).then((methods) => { + return listAuthenticationMethodTypes({ serviceConfig, userId: session.factors.user.id }).then((methods) => { return { factors: session?.factors, authMethods: methods.authMethodTypes ?? [], @@ -47,14 +48,16 @@ export default async function Page(props: { searchParams: Promise { + + if (!recent) { + return undefined; + } + + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((response) => { if (response?.session && response.session.factors?.user?.id) { - return listAuthenticationMethodTypes({ serviceConfig, userId: response.session.factors.user.id, - }).then((methods) => { + return listAuthenticationMethodTypes({ serviceConfig, userId: response.session.factors.user.id }).then((methods) => { return { factors: response.session?.factors, authMethods: methods.authMethodTypes ?? [], @@ -64,8 +67,7 @@ export default async function Page(props: { searchParams: Promise diff --git a/apps/login/src/app/(login)/mfa/set/page.tsx b/apps/login/src/app/(login)/mfa/set/page.tsx index db2e6f917..1b193a46c 100644 --- a/apps/login/src/app/(login)/mfa/set/page.tsx +++ b/apps/login/src/app/(login)/mfa/set/page.tsx @@ -30,8 +30,12 @@ function isSessionValid(session: Partial): { verifiedAt?: Timestamp; } { const validPassword = session?.factors?.password?.verifiedAt; - const validPasskey = session?.factors?.webAuthN?.verifiedAt; + const validPasskey = + session?.factors?.webAuthN?.verifiedAt && !!session?.factors?.webAuthN?.userVerified + ? session?.factors?.webAuthN?.verifiedAt + : undefined; const validIDP = session?.factors?.intent?.verifiedAt; + const stillValid = session.expirationDate ? timestampDate(session.expirationDate) > new Date() : true; const verifiedAt = validPassword || validPasskey || validIDP; @@ -59,8 +63,7 @@ export default async function Page(props: { searchParams: Promise { + return listAuthenticationMethodTypes({ serviceConfig, userId }).then((methods) => { return getUserByID({ serviceConfig, userId }).then((user) => { const humanUser = user.user?.type.case === "human" ? user.user?.type.value : undefined; @@ -77,7 +80,9 @@ export default async function Page(props: { searchParams: Promise { + + if (!recent) { + return undefined; + } + + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((sessionResponse) => { return getAuthMethodsAndUser(sessionResponse.session); }); } - const branding = await getBrandingSettings({ serviceConfig, organization, - }); - const loginSettings = await getLoginSettings({ serviceConfig, organization: sessionWithData.factors?.user?.organizationId, + const branding = await getBrandingSettings({ serviceConfig, organization }); + const loginSettings = await getLoginSettings({ + serviceConfig, + organization: sessionWithData?.factors?.user?.organizationId, }); - const { valid } = isSessionValid(sessionWithData); + const { valid } = sessionWithData ? isSessionValid(sessionWithData) : { valid: false }; return ( diff --git a/apps/login/src/app/(login)/otp/[method]/page.tsx b/apps/login/src/app/(login)/otp/[method]/page.tsx index 56e7ba2c0..d253aeca5 100644 --- a/apps/login/src/app/(login)/otp/[method]/page.tsx +++ b/apps/login/src/app/(login)/otp/[method]/page.tsx @@ -44,6 +44,11 @@ export default async function Page(props: { async function loadSessionById(sessionId: string, organization?: string) { const recent = await getSessionCookieById({ sessionId, organization }); + + if (!recent) { + return undefined; + } + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((response) => { if (response?.session) { return response.session; diff --git a/apps/login/src/app/(login)/passkey/page.tsx b/apps/login/src/app/(login)/passkey/page.tsx index a0b08e709..c236d626f 100644 --- a/apps/login/src/app/(login)/passkey/page.tsx +++ b/apps/login/src/app/(login)/passkey/page.tsx @@ -6,7 +6,8 @@ import { UserAvatar } from "@/components/user-avatar"; import { getSessionCookieById } from "@/lib/cookies"; import { getServiceConfig } from "@/lib/service-url"; import { loadMostRecentSession } from "@/lib/session"; -import { getBrandingSettings, getSession } from "@/lib/zitadel"; +import { getBrandingSettings, getDefaultOrg, getSession } from "@/lib/zitadel"; +import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb"; import { Metadata } from "next"; import { getTranslations } from "next-intl/server"; import { headers } from "next/headers"; @@ -24,23 +25,44 @@ export default async function Page(props: { searchParams: Promise { + // ignore error + return undefined; + }); + } + + async function loadSessionById(sessionId: string, organization?: string) { const recent = await getSessionCookieById({ sessionId, organization }); - return getSession({ serviceConfig, sessionId: recent.id, - sessionToken: recent.token, - }).then((response) => { + + if (!recent) { + return undefined; + } + + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((response) => { if (response?.session) { return response.session; } }); } - const branding = await getBrandingSettings({ serviceConfig, organization, + const branding = await getBrandingSettings({ + serviceConfig, + organization: organization ?? sessionFactors?.factors?.user?.organizationId ?? defaultOrganization, }); return ( @@ -54,14 +76,16 @@ export default async function Page(props: { searchParams: Promise

- {sessionFactors && ( + {sessionFactors ? ( - )} + ) : loginName ? ( + + ) : null}
diff --git a/apps/login/src/app/(login)/password/change/page.tsx b/apps/login/src/app/(login)/password/change/page.tsx index 4567e61c4..411e9d20d 100644 --- a/apps/login/src/app/(login)/password/change/page.tsx +++ b/apps/login/src/app/(login)/password/change/page.tsx @@ -24,19 +24,24 @@ export default async function Page(props: { searchParams: Promise )} - {sessionFactors && ( + {sessionFactors ? ( - )} + ) : loginName ? ( + + ) : null}
diff --git a/apps/login/src/app/(login)/password/page.tsx b/apps/login/src/app/(login)/password/page.tsx index 3da584e21..3962285e4 100644 --- a/apps/login/src/app/(login)/password/page.tsx +++ b/apps/login/src/app/(login)/password/page.tsx @@ -25,7 +25,7 @@ export default async function Page(props: { searchParams: Promise

- {sessionFactors && ( + {sessionFactors ? ( - )} + ) : loginName ? ( + + ) : null}
@@ -85,6 +93,7 @@ export default async function Page(props: { searchParams: Promise )} diff --git a/apps/login/src/app/(login)/password/set/page.tsx b/apps/login/src/app/(login)/password/set/page.tsx index 62d99cefc..b0528c14e 100644 --- a/apps/login/src/app/(login)/password/set/page.tsx +++ b/apps/login/src/app/(login)/password/set/page.tsx @@ -4,13 +4,22 @@ import { SetPasswordForm } from "@/components/set-password-form"; import { Translated } from "@/components/translated"; import { UserAvatar } from "@/components/user-avatar"; import { getServiceConfig } from "@/lib/service-url"; +import { UNKNOWN_USER_ID } from "@/lib/constants"; import { loadMostRecentSession } from "@/lib/session"; -import { getBrandingSettings, getLoginSettings, getPasswordComplexitySettings, getUserByID } from "@/lib/zitadel"; +import { + getBrandingSettings, + getDefaultOrg, + getLoginSettings, + getPasswordComplexitySettings, + getUserByID, + searchUsers, +} from "@/lib/zitadel"; import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb"; -import { HumanUser, User } from "@zitadel/proto/zitadel/user/v2/user_pb"; +import { User } from "@zitadel/proto/zitadel/user/v2/user_pb"; import { Metadata } from "next"; import { getTranslations } from "next-intl/server"; import { headers } from "next/headers"; +import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb"; export async function generateMetadata(): Promise { const t = await getTranslations("password"); @@ -20,39 +29,74 @@ export async function generateMetadata(): Promise { export default async function Page(props: { searchParams: Promise> }) { const searchParams = await props.searchParams; - const { userId, loginName, organization, requestId, code, initial } = searchParams; + let { userId, loginName, organization, requestId, code, initial } = searchParams; const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); + let defaultOrganization; + if (!organization) { + const org: Organization | null = await getDefaultOrg({ serviceConfig }); + if (org) { + defaultOrganization = org.id; + } + } + // also allow no session to be found (ignoreUnkownUsername) let session: Session | undefined; if (loginName) { - session = await loadMostRecentSession({ serviceConfig, sessionParams: { + session = await loadMostRecentSession({ + serviceConfig, + sessionParams: { loginName, organization, }, }); } - const branding = await getBrandingSettings({ serviceConfig, organization, + const branding = await getBrandingSettings({ serviceConfig, organization: organization ?? defaultOrganization }); + + const passwordComplexity = await getPasswordComplexitySettings({ + serviceConfig, + organization: organization ?? session?.factors?.user?.organizationId ?? defaultOrganization, }); - const passwordComplexity = await getPasswordComplexitySettings({ serviceConfig, organization: session?.factors?.user?.organizationId, + const loginSettings = await getLoginSettings({ + serviceConfig, + organization: organization ?? session?.factors?.user?.organizationId ?? defaultOrganization, }); - const loginSettings = await getLoginSettings({ serviceConfig, organization, - }); + if (!loginSettings) { + return ( + +
+ + + +
+
+ ); + } let user: User | undefined; - let displayName: string | undefined; if (userId) { - const userResponse = await getUserByID({ serviceConfig, userId, - }); + const userResponse = await getUserByID({ serviceConfig, userId }); user = userResponse.user; + } else if (loginName) { + const users = await searchUsers({ + serviceConfig, + searchValue: loginName, + loginSettings: loginSettings, + organizationId: organization, + }); - if (user?.type.case === "human") { - displayName = (user.type.value as HumanUser).profile?.displayName; + if (users.result && users.result.length === 1) { + const foundUser = users.result[0]; + userId = foundUser.userId; + user = foundUser; + } else if (loginSettings?.ignoreUnknownUsernames) { + // Prevent enumeration by pretending we found a user + userId = UNKNOWN_USER_ID; } } @@ -80,13 +124,8 @@ export default async function Page(props: { searchParams: Promise - ) : user ? ( - + ) : loginName ? ( + ) : null}
@@ -97,13 +136,16 @@ export default async function Page(props: { searchParams: Promise )} - {passwordComplexity && (loginName ?? user?.preferredLoginName) && (userId ?? session?.factors?.user?.id) ? ( + {passwordComplexity && + (loginName ?? user?.preferredLoginName) && + (userId ?? session?.factors?.user?.id ?? (loginSettings?.ignoreUnknownUsernames ? UNKNOWN_USER_ID : undefined)) ? ( diff --git a/apps/login/src/app/(login)/signedin/page.tsx b/apps/login/src/app/(login)/signedin/page.tsx index 7547e5058..bee49a06f 100644 --- a/apps/login/src/app/(login)/signedin/page.tsx +++ b/apps/login/src/app/(login)/signedin/page.tsx @@ -20,9 +20,12 @@ export async function generateMetadata(): Promise { async function loadSessionById(serviceConfig: ServiceConfig, sessionId: string, organization?: string) { const recent = await getSessionCookieById({ sessionId, organization }); - return getSession({ serviceConfig, sessionId: recent.id, - sessionToken: recent.token, - }).then((response) => { + + if (!recent) { + return undefined; + } + + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((response) => { if (response?.session) { return response.session; } @@ -37,8 +40,7 @@ export default async function Page(props: { searchParams: Promise }) { const { loginName, requestId, organization, sessionId } = searchParams; - const branding = await getBrandingSettings({ serviceConfig, organization, - }); + const branding = await getBrandingSettings({ serviceConfig, organization }); // complete device authorization flow if device requestId is present if (requestId && requestId.startsWith("device_")) { @@ -49,36 +51,36 @@ export default async function Page(props: { searchParams: Promise }) { organization: organization, }); - await completeDeviceAuthorization(requestId.replace("device_", ""), { - sessionId: cookie.id, - sessionToken: cookie.token, - }).catch((err) => { - return ( - -
-

- -

-

- -

- {err.message} -
-
-
- ); - }); + if (cookie) { + await completeDeviceAuthorization(requestId.replace("device_", ""), { + sessionId: cookie.id, + sessionToken: cookie.token, + }).catch((err) => { + return ( + +
+

+ +

+

+ +

+ {err.message} +
+
+
+ ); + }); + } } const sessionFactors = sessionId ? await loadSessionById(serviceConfig, sessionId, organization) - : await loadMostRecentSession({ serviceConfig, sessionParams: { loginName, organization }, - }); + : await loadMostRecentSession({ serviceConfig, sessionParams: { loginName, organization } }); let loginSettings; if (!requestId) { - loginSettings = await getLoginSettings({ serviceConfig, organization, - }); + loginSettings = await getLoginSettings({ serviceConfig, organization }); } return ( @@ -93,7 +95,7 @@ export default async function Page(props: { searchParams: Promise }) { diff --git a/apps/login/src/app/(login)/u2f/page.tsx b/apps/login/src/app/(login)/u2f/page.tsx index 897f74473..04f73b0ad 100644 --- a/apps/login/src/app/(login)/u2f/page.tsx +++ b/apps/login/src/app/(login)/u2f/page.tsx @@ -24,19 +24,20 @@ export default async function Page(props: { searchParams: Promise { + + if (!recent) { + return undefined; + } + + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then((response) => { if (response?.session) { return response.session; } diff --git a/apps/login/src/app/(login)/verify/page.tsx b/apps/login/src/app/(login)/verify/page.tsx index 0d687e1cc..afa1216a1 100644 --- a/apps/login/src/app/(login)/verify/page.tsx +++ b/apps/login/src/app/(login)/verify/page.tsx @@ -3,12 +3,14 @@ import { DynamicTheme } from "@/components/dynamic-theme"; import { Translated } from "@/components/translated"; import { UserAvatar } from "@/components/user-avatar"; import { VerifyForm } from "@/components/verify-form"; +import { UNKNOWN_USER_ID } from "@/lib/constants"; import { getPublicHostWithProtocol } from "@/lib/server/host"; import { sendEmailCode, sendInviteEmailCode } from "@/lib/server/verify"; import { getServiceConfig } from "@/lib/service-url"; import { loadMostRecentSession } from "@/lib/session"; -import { getBrandingSettings, getUserByID } from "@/lib/zitadel"; +import { getBrandingSettings, getLoginSettings, getUserByID, searchUsers } from "@/lib/zitadel"; import { HumanUser, User } from "@zitadel/proto/zitadel/user/v2/user_pb"; +import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb"; import { Metadata } from "next"; import { getTranslations } from "next-intl/server"; import { headers } from "next/headers"; @@ -32,6 +34,7 @@ export default async function Page(props: { searchParams: Promise }) { let user: User | undefined; let human: HumanUser | undefined; let id: string | undefined; + let loginSettings: LoginSettings | undefined; let error: string | undefined; @@ -72,6 +75,13 @@ export default async function Page(props: { searchParams: Promise }) { loginName, organization, }, + }).catch(async (error) => { + loginSettings = await getLoginSettings({ serviceConfig, organization }); + if (!loginSettings?.ignoreUnknownUsernames) { + console.error("loadMostRecentSession failed", error); + } + // ignore error, as we might not have a session yet + return undefined; }); if (doSend && sessionFactors?.factors?.user?.id) { @@ -93,8 +103,39 @@ export default async function Page(props: { searchParams: Promise }) { id = userId ?? sessionFactors?.factors?.user?.id; - if (!id) { - throw Error("Failed to get user id"); + if (!id && loginName) { + if (!loginSettings) { + loginSettings = await getLoginSettings({ serviceConfig, organization }); + } + + if (!loginSettings) { + console.error("loginSettings not found"); + return; + } + + const users = await searchUsers({ + serviceConfig, + searchValue: loginName, + loginSettings: loginSettings, + organizationId: organization, + }); + + if (users.result && users.result.length === 1) { + const foundUser = users.result[0]; + id = foundUser.userId; + user = foundUser; + if (user.type.case === "human") { + human = user.type.value as HumanUser; + } + + // If we found the user and need to send email, do it now + if (doSend && id) { + await sendEmail(id); + } + } else if (loginSettings?.ignoreUnknownUsernames) { + // Prevent enumeration by pretending we found a user + id = UNKNOWN_USER_ID; + } } const params = new URLSearchParams({ @@ -132,8 +173,16 @@ export default async function Page(props: { searchParams: Promise }) { searchParams={searchParams} > ) : ( - user && ( - + (user || loginName) && ( + ) )} @@ -163,14 +212,16 @@ export default async function Page(props: { searchParams: Promise }) { )} - + {id && ( + + )}
); diff --git a/apps/login/src/components/login-otp.tsx b/apps/login/src/components/login-otp.tsx index 170de2fd0..721373310 100644 --- a/apps/login/src/components/login-otp.tsx +++ b/apps/login/src/components/login-otp.tsx @@ -1,7 +1,7 @@ "use client"; import { completeFlowOrGetUrl } from "@/lib/client"; -import { updateSession } from "@/lib/server/session"; +import { updateOrCreateSession } from "@/lib/server/session"; import { create } from "@zitadel/client"; import { RequestChallengesSchema } from "@zitadel/proto/zitadel/session/v2/challenge_pb"; import { ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; @@ -94,7 +94,7 @@ export function LoginOTP({ host, loginName, sessionId, requestId, organization, } setLoading(true); - const response = await updateSession({ + const response = await updateOrCreateSession({ loginName, sessionId, organization, @@ -151,7 +151,7 @@ export function LoginOTP({ host, loginName, sessionId, requestId, organization, }); } - const response = await updateSession({ + const response = await updateOrCreateSession({ loginName, sessionId, organization, diff --git a/apps/login/src/components/login-passkey.test.tsx b/apps/login/src/components/login-passkey.test.tsx index a1e8c96bf..5206175ef 100644 --- a/apps/login/src/components/login-passkey.test.tsx +++ b/apps/login/src/components/login-passkey.test.tsx @@ -17,7 +17,7 @@ vi.mock("@/lib/server/passkeys", () => ({ })); vi.mock("@/lib/server/session", () => ({ - updateSession: vi.fn(), + updateOrCreateSession: vi.fn(), })); // Mock navigator.credentials @@ -67,10 +67,10 @@ describe("LoginPasskey Component", () => { mockCredentialsGet.mockClear(); const { sendPasskey } = await import("@/lib/server/passkeys"); - const { updateSession } = await import("@/lib/server/session"); + const { updateOrCreateSession } = await import("@/lib/server/session"); mockSendPasskey = vi.mocked(sendPasskey); - mockUpdateSession = vi.mocked(updateSession); + mockUpdateSession = vi.mocked(updateOrCreateSession); }); describe("Initialization and Challenge Request", () => { diff --git a/apps/login/src/components/login-passkey.tsx b/apps/login/src/components/login-passkey.tsx index ad9a65e2e..ffe377f4f 100644 --- a/apps/login/src/components/login-passkey.tsx +++ b/apps/login/src/components/login-passkey.tsx @@ -2,7 +2,7 @@ import { coerceToArrayBuffer, coerceToBase64Url } from "@/helpers/base64"; import { sendPasskey } from "@/lib/server/passkeys"; -import { updateSession } from "@/lib/server/session"; +import { updateOrCreateSession } from "@/lib/server/session"; import { create, JsonObject } from "@zitadel/client"; import { RequestChallengesSchema, UserVerificationRequirement } from "@zitadel/proto/zitadel/session/v2/challenge_pb"; import { Checks } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; @@ -38,7 +38,7 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org if (!initialized.current) { initialized.current = true; setLoading(true); - updateSessionForChallenge() + updateOrCreateSessionForChallenge() .then((response) => { const pK = response?.challenges?.webAuthN?.publicKeyCredentialRequestOptions?.publicKey; @@ -50,7 +50,7 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org return submitLoginAndContinue(pK) .catch((error) => { - setError(error); + setError(error instanceof Error ? error.message : String(error)); return; }) .finally(() => { @@ -58,7 +58,7 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org }); }) .catch((error) => { - setError(error); + setError(error instanceof Error ? error.message : String(error)); return; }) .finally(() => { @@ -68,14 +68,14 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - async function updateSessionForChallenge( + async function updateOrCreateSessionForChallenge( userVerificationRequirement: number = login ? UserVerificationRequirement.REQUIRED : UserVerificationRequirement.DISCOURAGED, ) { setError(""); setLoading(true); - const session = await updateSession({ + const sessionResponse = await updateOrCreateSession({ loginName, sessionId, organization, @@ -87,7 +87,8 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org }), requestId, }) - .catch(() => { + .catch((error) => { + console.error(error); setError(t("verify.errors.couldNotRequestChallenge")); return; }) @@ -95,12 +96,12 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org setLoading(false); }); - if (session && "error" in session && session.error) { - setError(session.error); + if (sessionResponse && "error" in sessionResponse && sessionResponse.error) { + setError(sessionResponse.error); return; } - return session; + return sessionResponse; } async function submitLogin(data: JsonObject) { @@ -238,7 +239,7 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org variant={ButtonVariants.Primary} disabled={loading} onClick={async () => { - const response = await updateSessionForChallenge().finally(() => { + const response = await updateOrCreateSessionForChallenge().finally(() => { setLoading(false); }); @@ -253,7 +254,7 @@ export function LoginPasskey({ loginName, sessionId, requestId, altPassword, org return submitLoginAndContinue(pK) .catch((error) => { - setError(error); + setError(error instanceof Error ? error.message : String(error)); return; }) .finally(() => { diff --git a/apps/login/src/components/password-form.tsx b/apps/login/src/components/password-form.tsx index b19c96fe1..2dff5e41a 100644 --- a/apps/login/src/components/password-form.tsx +++ b/apps/login/src/components/password-form.tsx @@ -23,10 +23,11 @@ type Props = { loginSettings: LoginSettings | undefined; loginName: string; organization?: string; + defaultOrganization?: string; requestId?: string; }; -export function PasswordForm({ loginSettings, loginName, organization, requestId }: Props) { +export function PasswordForm({ loginSettings, loginName, organization, defaultOrganization, requestId }: Props) { const { register, handleSubmit, formState } = useForm({ mode: "onChange", }); @@ -47,6 +48,7 @@ export function PasswordForm({ loginSettings, loginName, organization, requestId const response = await sendPassword({ loginName, organization, + defaultOrganization, checks: create(ChecksSchema, { password: { password: values.password }, }), @@ -78,10 +80,11 @@ export function PasswordForm({ loginSettings, loginName, organization, requestId const response = await resetPassword({ loginName, organization, + defaultOrganization, requestId, }) .catch(() => { - setError(t("verify.errors.couldNotResetPassword")); + setError(t("errors.couldNotSendResetLink")); return; }) .finally(() => { @@ -89,7 +92,7 @@ export function PasswordForm({ loginSettings, loginName, organization, requestId }); if (response && "error" in response) { - setError(response.error); + setError(response.error as string); return; } diff --git a/apps/login/src/components/set-password-form.tsx b/apps/login/src/components/set-password-form.tsx index 593cab9ea..10430bf79 100644 --- a/apps/login/src/components/set-password-form.tsx +++ b/apps/login/src/components/set-password-form.tsx @@ -31,6 +31,7 @@ type Props = { loginName: string; userId: string; organization?: string; + defaultOrganization?: string; requestId?: string; codeRequired: boolean; }; @@ -38,6 +39,7 @@ type Props = { export function SetPasswordForm({ passwordComplexitySettings, organization, + defaultOrganization, requestId, loginName, userId, @@ -65,6 +67,7 @@ export function SetPasswordForm({ const response = await resetPassword({ loginName, organization, + defaultOrganization, requestId, }) .catch(() => { @@ -75,7 +78,7 @@ export function SetPasswordForm({ setLoading(false); }); - if (response && "error" in response) { + if (response && "error" in response && typeof response.error === "string") { setError(response.error); return; } @@ -83,9 +86,11 @@ export function SetPasswordForm({ async function submitPassword(values: Inputs) { setLoading(true); - let payload: { userId: string; password: string; code?: string } = { + + let payload: { userId: string; password: string; code?: string; organization?: string } = { userId: userId, password: values.password, + organization, }; // this is not required for initial password setup diff --git a/apps/login/src/components/username-form.tsx b/apps/login/src/components/username-form.tsx index 89dd4c694..611b8369d 100644 --- a/apps/login/src/components/username-form.tsx +++ b/apps/login/src/components/username-form.tsx @@ -22,12 +22,22 @@ type Props = { requestId: string | undefined; loginSettings: LoginSettings | undefined; organization?: string; + defaultOrganization?: string; suffix?: string; submit: boolean; allowRegister: boolean; }; -export function UsernameForm({ loginName, requestId, organization, suffix, loginSettings, submit, allowRegister }: Props) { +export function UsernameForm({ + loginName, + requestId, + organization, + defaultOrganization, + suffix, + loginSettings, + submit, + allowRegister, +}: Props) { const { register, handleSubmit, formState } = useForm({ mode: "onChange", defaultValues: { @@ -48,8 +58,10 @@ export function UsernameForm({ loginName, requestId, organization, suffix, login const res = await sendLoginname({ loginName: values.loginName, organization, + defaultOrganization, requestId, suffix, + ignoreUnknownUsernames: loginSettings?.ignoreUnknownUsernames, }) .catch(() => { setError(t("errors.internalError")); diff --git a/apps/login/src/components/verify-form.tsx b/apps/login/src/components/verify-form.tsx index 171abbf09..d971180c5 100644 --- a/apps/login/src/components/verify-form.tsx +++ b/apps/login/src/components/verify-form.tsx @@ -2,8 +2,9 @@ import { Alert, AlertType } from "@/components/alert"; import { resendVerification, sendVerification } from "@/lib/server/verify"; +import { UNKNOWN_USER_ID } from "@/lib/constants"; import { useRouter } from "next/navigation"; -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import { useTranslations } from "next-intl"; import { useForm } from "react-hook-form"; import { BackButton } from "./back-button"; @@ -45,6 +46,13 @@ export function VerifyForm({ userId, loginName, organization, requestId, code, i setError(""); setLoading(true); + // do not send code for dummy userid that is set to prevent user enumeration + if (userId === UNKNOWN_USER_ID) { + await new Promise((resolve) => setTimeout(resolve, 1000)); + setLoading(false); + return; + } + const response = await resendVerification({ userId, isInvite: isInvite, @@ -65,8 +73,11 @@ export function VerifyForm({ userId, loginName, organization, requestId, code, i return response; } + const processedCode = useRef(undefined); + const fcn = useCallback( async function submitCodeAndContinue(value: Inputs): Promise { + setError(""); setLoading(true); const response = await sendVerification({ @@ -98,7 +109,8 @@ export function VerifyForm({ userId, loginName, organization, requestId, code, i ); useEffect(() => { - if (code) { + if (code && code !== processedCode.current) { + processedCode.current = code; fcn({ code }); } }, [code, fcn]); diff --git a/apps/login/src/lib/constants.ts b/apps/login/src/lib/constants.ts new file mode 100644 index 000000000..315686272 --- /dev/null +++ b/apps/login/src/lib/constants.ts @@ -0,0 +1 @@ +export const UNKNOWN_USER_ID = "000000000000000000"; diff --git a/apps/login/src/lib/cookies.test.ts b/apps/login/src/lib/cookies.test.ts index 0b85d5075..9205650b3 100644 --- a/apps/login/src/lib/cookies.test.ts +++ b/apps/login/src/lib/cookies.test.ts @@ -454,13 +454,14 @@ describe("cookies", () => { const result = await getMostRecentSessionCookie(); - expect(result.id).toBe("session-2"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-2"); }); - it("should reject when no session cookie exists", async () => { + it("should return undefined when no session cookie exists", async () => { mockCookies.get.mockReturnValue(undefined); - await expect(getMostRecentSessionCookie()).rejects.toBe("no session cookie found"); + await expect(getMostRecentSessionCookie()).resolves.toBeUndefined(); }); it("should handle single session", async () => { @@ -479,7 +480,8 @@ describe("cookies", () => { const result = await getMostRecentSessionCookie(); - expect(result.id).toBe("session-1"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-1"); }); }); @@ -511,8 +513,9 @@ describe("cookies", () => { const result = await getSessionCookieById({ sessionId: "session-1" }); - expect(result.id).toBe("session-1"); - expect(result.loginName).toBe("user1@example.com"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-1"); + expect(result?.loginName).toBe("user1@example.com"); }); it("should filter by organization when provided", async () => { @@ -525,19 +528,20 @@ describe("cookies", () => { organization: "org-2", }); - expect(result.id).toBe("session-2"); - expect(result.organization).toBe("org-2"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-2"); + expect(result?.organization).toBe("org-2"); }); - it("should reject if session not found", async () => { + it("should return undefined if session not found", async () => { mockCookies.get.mockReturnValue({ value: JSON.stringify([session1]), }); - await expect(getSessionCookieById({ sessionId: "non-existent" })).rejects.toBeTypeOf("undefined"); + await expect(getSessionCookieById({ sessionId: "non-existent" })).resolves.toBeUndefined(); }); - it("should reject if organization doesn't match", async () => { + it("should return undefined if organization doesn't match", async () => { mockCookies.get.mockReturnValue({ value: JSON.stringify([session1]), }); @@ -547,13 +551,13 @@ describe("cookies", () => { sessionId: "session-1", organization: "wrong-org", }), - ).rejects.toBeTypeOf("undefined"); + ).resolves.toBeUndefined(); }); - it("should reject when no session cookie exists", async () => { + it("should return undefined when no session cookie exists", async () => { mockCookies.get.mockReturnValue(undefined); - await expect(getSessionCookieById({ sessionId: "session-1" })).rejects.toBeTypeOf("undefined"); + await expect(getSessionCookieById({ sessionId: "session-1" })).resolves.toBeUndefined(); }); }); @@ -587,8 +591,9 @@ describe("cookies", () => { loginName: "user1@example.com", }); - expect(result.id).toBe("session-1"); - expect(result.loginName).toBe("user1@example.com"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-1"); + expect(result?.loginName).toBe("user1@example.com"); }); it("should filter by organization when provided", async () => { @@ -601,24 +606,23 @@ describe("cookies", () => { organization: "org-2", }); - expect(result.id).toBe("session-2"); - expect(result.organization).toBe("org-2"); + expect(result).toBeDefined(); + expect(result?.id).toBe("session-2"); + expect(result?.organization).toBe("org-2"); }); - it("should reject if session not found", async () => { + it("should return undefined if session not found", async () => { mockCookies.get.mockReturnValue({ value: JSON.stringify([session1]), }); - await expect(getSessionCookieByLoginName({ loginName: "nonexistent@example.com" })).rejects.toBe( - "no cookie found with loginName: nonexistent@example.com", - ); + await expect(getSessionCookieByLoginName({ loginName: "nonexistent@example.com" })).resolves.toBeUndefined(); }); - it("should reject when no session cookie exists", async () => { + it("should return undefined when no session cookie exists", async () => { mockCookies.get.mockReturnValue(undefined); - await expect(getSessionCookieByLoginName({ loginName: "user@example.com" })).rejects.toBe("no session cookie found"); + await expect(getSessionCookieByLoginName({ loginName: "user@example.com" })).resolves.toBeUndefined(); }); }); @@ -801,6 +805,36 @@ describe("cookies", () => { expect(result.id).toBe("session-2"); }); + it("should return undefined when no matching session found", async () => { + const session1: Cookie = { + id: "session-1", + token: "token-1", + loginName: "user@example.com", + creationTs: "1700000000000", + expirationTs: "1800000000000", + changeTs: "1700000000000", + }; + + const session2: Cookie = { + id: "session-2", + token: "token-2", + loginName: "user@example.com", + creationTs: "1700000001000", + expirationTs: "1800000001000", + changeTs: "1700000005000", + }; + + mockCookies.get.mockReturnValue({ + value: JSON.stringify([session1, session2]), + }); + + await expect( + getMostRecentCookieWithLoginname({ + loginName: "other@example.com", + }), + ).resolves.toBeUndefined(); + }); + it("should filter by organization when provided", async () => { const session1: Cookie = { id: "session-1", @@ -863,31 +897,14 @@ describe("cookies", () => { expect(result.id).toBe("session-2"); }); - it("should reject when no matching session found", async () => { - const session: Cookie = { - id: "session-1", - token: "token-1", - loginName: "other@example.com", - creationTs: "1700000000000", - expirationTs: "1800000000000", - changeTs: "1700000000000", - }; - - mockCookies.get.mockReturnValue({ - value: JSON.stringify([session]), - }); - - await expect(getMostRecentCookieWithLoginname({ loginName: "user@example.com" })).rejects.toBe( - "Could not get the context or retrieve a session", - ); - }); - - it("should reject when no session cookie exists", async () => { + it("should return undefined when no session cookie exists", async () => { mockCookies.get.mockReturnValue(undefined); - await expect(getMostRecentCookieWithLoginname({ loginName: "user@example.com" })).rejects.toBe( - "Could not read session cookie", - ); + await expect( + getMostRecentCookieWithLoginname({ + loginName: "user@example.com", + }), + ).resolves.toBeUndefined(); }); }); }); diff --git a/apps/login/src/lib/cookies.ts b/apps/login/src/lib/cookies.ts index 1be4c58ee..29dc3c38a 100644 --- a/apps/login/src/lib/cookies.ts +++ b/apps/login/src/lib/cookies.ts @@ -157,7 +157,7 @@ export async function removeSessionFromCookie({ } } -export async function getMostRecentSessionCookie(): Promise { +export async function getMostRecentSessionCookie(): Promise { const cookiesList = await cookies(); const stringifiedCookie = cookiesList.get("sessions"); @@ -170,7 +170,7 @@ export async function getMostRecentSessionCookie(): Promise { return latest; } else { - return Promise.reject("no session cookie found"); + return undefined; } } @@ -180,7 +180,7 @@ export async function getSessionCookieById({ }: { sessionId: string; organization?: string; -}): Promise> { +}): Promise | undefined> { const cookiesList = await cookies(); const stringifiedCookie = cookiesList.get("sessions"); @@ -193,10 +193,10 @@ export async function getSessionCookieById({ if (found) { return found; } else { - return Promise.reject(); + return undefined; } } else { - return Promise.reject(); + return undefined; } } @@ -206,23 +206,18 @@ export async function getSessionCookieByLoginName({ }: { loginName?: string; organization?: string; -}): Promise> { +}): Promise | undefined> { const cookiesList = await cookies(); const stringifiedCookie = cookiesList.get("sessions"); - if (stringifiedCookie?.value) { - const sessions: SessionCookie[] = JSON.parse(stringifiedCookie?.value); - const found = sessions.find((s) => - organization ? s.organization === organization && s.loginName === loginName : s.loginName === loginName, - ); - if (found) { - return found; - } else { - return Promise.reject("no cookie found with loginName: " + loginName); - } - } else { - return Promise.reject("no session cookie found"); + if (!stringifiedCookie?.value) { + return undefined; } + + const sessions: SessionCookie[] = JSON.parse(stringifiedCookie.value); + return sessions.find((s) => + organization ? s.organization === organization && s.loginName === loginName : s.loginName === loginName, + ); } /** @@ -234,22 +229,22 @@ export async function getAllSessionCookieIds(cleanup: boolean = false): Promi const cookiesList = await cookies(); const stringifiedCookie = cookiesList.get("sessions"); - if (stringifiedCookie?.value) { - const sessions: SessionCookie[] = JSON.parse(stringifiedCookie?.value); - - if (cleanup) { - const now = new Date(); - return sessions - .filter((session) => - session.expirationTs ? timestampDate(timestampFromMs(Number(session.expirationTs))) > now : true, - ) - .map((session) => session.id); - } else { - return sessions.map((session) => session.id); - } - } else { + if (!stringifiedCookie?.value) { return []; } + + const sessions: SessionCookie[] = JSON.parse(stringifiedCookie.value); + + if (cleanup) { + const now = new Date(); + return sessions + .filter((session) => + session.expirationTs ? timestampDate(timestampFromMs(Number(session.expirationTs))) > now : true, + ) + .map((session) => session.id); + } + + return sessions.map((session) => session.id); } /** @@ -261,21 +256,21 @@ export async function getAllSessions(cleanup: boolean = false): Promise[] = JSON.parse(stringifiedCookie?.value); - - if (cleanup) { - const now = new Date(); - return sessions.filter((session) => - session.expirationTs ? timestampDate(timestampFromMs(Number(session.expirationTs))) > now : true, - ); - } else { - return sessions; - } - } else { + if (!stringifiedCookie?.value) { console.log("getAllSessions: No session cookie found, returning empty array"); return []; } + + const sessions: SessionCookie[] = JSON.parse(stringifiedCookie.value); + + if (cleanup) { + const now = new Date(); + return sessions.filter((session) => + session.expirationTs ? timestampDate(timestampFromMs(Number(session.expirationTs))) > now : true, + ); + } + + return sessions; } /** @@ -294,31 +289,27 @@ export async function getMostRecentCookieWithLoginname({ const cookiesList = await cookies(); const stringifiedCookie = cookiesList.get("sessions"); - if (stringifiedCookie?.value) { - const sessions: SessionCookie[] = JSON.parse(stringifiedCookie?.value); - let filtered = sessions.filter((cookie) => { - return loginName ? cookie.loginName === loginName : true; - }); - - if (organization) { - filtered = filtered.filter((cookie) => { - return cookie.organization === organization; - }); - } - - const latest = - filtered && filtered.length - ? filtered.reduce((prev, current) => { - return prev.changeTs > current.changeTs ? prev : current; - }) - : undefined; - - if (latest) { - return latest; - } else { - return Promise.reject("Could not get the context or retrieve a session"); - } - } else { - return Promise.reject("Could not read session cookie"); + if (!stringifiedCookie?.value) { + return undefined; } + + const sessions: SessionCookie[] = JSON.parse(stringifiedCookie.value); + + let filtered = sessions; + + if (loginName) { + filtered = filtered.filter((cookie) => cookie.loginName === loginName); + } + + if (organization) { + filtered = filtered.filter((cookie) => cookie.organization === organization); + } + + if (!filtered || !filtered.length) { + return undefined; + } + + return filtered.reduce((prev, current) => { + return prev.changeTs > current.changeTs ? prev : current; + }); } diff --git a/apps/login/src/lib/self.ts b/apps/login/src/lib/self.ts index 2aeacaf33..8e2a1f5c9 100644 --- a/apps/login/src/lib/self.ts +++ b/apps/login/src/lib/self.ts @@ -11,21 +11,17 @@ const myUserService = async (serviceConfig: ServiceConfig, sessionToken: string) return createUserServiceClient(transportPromise); }; -export async function setMyPassword({ - sessionId, - password, -}: { - sessionId: string; - password: string; -}) { +export async function setMyPassword({ sessionId, password }: { sessionId: string; password: string }) { const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); const sessionCookie = await getSessionCookieById({ sessionId }); - const { session } = await getSession({ serviceConfig, sessionId: sessionCookie.id, - sessionToken: sessionCookie.token, - }); + if (!sessionCookie) { + return { error: "Could not load session cookie" }; + } + + const { session } = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }); if (!session) { return { error: "Could not load session" }; diff --git a/apps/login/src/lib/server/cookie.ts b/apps/login/src/lib/server/cookie.ts index abd1025c3..069969810 100644 --- a/apps/login/src/lib/server/cookie.ts +++ b/apps/login/src/lib/server/cookie.ts @@ -3,7 +3,7 @@ import { addSessionToCookie, updateSessionCookie } from "@/lib/cookies"; import { createSessionForUserIdAndIdpIntent, - createSessionFromChecks, + createSessionFromChecksAndChallenges, getSecuritySettings, getSession, setSession, @@ -44,7 +44,8 @@ export async function createSessionAndUpdateCookie(command: { checks: Checks; requestId: string | undefined; lifetime?: Duration; -}): Promise { + challenges?: RequestChallenges; +}): Promise<{ session: Session; sessionCookie: CustomCookieData; challenges?: Challenges }> { const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); @@ -59,12 +60,17 @@ export async function createSessionAndUpdateCookie(command: { } as Duration; // for usecases where the lifetime is not specified (user discovery) } - const createdSession = await createSessionFromChecks({ serviceConfig, checks: command.checks, + const createdSession = await createSessionFromChecksAndChallenges({ + serviceConfig, + checks: command.checks, lifetime: sessionLifetime, + challenges: command.challenges, }); if (createdSession) { - return getSession({ serviceConfig, sessionId: createdSession.sessionId, + return getSession({ + serviceConfig, + sessionId: createdSession.sessionId, sessionToken: createdSession.sessionToken, }).then(async (response) => { if (response?.session && response.session?.factors?.user?.loginName) { @@ -90,7 +96,7 @@ export async function createSessionAndUpdateCookie(command: { await addSessionToCookie({ session: sessionCookie, iFrameEnabled }); - return response.session as Session; + return { session: response.session as Session, sessionCookie, challenges: createdSession.challenges }; } else { throw "could not get session or session does not have loginName"; } @@ -128,7 +134,9 @@ export async function createSessionForIdpAndUpdateCookie({ } as Duration; } - const createdSession = await createSessionForUserIdAndIdpIntent({ serviceConfig, userId, + const createdSession = await createSessionForUserIdAndIdpIntent({ + serviceConfig, + userId, idpIntent, lifetime: sessionLifetime, }).catch((error: ErrorDetail | CredentialsCheckError) => { @@ -146,7 +154,9 @@ export async function createSessionForIdpAndUpdateCookie({ throw "Could not create session"; } - const { session } = await getSession({ serviceConfig, sessionId: createdSession.sessionId, + const { session } = await getSession({ + serviceConfig, + sessionId: createdSession.sessionId, sessionToken: createdSession.sessionToken, }); @@ -194,7 +204,9 @@ export async function setSessionAndUpdateCookie(command: { const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); - return setSession({ serviceConfig, sessionId: command.recentCookie.id, + return setSession({ + serviceConfig, + sessionId: command.recentCookie.id, sessionToken: command.recentCookie.token, challenges: command.challenges, checks: command.checks, @@ -217,40 +229,40 @@ export async function setSessionAndUpdateCookie(command: { sessionCookie.requestId = command.requestId; } - return getSession({ serviceConfig, sessionId: sessionCookie.id, - sessionToken: sessionCookie.token, - }).then(async (response) => { - if (!response?.session || !response.session.factors?.user?.loginName) { - throw "could not get session or session does not have loginName"; - } + return getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }).then( + async (response) => { + if (!response?.session || !response.session.factors?.user?.loginName) { + throw "could not get session or session does not have loginName"; + } - const { session } = response; - const newCookie: CustomCookieData = { - id: sessionCookie.id, - token: updatedSession.sessionToken, - creationTs: sessionCookie.creationTs, - expirationTs: sessionCookie.expirationTs, - // just overwrite the changeDate with the new one - changeTs: updatedSession.details?.changeDate ? `${timestampMs(updatedSession.details.changeDate)}` : "", - loginName: session.factors?.user?.loginName ?? "", - organization: session.factors?.user?.organizationId ?? "", - }; + const { session } = response; + const newCookie: CustomCookieData = { + id: sessionCookie.id, + token: updatedSession.sessionToken, + creationTs: sessionCookie.creationTs, + expirationTs: sessionCookie.expirationTs, + // just overwrite the changeDate with the new one + changeTs: updatedSession.details?.changeDate ? `${timestampMs(updatedSession.details.changeDate)}` : "", + loginName: session.factors?.user?.loginName ?? "", + organization: session.factors?.user?.organizationId ?? "", + }; - if (sessionCookie.requestId) { - newCookie.requestId = sessionCookie.requestId; - } + if (sessionCookie.requestId) { + newCookie.requestId = sessionCookie.requestId; + } - const securitySettings = await getSecuritySettings({ serviceConfig }); - const iFrameEnabled = !!securitySettings?.embeddedIframe?.enabled; + const securitySettings = await getSecuritySettings({ serviceConfig }); + const iFrameEnabled = !!securitySettings?.embeddedIframe?.enabled; - return updateSessionCookie({ - id: sessionCookie.id, - session: newCookie, - iFrameEnabled, - }).then(() => { - return { challenges: updatedSession.challenges, ...session }; - }); - }); + return updateSessionCookie({ + id: sessionCookie.id, + session: newCookie, + iFrameEnabled, + }).then(() => { + return { challenges: updatedSession.challenges, ...session }; + }); + }, + ); } else { throw "Session not be set"; } diff --git a/apps/login/src/lib/server/loginname.test.ts b/apps/login/src/lib/server/loginname.test.ts index 2f3f3d1bf..731f21630 100644 --- a/apps/login/src/lib/server/loginname.test.ts +++ b/apps/login/src/lib/server/loginname.test.ts @@ -195,7 +195,7 @@ describe("sendLoginname", () => { mockGetLoginSettings.mockResolvedValue({ allowUsernamePassword: true }); mockSearchUsers.mockResolvedValue({ result: [mockUser] }); mockCreate.mockReturnValue({}); - mockCreateSessionAndUpdateCookie.mockResolvedValue(mockSession); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); }); test("should redirect to verify when user has no authentication methods", async () => { @@ -339,6 +339,27 @@ describe("sendLoginname", () => { expect(result).toEqual({ redirect: "https://idp.example.com/auth" }); }); + + test("should NOT create session when ignoreUnknownUsernames is true", async () => { + mockGetLoginSettings.mockResolvedValue({ + allowUsernamePassword: true, + ignoreUnknownUsernames: true, + }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + const result = await sendLoginname({ + loginName: "user@example.com", + requestId: "req123", + }); + + expect(mockCreateSessionAndUpdateCookie).not.toHaveBeenCalled(); + + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); + expect((result as any).redirect).toContain("loginName=user%40example.com"); + }); }); describe("Multiple authentication methods", () => { @@ -470,6 +491,7 @@ describe("sendLoginname", () => { loginName: "user@example.com", requestId: "req123", organization: "org123", + ignoreUnknownUsernames: true, }); expect(result).toBeDefined(); @@ -646,10 +668,128 @@ describe("sendLoginname", () => { // Verify org discovery was NOT called since org was provided expect(mockGetOrgsByDomain).not.toHaveBeenCalled(); }); - }); - describe("Edge cases", () => { - test("should handle session creation failure", async () => { + test("should redirect to password when ignoreUnknownUsernames is true, allowRegister is true, but allowUsernamePassword is false (User not found)", async () => { + mockSearchUsers.mockResolvedValue({ result: [] }); + mockGetLoginSettings.mockResolvedValue({ + allowRegister: true, + allowUsernamePassword: false, + ignoreUnknownUsernames: true, + }); + mockGetActiveIdentityProviders.mockResolvedValue({ identityProviders: [] }); + + const result = await sendLoginname({ + loginName: "user@example.com", + ignoreUnknownUsernames: true, + }); + + expect(result).not.toEqual({ error: "errors.userNotFound" }); + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); + }); + + test("should redirect to password when ignoreUnknownUsernames is true, user found but rejected due to disableLoginWithEmail", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user", + details: { resourceOwner: "org123" }, + type: { case: "human", value: { email: { email: "user@example.com" }, phone: { phone: "123456" } } }, + state: UserState.ACTIVE, + }; + + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockGetLoginSettings.mockResolvedValue({ + disableLoginWithEmail: true, + ignoreUnknownUsernames: true, + }); + + const result = await sendLoginname({ + loginName: "user@example.com", + ignoreUnknownUsernames: true, + }); + + expect(result).not.toEqual({ error: "errors.userNotFound" }); + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); + }); + + test("should redirect to password when ignoreUnknownUsernames is true and more than one user found", async () => { + mockGetLoginSettings.mockResolvedValue({ + ignoreUnknownUsernames: true, + }); + mockSearchUsers.mockResolvedValue({ + result: [ + { userId: "user1", preferredLoginName: "user1@example.com" }, + { userId: "user2", preferredLoginName: "user2@example.com" }, + ], + }); + + const result = await sendLoginname({ + loginName: "user@example.com", + ignoreUnknownUsernames: true, + }); + + expect(result).not.toEqual({ error: "errors.moreThanOneUserFound" }); + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); + }); + + test("should return generic error when user not active and ignoreUnknownUsernames is true", async () => { + mockSearchUsers.mockResolvedValue({ + result: [ + { + userId: "user1", + state: UserState.ACTIVE, + preferredLoginName: "user1", + type: { case: "human", value: { email: { isVerified: true } } }, + }, + ], + }); + mockGetLoginSettings.mockResolvedValue({ + ignoreUnknownUsernames: true, + allowUsernamePassword: true, + }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + // Mock createSessionAndUpdateCookie to fail with user not active error + mockCreateSessionAndUpdateCookie.mockRejectedValue({ + rawMessage: "Errors.User.NotActive (SESSION-Gj4ko)", + }); + + const result = await sendLoginname({ loginName: "user1", ignoreUnknownUsernames: true }); + + expect(result).toEqual({ redirect: "/password?loginName=user1" }); + // With ignoreUnknownUsernames: true, we skip session creation, so this mock is NOT called + expect(mockCreateSessionAndUpdateCookie).not.toHaveBeenCalled(); + }); + + test("should NOT create session and return redirect when ignoreUnknownUsernames is true and user is valid", async () => { + mockSearchUsers.mockResolvedValue({ + result: [ + { + userId: "user1", + state: UserState.ACTIVE, + preferredLoginName: "user1", + type: { case: "human", value: { email: { isVerified: true } } }, + }, + ], + }); + mockGetLoginSettings.mockResolvedValue({ + ignoreUnknownUsernames: true, + allowUsernamePassword: true, + }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + const result = await sendLoginname({ loginName: "user1", ignoreUnknownUsernames: true }); + + expect(result).toEqual({ redirect: "/password?loginName=user1" }); + expect(mockCreateSessionAndUpdateCookie).not.toHaveBeenCalled(); + }); + + test("should redirect to password when ignoreUnknownUsernames is true and password not allowed", async () => { const mockUser = { userId: "user123", preferredLoginName: "user@example.com", @@ -658,18 +798,81 @@ describe("sendLoginname", () => { state: UserState.ACTIVE, }; - mockGetLoginSettings.mockResolvedValue({ allowUsernamePassword: true }); + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "org123", + }, + }, + }; + + mockGetLoginSettings.mockResolvedValue({ + allowUsernamePassword: false, + ignoreUnknownUsernames: true, + }); mockSearchUsers.mockResolvedValue({ result: [mockUser] }); mockCreate.mockReturnValue({}); - mockCreateSessionAndUpdateCookie.mockResolvedValue({ factors: {} }); // No user in session + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + mockListIDPLinks.mockResolvedValue({ result: [] }); + mockGetActiveIdentityProviders.mockResolvedValue({ identityProviders: [] }); const result = await sendLoginname({ loginName: "user@example.com", + ignoreUnknownUsernames: true, }); - expect(result).toEqual({ error: "errors.couldNotCreateSession" }); + expect(result).not.toEqual({ error: "errors.usernamePasswordNotAllowed" }); + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); }); + test("should redirect to password when ignoreUnknownUsernames is true and passkeys not allowed", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "org123" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "org123", + }, + }, + }; + + mockGetLoginSettings.mockResolvedValue({ + passkeysType: PasskeysType.NOT_ALLOWED, + ignoreUnknownUsernames: true, + }); + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSKEY], + }); + + const result = await sendLoginname({ + loginName: "user@example.com", + ignoreUnknownUsernames: true, + }); + + expect(result).not.toEqual({ error: "errors.passkeysNotAllowed" }); + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/password\?/); + }); + }); + + describe("Edge cases", () => { test("should handle initial user state", async () => { const mockUser = { userId: "user123", @@ -692,7 +895,7 @@ describe("sendLoginname", () => { mockGetLoginSettings.mockResolvedValue({ allowUsernamePassword: true }); mockSearchUsers.mockResolvedValue({ result: [mockUser] }); mockCreate.mockReturnValue({}); - mockCreateSessionAndUpdateCookie.mockResolvedValue(mockSession); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); const result = await sendLoginname({ loginName: "user@example.com", @@ -723,7 +926,7 @@ describe("sendLoginname", () => { mockGetLoginSettings.mockResolvedValue({ allowUsernamePassword: true }); mockSearchUsers.mockResolvedValue({ result: [mockUser] }); mockCreate.mockReturnValue({}); - mockCreateSessionAndUpdateCookie.mockResolvedValue(mockSession); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); mockListAuthenticationMethodTypes.mockResolvedValue({ authMethodTypes: [AuthenticationMethodType.PASSWORD], }); @@ -738,5 +941,225 @@ describe("sendLoginname", () => { expect(result?.redirect).toContain("organization=custom-org"); expect(result?.redirect).toContain("requestId=req123"); }); + + test("should redirect to password with INPUT loginName when ignoreUnknownUsernames is true, even if user preferredLoginName is different", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "org123" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "org123", + }, + }, + }; + + mockGetLoginSettings.mockResolvedValue({ + allowUsernamePassword: true, + ignoreUnknownUsernames: true, + }); + // Mock search result returns a user with resolved/different loginName + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + // INPUT login name is just "user" + const result = await sendLoginname({ + loginName: "user", + ignoreUnknownUsernames: true, + }); + + expect(result).toHaveProperty("redirect"); + // Expect redirect to contain input "user" not resolved "user@example.com" + expect((result as any).redirect).toContain("loginName=user"); + expect((result as any).redirect).not.toContain("loginName=user%40example.com"); + }); + + test("should redirect to passkey with INPUT loginName when ignoreUnknownUsernames is true", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "org123" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "org123", + }, + }, + }; + + mockGetLoginSettings.mockResolvedValue({ + passkeysType: PasskeysType.ALLOWED, + ignoreUnknownUsernames: true, + }); + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSKEY], + }); + + const result = await sendLoginname({ + loginName: "user", + ignoreUnknownUsernames: true, + }); + + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/passkey\?/); + expect((result as any).redirect).toContain("loginName=user"); + expect((result as any).redirect).not.toContain("loginName=user%40example.com"); + }); + + test("should redirect to passkey with INPUT loginName when ignoreUnknownUsernames is true (multi-method)", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "org123" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "org123", + }, + }, + }; + + mockGetLoginSettings.mockResolvedValue({ + passkeysType: PasskeysType.ALLOWED, + ignoreUnknownUsernames: true, + }); + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSKEY, AuthenticationMethodType.PASSWORD], + }); + + const result = await sendLoginname({ + loginName: "user", + ignoreUnknownUsernames: true, + }); + + expect(result).toHaveProperty("redirect"); + expect((result as any).redirect).toMatch(/^\/passkey\?/); + expect((result as any).redirect).toContain("loginName=user"); + expect((result as any).redirect).not.toContain("loginName=user%40example.com"); + }); + test("should use CONTEXT settings to HIDE username even if USER settings would show it", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "user-org" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "user-org", + }, + }, + }; + + // Mock implementation to return different settings based on organization + mockGetLoginSettings.mockImplementation(async (args: any) => { + if (args.organization === "context-org") { + return { allowUsernamePassword: true, ignoreUnknownUsernames: true }; + } + if (args.organization === "user-org") { + return { allowUsernamePassword: true, ignoreUnknownUsernames: false }; + } + return {}; + }); + + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + const result = await sendLoginname({ + loginName: "input-name", + organization: "context-org", // Context has ignore=true + ignoreUnknownUsernames: true, + }); + + expect(result).toHaveProperty("redirect"); + // Should result in input-name because context says HIDE + expect((result as any).redirect).toContain("loginName=input-name"); + expect((result as any).redirect).not.toContain("loginName=user%40example.com"); + }); + + test("should use CONTEXT settings to SHOW username even if USER settings would hide it", async () => { + const mockUser = { + userId: "user123", + preferredLoginName: "user@example.com", + details: { resourceOwner: "user-org" }, + type: { case: "human", value: { email: { email: "user@example.com" } } }, + state: UserState.ACTIVE, + }; + + const mockSession = { + factors: { + user: { + id: "user123", + loginName: "user@example.com", + organizationId: "user-org", + }, + }, + }; + + mockGetLoginSettings.mockImplementation(async (args: any) => { + if (args.organization === "context-org") { + return { allowUsernamePassword: true, ignoreUnknownUsernames: false }; + } + if (args.organization === "user-org") { + return { allowUsernamePassword: true, ignoreUnknownUsernames: true }; + } + return {}; + }); + + mockSearchUsers.mockResolvedValue({ result: [mockUser] }); + mockCreate.mockReturnValue({}); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ session: mockSession, sessionCookie: {} }); + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + const result = await sendLoginname({ + loginName: "input-name", + organization: "context-org", // Context has ignore=false + ignoreUnknownUsernames: false, + }); + + expect(result).toHaveProperty("redirect"); + // Should result in resolved name because context says SHOW + expect((result as any).redirect).toContain("loginName=user%40example.com"); + }); }); }); diff --git a/apps/login/src/lib/server/loginname.ts b/apps/login/src/lib/server/loginname.ts index 862d71372..e8260126e 100644 --- a/apps/login/src/lib/server/loginname.ts +++ b/apps/login/src/lib/server/loginname.ts @@ -8,6 +8,7 @@ import { headers } from "next/headers"; import { idpTypeToIdentityProviderType, idpTypeToSlug } from "../idp"; import { PasskeysType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb"; +import { IDPLink } from "@zitadel/proto/zitadel/user/v2/idp_pb"; import { UserState } from "@zitadel/proto/zitadel/user/v2/user_pb"; import { getServiceConfig } from "../service-url"; import { @@ -23,13 +24,14 @@ import { } from "../zitadel"; import { createSessionAndUpdateCookie } from "./cookie"; import { getPublicHost } from "./host"; -import { IDPLink } from "@zitadel/proto/zitadel/user/v2/idp_pb"; export type SendLoginnameCommand = { loginName: string; requestId?: string; organization?: string; + defaultOrganization?: string; suffix?: string; + ignoreUnknownUsernames?: boolean; }; const ORG_SUFFIX_REGEX = /(?<=@)(.+)/; @@ -81,6 +83,26 @@ export async function sendLoginname(command: SendLoginnameCommand) { console.log("No users found, will proceed with org discovery"); } + const preventUserEnumeration = (organization: string | undefined) => { + if (command.ignoreUnknownUsernames) { + console.log("ignoreUnknownUsernames is true, redirecting to password"); + const paramsPasswordDefault = new URLSearchParams({ + loginName: command.loginName, + }); + + if (command.requestId) { + paramsPasswordDefault.append("requestId", command.requestId); + } + + if (organization) { + paramsPasswordDefault.append("organization", organization); + } + + return { redirect: "/password?" + paramsPasswordDefault }; + } + return { error: t("errors.userNotFound") }; + }; + const redirectUserToIDP = async (userId?: string, organization?: string) => { // If userId is provided, check for user-specific IDP links first let identityProviders: IDPLink[] = []; @@ -199,6 +221,9 @@ export async function sendLoginname(command: SendLoginnameCommand) { if (users.length > 1) { console.log("multiple users found, returning error"); + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return preventUserEnumeration(command.organization); + } return { error: t("errors.moreThanOneUserFound") }; } else if (users.length == 1 && users[0].userId) { const user = users[0]; @@ -214,56 +239,84 @@ export async function sendLoginname(command: SendLoginnameCommand) { // recheck login settings after user discovery, as the search might have been done without org scope if (userLoginSettings?.disableLoginWithEmail && userLoginSettings?.disableLoginWithPhone) { if (user.preferredLoginName !== concatLoginname) { - return { error: t("errors.userNotFound") }; + return preventUserEnumeration(command.organization); } } else if (userLoginSettings?.disableLoginWithEmail) { if (user.preferredLoginName !== concatLoginname || humanUser?.phone?.phone !== command.loginName) { - return { error: t("errors.userNotFound") }; + return preventUserEnumeration(command.organization); } } else if (userLoginSettings?.disableLoginWithPhone) { if (user.preferredLoginName !== concatLoginname || humanUser?.email?.email !== command.loginName) { - return { error: t("errors.userNotFound") }; + return preventUserEnumeration(command.organization); } } - const checks = create(ChecksSchema, { - user: { search: { case: "userId", value: userId } }, - }); + let session; + if (!userLoginSettings?.ignoreUnknownUsernames) { + const checks = create(ChecksSchema, { + user: { search: { case: "userId", value: userId } }, + }); - const sessionOrError = await createSessionAndUpdateCookie({ - checks, - requestId: command.requestId, - }).catch((error) => { - if (error?.rawMessage === "Errors.User.NotActive (SESSION-Gj4ko)") { - return { error: t("errors.userNotActive") }; + const sessionOrError = await createSessionAndUpdateCookie({ + checks, + requestId: command.requestId, + }).catch((error) => { + if (error?.rawMessage === "Errors.User.NotActive (SESSION-Gj4ko)") { + return { error: t("errors.userNotActive") }; + } + throw error; + }); + + if ("error" in sessionOrError) { + return sessionOrError; } - throw error; - }); - if ("error" in sessionOrError) { - return sessionOrError; + session = sessionOrError.session; } - const session = sessionOrError; - - if (!session.factors?.user?.id) { + if (session && !session.factors?.user?.id) { return { error: t("errors.couldNotCreateSession") }; } // TODO: check if handling of userstate INITIAL is needed if (user.state === UserState.INITIAL) { + if (userLoginSettings?.ignoreUnknownUsernames) { + return preventUserEnumeration(command.organization); + } return { error: t("errors.initialUserNotSupported") }; } // Resolve organization from command or session - const organization = command.organization ?? session.factors?.user?.organizationId; + let organization = command.organization ?? session?.factors?.user?.organizationId ?? user.details?.resourceOwner; - const methods = await listAuthenticationMethodTypes({ serviceConfig, userId: session.factors?.user?.id }); + if (userLoginSettings?.ignoreUnknownUsernames) { + organization = command.organization; + if (!organization && ORG_SUFFIX_REGEX.test(command.loginName)) { + const matched = ORG_SUFFIX_REGEX.exec(command.loginName); + const suffix = matched?.[1] ?? ""; + const orgs = await getOrgsByDomain({ serviceConfig, domain: suffix }); + + if (orgs.result && orgs.result.length === 1) { + const orgToCheckForDiscovery = orgs.result[0].id; + const orgLoginSettings = await getLoginSettings({ serviceConfig, organization: orgToCheckForDiscovery }); + + if (orgLoginSettings?.allowDomainDiscovery) { + organization = orgToCheckForDiscovery; + } + } + } + } + + const methods = await listAuthenticationMethodTypes({ + serviceConfig, + userId: session?.factors?.user?.id ?? userId, + }); // always resend invite if user has no auth method set if (!methods.authMethodTypes || !methods.authMethodTypes.length) { + console.log("humanUser.email?.isVerified", humanUser?.email?.isVerified); const params = new URLSearchParams({ - loginName: session.factors?.user?.loginName as string, + loginName: (session?.factors?.user?.loginName ?? user.preferredLoginName) as string, send: "true", // set this to true to request a new code immediately invite: humanUser?.email?.isVerified ? "false" : "true", // sendInviteEmailCode results in an error if user is already initialized }); @@ -290,17 +343,21 @@ export async function sendLoginname(command: SendLoginnameCommand) { return idpResp; } + if (command.ignoreUnknownUsernames) { + return preventUserEnumeration(command.organization); + } + return { error: t("errors.usernamePasswordNotAllowed"), }; } const paramsPassword = new URLSearchParams({ - loginName: session.factors?.user?.loginName, + loginName: command.ignoreUnknownUsernames + ? command.loginName + : (session?.factors?.user?.loginName ?? user.preferredLoginName), }); - // TODO: does this have to be checked in loginSettings.allowDomainDiscovery - if (organization) { paramsPassword.append("organization", organization); } @@ -315,13 +372,18 @@ export async function sendLoginname(command: SendLoginnameCommand) { case AuthenticationMethodType.PASSKEY: // AuthenticationMethodType.AUTHENTICATION_METHOD_TYPE_PASSKEY if (userLoginSettings?.passkeysType === PasskeysType.NOT_ALLOWED) { + if (command.ignoreUnknownUsernames) { + return preventUserEnumeration(command.organization); + } return { error: t("errors.passkeysNotAllowed"), }; } const paramsPasskey = new URLSearchParams({ - loginName: session.factors?.user?.loginName, + loginName: command.ignoreUnknownUsernames + ? command.loginName + : (session?.factors?.user?.loginName ?? user.preferredLoginName), }); if (command.requestId) { paramsPasskey.append("requestId", command.requestId); @@ -346,7 +408,9 @@ export async function sendLoginname(command: SendLoginnameCommand) { // prefer passkey in favor of other methods if (methods.authMethodTypes.includes(AuthenticationMethodType.PASSKEY)) { const passkeyParams = new URLSearchParams({ - loginName: session.factors?.user?.loginName, + loginName: command.ignoreUnknownUsernames + ? command.loginName + : (session?.factors?.user?.loginName ?? user.preferredLoginName), altPassword: `${methods.authMethodTypes.includes(AuthenticationMethodType.PASSWORD) && userLoginSettings?.allowUsernamePassword}`, // show alternative password option only if allowed }); @@ -364,6 +428,9 @@ export async function sendLoginname(command: SendLoginnameCommand) { } else if (methods.authMethodTypes.includes(AuthenticationMethodType.PASSWORD)) { // Check if password authentication is allowed if (!userLoginSettings?.allowUsernamePassword) { + if (command.ignoreUnknownUsernames) { + return preventUserEnumeration(command.organization); + } return { error: "Username Password not allowed! Contact your administrator for more information.", }; @@ -371,7 +438,9 @@ export async function sendLoginname(command: SendLoginnameCommand) { // user has no passkey setup and login settings allow passwords const paramsPasswordDefault = new URLSearchParams({ - loginName: session.factors?.user?.loginName, + loginName: command.ignoreUnknownUsernames + ? command.loginName + : (session?.factors?.user?.loginName ?? user.preferredLoginName), }); if (command.requestId) { @@ -395,6 +464,13 @@ export async function sendLoginname(command: SendLoginnameCommand) { let discoveredOrganization = command.organization; let effectiveLoginSettings = loginSettingsByContext; + if (!command.organization && command.defaultOrganization) { + const defaultLoginSettings = await getLoginSettings({ serviceConfig, organization: command.defaultOrganization }); + if (defaultLoginSettings) { + effectiveLoginSettings = defaultLoginSettings; + } + } + if (!discoveredOrganization && command.loginName && ORG_SUFFIX_REGEX.test(command.loginName)) { const matched = ORG_SUFFIX_REGEX.exec(command.loginName); const suffix = matched?.[1] ?? ""; @@ -428,7 +504,8 @@ export async function sendLoginname(command: SendLoginnameCommand) { return resp; } console.log("IDP redirect failed, returning user not found"); - return { error: t("errors.userNotFound") }; + + return preventUserEnumeration(discoveredOrganization); } else if (effectiveLoginSettings?.allowRegister && effectiveLoginSettings?.allowUsernamePassword) { console.log("register and password both allowed"); // do not register user if ignoreUnknownUsernames is set @@ -453,23 +530,5 @@ export async function sendLoginname(command: SendLoginnameCommand) { } } - if (effectiveLoginSettings?.ignoreUnknownUsernames) { - console.log("ignoreUnknownUsernames is true, redirecting to password"); - const paramsPasswordDefault = new URLSearchParams({ - loginName: command.loginName, - }); - - if (command.requestId) { - paramsPasswordDefault.append("requestId", command.requestId); - } - - if (discoveredOrganization) { - paramsPasswordDefault.append("organization", discoveredOrganization); - } - - return { redirect: "/password?" + paramsPasswordDefault }; - } - - console.log("no valid registration option found, returning user not found"); - return { error: t("errors.userNotFound") }; + return preventUserEnumeration(discoveredOrganization); } diff --git a/apps/login/src/lib/server/passkeys.test.ts b/apps/login/src/lib/server/passkeys.test.ts index 5cc59c725..5b1a4601d 100644 --- a/apps/login/src/lib/server/passkeys.test.ts +++ b/apps/login/src/lib/server/passkeys.test.ts @@ -20,10 +20,12 @@ vi.mock("../service-url", () => ({ vi.mock("../zitadel", () => ({ getLoginSettings: vi.fn(), getUserByID: vi.fn(), + listUsers: vi.fn(), })); vi.mock("./cookie", () => ({ setSessionAndUpdateCookie: vi.fn(), + createSessionAndUpdateCookie: vi.fn(), })); vi.mock("../cookies", () => ({ @@ -50,7 +52,9 @@ describe("sendPasskey", () => { let mockGetServiceUrlFromHeaders: any; let mockGetLoginSettings: any; let mockGetUserByID: any; + let mockListUsers: any; let mockSetSessionAndUpdateCookie: any; + let mockCreateSessionAndUpdateCookie: any; let mockGetSessionCookieById: any; let mockGetSessionCookieByLoginName: any; let mockGetMostRecentSessionCookie: any; @@ -63,8 +67,8 @@ describe("sendPasskey", () => { // Import mocked modules const { headers } = await import("next/headers"); const { getServiceConfig } = await import("../service-url"); - const { getLoginSettings, getUserByID } = await import("../zitadel"); - const { setSessionAndUpdateCookie } = await import("./cookie"); + const { getLoginSettings, getUserByID, listUsers } = await import("../zitadel"); + const { setSessionAndUpdateCookie, createSessionAndUpdateCookie } = await import("./cookie"); const { getSessionCookieById, getSessionCookieByLoginName, getMostRecentSessionCookie } = await import("../cookies"); const { checkEmailVerification } = await import("../verify-helper"); const { completeFlowOrGetUrl } = await import("../client"); @@ -74,7 +78,13 @@ describe("sendPasskey", () => { mockGetServiceUrlFromHeaders = vi.mocked(getServiceConfig); mockGetLoginSettings = vi.mocked(getLoginSettings); mockGetUserByID = vi.mocked(getUserByID); + mockListUsers = vi.mocked(listUsers); mockSetSessionAndUpdateCookie = vi.mocked(setSessionAndUpdateCookie); + mockCreateSessionAndUpdateCookie = vi.mocked(createSessionAndUpdateCookie); + mockCreateSessionAndUpdateCookie.mockResolvedValue({ + session: { id: "new-session", factors: { user: { id: "user-1", loginName: "user" } } } as any, + sessionCookie: { id: "new-session", token: "token", loginName: "user" }, + }); mockGetSessionCookieById = vi.mocked(getSessionCookieById); mockGetSessionCookieByLoginName = vi.mocked(getSessionCookieByLoginName); mockGetMostRecentSessionCookie = vi.mocked(getMostRecentSessionCookie); @@ -82,7 +92,9 @@ describe("sendPasskey", () => { mockCompleteFlowOrGetUrl = vi.mocked(completeFlowOrGetUrl); // Default mock implementations - mockHeaders.mockResolvedValue(new Headers()); + const headersList = new Headers(); + headersList.set("host", "test.com"); + mockHeaders.mockResolvedValue(headersList); mockGetServiceUrlFromHeaders.mockReturnValue({ serviceUrl: "https://example.com", }); @@ -104,7 +116,7 @@ describe("sendPasskey", () => { }); expect(result).toEqual({ - error: "verify.errors.couldNotFindSession", + error: "couldNotFindSession", }); expect(mockGetSessionCookieById).toHaveBeenCalledWith({ sessionId: "test-session-id", @@ -112,7 +124,8 @@ describe("sendPasskey", () => { }); test("should return error when session cookie is not found by loginName", async () => { - mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockGetSessionCookieByLoginName.mockResolvedValue(null); // Not found + mockCreateSessionAndUpdateCookie.mockRejectedValue(new Error("Creation failed")); // Force creation failure const result = await sendPasskey({ loginName: "test@example.com", @@ -121,7 +134,7 @@ describe("sendPasskey", () => { }); expect(result).toEqual({ - error: "verify.errors.couldNotFindSession", + error: "couldNotFindSession", }); expect(mockGetSessionCookieByLoginName).toHaveBeenCalledWith({ loginName: "test@example.com", @@ -137,7 +150,7 @@ describe("sendPasskey", () => { }); expect(result).toEqual({ - error: "verify.errors.couldNotFindSession", + error: "couldNotFindSession", }); expect(mockGetMostRecentSessionCookie).toHaveBeenCalled(); }); @@ -163,7 +176,7 @@ describe("sendPasskey", () => { }); expect(result).toEqual({ - error: "verify.errors.couldNotUpdateSession", + error: "couldNotUpdateSession", }); }); @@ -176,9 +189,59 @@ describe("sendPasskey", () => { }); expect(result).toEqual({ - error: "verify.errors.couldNotUpdateSession", + error: "couldNotUpdateSession", }); }); + + test("should fallback to createSessionAndUpdateCookie when setSessionAndUpdateCookie fails and checks are present", async () => { + mockSetSessionAndUpdateCookie.mockRejectedValue(new Error("session already terminated")); + + mockCreateSessionAndUpdateCookie.mockResolvedValue({ + session: { + id: "new-session-123", + factors: { + user: { + id: "user-123", + loginName: "test@example.com", + }, + }, + }, + sessionCookie: { + id: "new-session-123", + token: "new-token", + }, + }); + + mockListUsers.mockResolvedValue({ + details: { totalResult: BigInt(1) }, + result: [{ userId: "user-123" }], + }); + + mockGetUserByID.mockResolvedValue({ + user: { + id: "user-123", + type: { + case: "human", + value: { email: { isVerified: true } }, + }, + }, + }); + + mockCheckEmailVerification.mockResolvedValue(true); + mockCompleteFlowOrGetUrl.mockResolvedValue({ redirect: "/dashboard" }); + + const result = await sendPasskey({ + sessionId: "session-123", + checks: { webAuthN: { credentialAssertionData: {} } } as any, + }); + + // It should succeed with the new session + expect(result).toEqual({ + redirect: "/dashboard", + }); + + expect(mockCreateSessionAndUpdateCookie).toHaveBeenCalled(); + }); }); describe("User Validation", () => { diff --git a/apps/login/src/lib/server/passkeys.ts b/apps/login/src/lib/server/passkeys.ts index f53c93caf..f880d9162 100644 --- a/apps/login/src/lib/server/passkeys.ts +++ b/apps/login/src/lib/server/passkeys.ts @@ -19,12 +19,13 @@ import { import { headers } from "next/headers"; import { userAgent } from "next/server"; import { getTranslations } from "next-intl/server"; -import { getMostRecentSessionCookie, getSessionCookieById, getSessionCookieByLoginName } from "../cookies"; +import { getSessionCookieById } from "../cookies"; import { getServiceConfig } from "../service-url"; import { checkEmailVerification, checkUserVerification } from "../verify-helper"; -import { createSessionAndUpdateCookie, setSessionAndUpdateCookie } from "./cookie"; import { getPublicHost } from "./host"; +import { updateOrCreateSession } from "./session"; import { completeFlowOrGetUrl } from "../client"; +import { createSessionAndUpdateCookie } from "./cookie"; type VerifyPasskeyCommand = { passkeyId: string; @@ -74,6 +75,11 @@ export async function registerPasskeyLink( if (command.sessionId) { // Session-based flow (existing logic) const sessionCookie = await getSessionCookieById({ sessionId: command.sessionId }); + + if (!sessionCookie) { + return { error: "Could not get session cookie" }; + } + session = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }); if (!session?.session?.factors?.user?.id) { @@ -142,10 +148,11 @@ export async function registerPasskeyLink( }, }); - createdSession = await createSessionAndUpdateCookie({ + const result = await createSessionAndUpdateCookie({ checks, requestId: undefined, // No requestId in passkey registration context, TODO: consider if needed }); + createdSession = result.session; if (!createdSession) { return { error: "Could not create session" }; @@ -196,6 +203,11 @@ export async function verifyPasskeyRegistration(command: VerifyPasskeyCommand) { const sessionCookie = await getSessionCookieById({ sessionId: command.sessionId, }); + + if (!sessionCookie) { + throw new Error("Could not get session cookie"); + } + const session = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }); const userId = session?.session?.factors?.user?.id; @@ -241,56 +253,41 @@ export async function sendPasskey(command: SendPasskeyCommand) { const t = await getTranslations("passkey"); - const recentSession = sessionId - ? await getSessionCookieById({ sessionId }) - : loginName - ? await getSessionCookieByLoginName({ loginName, organization }) - : await getMostRecentSessionCookie(); + const result = await updateOrCreateSession({ + loginName, + sessionId, + organization, + checks, + requestId, + lifetime: command.lifetime, + }); - if (!recentSession) { - return { - error: t("verify.errors.couldNotFindSession"), - }; + if (result.error) { + // try to interpret validation errors as translation keys if possible, or fallback to generic + // For now returning the error string directly as key or default + return { error: result.error }; } + // transformation to partial session for compatibility + const session = { + id: result.sessionId, + factors: result.factors, + // @ts-ignore + challenges: result.challenges, + }; + const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); - const loginSettings = await getLoginSettings({ serviceConfig, organization }); - let lifetime = command.lifetime; // Use provided lifetime first - - if (!lifetime) { - lifetime = checks?.webAuthN - ? loginSettings?.multiFactorCheckLifetime // TODO different lifetime for webauthn u2f/passkey - : checks?.otpEmail || checks?.otpSms - ? loginSettings?.secondFactorCheckLifetime - : undefined; - } - - if (!lifetime || !lifetime.seconds) { - console.warn("No passkey lifetime provided, defaulting to 24 hours"); - - lifetime = { - seconds: BigInt(60 * 60 * 24), // default to 24 hours - nanos: 0, - } as Duration; - } - - const session = await setSessionAndUpdateCookie({ - recentCookie: recentSession, - checks, - requestId, - lifetime, - }); - - if (!session || !session?.factors?.user?.id) { - return { error: t("verify.errors.couldNotUpdateSession") }; + const userId = session?.factors?.user?.id; + if (!userId) { + return { error: t("verify.errors.couldNotFindSession") }; } let userResponse; try { - userResponse = await getUserByID({ serviceConfig, userId: session?.factors?.user?.id }); + userResponse = await getUserByID({ serviceConfig, userId }); } catch (error) { console.error("Error fetching user by ID:", error); return { error: t("verify.errors.couldNotGetUser") }; @@ -302,7 +299,7 @@ export async function sendPasskey(command: SendPasskeyCommand) { const humanUser = userResponse.user.type.case === "human" ? userResponse.user.type.value : undefined; - const emailVerificationCheck = checkEmailVerification(session, humanUser, organization, requestId); + const emailVerificationCheck = checkEmailVerification(session as any, humanUser, organization, requestId); if (emailVerificationCheck?.redirect) { return emailVerificationCheck; diff --git a/apps/login/src/lib/server/password-send.test.ts b/apps/login/src/lib/server/password-send.test.ts new file mode 100644 index 000000000..e5b5af43a --- /dev/null +++ b/apps/login/src/lib/server/password-send.test.ts @@ -0,0 +1,156 @@ +import { create } from "@zitadel/client"; +import { ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; +import { UserState } from "@zitadel/proto/zitadel/user/v2/user_pb"; +import { AuthenticationMethodType } from "@zitadel/proto/zitadel/user/v2/user_service_pb"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { sendPassword } from "./password"; + +// Mock dependencies +vi.mock("next/headers", () => ({ + headers: vi.fn(), +})); + +vi.mock("@zitadel/client", () => ({ + create: vi.fn((schema, data) => data), + ConnectError: class extends Error { + code: number; + constructor(msg: string, code: number) { + super(msg); + this.code = code; + } + }, + timestampDate: (ts: any) => new Date(ts.seconds * 1000), +})); + +vi.mock("@zitadel/client/v2", () => ({ + createUserServiceClient: vi.fn(), +})); + +vi.mock("../service-url", () => ({ + getServiceConfig: vi.fn(), +})); + +vi.mock("../zitadel", () => ({ + getLoginSettings: vi.fn(), + listAuthenticationMethodTypes: vi.fn(), + getSession: vi.fn(), + setPassword: vi.fn(), + createServerTransport: vi.fn(), + listUsers: vi.fn(), + getLockoutSettings: vi.fn(), + getPasswordExpirySettings: vi.fn(), + getUserByID: vi.fn(), + searchUsers: vi.fn(), +})); + +vi.mock("../cookies", () => ({ + getSessionCookieByLoginName: vi.fn(), + getSessionCookieById: vi.fn(), +})); + +vi.mock("../client", () => ({ + completeFlowOrGetUrl: vi.fn(), +})); + +vi.mock("@/lib/server/cookie", () => ({ + createSessionAndUpdateCookie: vi.fn(), + setSessionAndUpdateCookie: vi.fn(), +})); + +vi.mock("../verify-helper", () => ({ + checkPasswordChangeRequired: vi.fn(), + checkEmailVerification: vi.fn(), + checkMFAFactors: vi.fn(), +})); + +vi.mock("next-intl/server", () => ({ + getTranslations: vi.fn(() => (key: string) => key), +})); + +describe("sendPassword", () => { + let mockHeaders: any; + let mockGetServiceConfig: any; + let mockGetSessionCookieByLoginName: any; + let mockSearchUsers: any; + let mockGetLoginSettings: any; + let mockCreateSessionAndUpdateCookie: any; + let mockCompleteFlowOrGetUrl: any; + let mockListAuthenticationMethodTypes: any; + let mockCheckMFAFactors: any; + + beforeEach(async () => { + vi.clearAllMocks(); + + const { headers } = await import("next/headers"); + const { getServiceConfig } = await import("../service-url"); + const { getSessionCookieByLoginName } = await import("../cookies"); + const { getLoginSettings, listAuthenticationMethodTypes, searchUsers } = await import("../zitadel"); + const { createSessionAndUpdateCookie } = await import("@/lib/server/cookie"); + const { completeFlowOrGetUrl } = await import("../client"); + const { checkMFAFactors } = await import("../verify-helper"); + + mockHeaders = vi.mocked(headers); + mockGetServiceConfig = vi.mocked(getServiceConfig); + mockGetSessionCookieByLoginName = vi.mocked(getSessionCookieByLoginName); + mockSearchUsers = vi.mocked(searchUsers); + mockGetLoginSettings = vi.mocked(getLoginSettings); + mockCreateSessionAndUpdateCookie = vi.mocked(createSessionAndUpdateCookie); + mockCompleteFlowOrGetUrl = vi.mocked(completeFlowOrGetUrl); + mockListAuthenticationMethodTypes = vi.mocked(listAuthenticationMethodTypes); + mockCheckMFAFactors = vi.mocked(checkMFAFactors); + + mockHeaders.mockResolvedValue({}); + mockGetServiceConfig.mockReturnValue({ serviceConfig: { baseUrl: "https://api.example.com" } }); + }); + + test("should create session and verify password when no session exists", async () => { + // 1. No existing session + mockGetSessionCookieByLoginName.mockResolvedValue(null); + + // 2. User exists + mockSearchUsers.mockResolvedValue({ + result: [{ userId: "user123", type: { case: "human", value: {} }, state: UserState.ACTIVE }], + }); + + // 3. Login settings + mockGetLoginSettings.mockResolvedValue({ passwordCheckLifetime: { seconds: BigInt(86400) } }); + + // 4. Create session success + mockCreateSessionAndUpdateCookie.mockResolvedValue({ + session: { + id: "new-session-id", + factors: { + user: { id: "user123", loginName: "testuser", organizationId: "org123" }, + password: { verifiedAt: { seconds: 100 } }, + }, + }, + sessionCookie: { + id: "new-session-id", + token: "token123", + organization: "org123", + }, + }); + + // 5. Auth methods (no MFA) + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + // 6. MFA check passes + mockCheckMFAFactors.mockResolvedValue(null); + + // 7. Redirect + mockCompleteFlowOrGetUrl.mockResolvedValue({ redirect: "/next-page" }); + + const result = await sendPassword({ + loginName: "testuser", + checks: create(ChecksSchema, { password: { password: "password123" } }), + }); + + // Verification + expect(mockSearchUsers).toHaveBeenCalledWith(expect.objectContaining({ searchValue: "testuser" })); + expect(mockCreateSessionAndUpdateCookie).toHaveBeenCalled(); + expect(mockCompleteFlowOrGetUrl).toHaveBeenCalled(); + expect(result).toEqual({ redirect: "/next-page" }); + }); +}); diff --git a/apps/login/src/lib/server/password.test.ts b/apps/login/src/lib/server/password.test.ts new file mode 100644 index 000000000..ad9fe0811 --- /dev/null +++ b/apps/login/src/lib/server/password.test.ts @@ -0,0 +1,497 @@ +import { AuthenticationMethodType } from "@zitadel/proto/zitadel/user/v2/user_service_pb"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { changePassword, checkSessionAndSetPassword, resetPassword, sendPassword } from "./password"; + +// Mock dependencies +vi.mock("next/headers", () => ({ + headers: vi.fn(), +})); + +vi.mock("@zitadel/client", () => ({ + create: vi.fn(), + ConnectError: class extends Error { + code: number; + constructor(msg: string, code: number) { + super(msg); + this.code = code; + } + }, + timestampDate: (ts: any) => new Date(ts.seconds * 1000), +})); + +vi.mock("@zitadel/client/v2", () => ({ + createUserServiceClient: vi.fn(), +})); + +vi.mock("../service-url", () => ({ + getServiceConfig: vi.fn(), +})); + +vi.mock("../zitadel", () => ({ + getLoginSettings: vi.fn(), + listAuthenticationMethodTypes: vi.fn(), + getSession: vi.fn(), + setPassword: vi.fn(), + createServerTransport: vi.fn(), + getLockoutSettings: vi.fn(), + passwordReset: vi.fn(), + getUserByID: vi.fn(), + setUserPassword: vi.fn(), + getPasswordExpirySettings: vi.fn(), + searchUsers: vi.fn(), +})); + +vi.mock("./cookie", () => ({ + createSessionAndUpdateCookie: vi.fn(), + setSessionAndUpdateCookie: vi.fn(), +})); + +vi.mock("../cookies", () => ({ + getSessionCookieById: vi.fn(), + getSessionCookieByLoginName: vi.fn(), +})); + +vi.mock("next-intl/server", () => ({ + getTranslations: vi.fn(() => (key: string) => key), +})); + +vi.mock("../verify-helper", () => ({ + checkEmailVerification: vi.fn(), + checkMFAFactors: vi.fn(), + checkPasswordChangeRequired: vi.fn(), + checkUserVerification: vi.fn(), +})); + +vi.mock("../client", () => ({ + completeFlowOrGetUrl: vi.fn(), +})); + +describe("checkSessionAndSetPassword", () => { + let mockHeaders: any; + let mockGetServiceConfig: any; + let mockGetSessionCookieById: any; + let mockGetSession: any; + let mockListAuthenticationMethodTypes: any; + let mockGetLoginSettings: any; + let mockSetPassword: any; // Service account + let mockCreateUserServiceClient: any; // User session + let mockSetPasswordUser: any; + + beforeEach(async () => { + vi.clearAllMocks(); + + const { headers } = await import("next/headers"); + const { getServiceConfig } = await import("../service-url"); + const { getSessionCookieById } = await import("../cookies"); + const { getSession, listAuthenticationMethodTypes, getLoginSettings, setPassword } = await import("../zitadel"); + const { createUserServiceClient } = await import("@zitadel/client/v2"); + + mockHeaders = vi.mocked(headers); + mockGetServiceConfig = vi.mocked(getServiceConfig); + mockGetSessionCookieById = vi.mocked(getSessionCookieById); + mockGetSession = vi.mocked(getSession); + mockListAuthenticationMethodTypes = vi.mocked(listAuthenticationMethodTypes); + mockGetLoginSettings = vi.mocked(getLoginSettings); + mockSetPassword = vi.mocked(setPassword); + mockCreateUserServiceClient = vi.mocked(createUserServiceClient); + + mockHeaders.mockResolvedValue({}); + mockGetServiceConfig.mockReturnValue({ serviceConfig: { baseUrl: "https://api.example.com" } }); + + // Default session setup + mockGetSessionCookieById.mockResolvedValue({ id: "session123", token: "token123" }); + mockGetSession.mockResolvedValue({ + session: { + factors: { + user: { id: "user123", organizationId: "org123" }, + password: { verifiedAt: { seconds: Math.floor(Date.now() / 1000) } }, // Password verified recently + }, + }, + }); + + // Default: Only password method + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD], + }); + + // Default: No forced MFA + mockGetLoginSettings.mockResolvedValue({ forceMfa: false }); + + // Mock user service client + mockSetPasswordUser = vi.fn().mockResolvedValue({}); + mockCreateUserServiceClient.mockReturnValue({ + setPassword: mockSetPasswordUser, + }); + + mockSetPassword.mockResolvedValue({}); + }); + + test("should use user session when no MFA is configured", async () => { + await checkSessionAndSetPassword({ sessionId: "session123", password: "newpassword" }); + + expect(mockCreateUserServiceClient).toHaveBeenCalled(); + expect(mockSetPasswordUser).toHaveBeenCalled(); + expect(mockSetPassword).not.toHaveBeenCalled(); + }); + + test("should use service account when MFA is configured but NOT verified in session", async () => { + // User has TOTP configured + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD, AuthenticationMethodType.TOTP], + }); + + // Session only has password verified (no OTP) + const now = Math.floor(Date.now() / 1000); + mockGetSession.mockResolvedValue({ + session: { + factors: { + user: { id: "user123", organizationId: "org123" }, + password: { verifiedAt: { seconds: now - 60 } }, // Verified 1 minute ago + // otp missing + }, + }, + }); + + await checkSessionAndSetPassword({ sessionId: "session123", password: "newpassword" }); + + // EXPECTATION: Should use service account (mockSetPassword) + // CURRENTLY: Will fail this test and use user session + expect(mockSetPassword).toHaveBeenCalled(); + expect(mockCreateUserServiceClient).not.toHaveBeenCalled(); + }); + + test("should use user session when MFA is configured AND verified in session", async () => { + // User has TOTP configured + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD, AuthenticationMethodType.TOTP], + }); + + // Session has both password and OTP verified + mockGetSession.mockResolvedValue({ + session: { + factors: { + user: { id: "user123", organizationId: "org123" }, + password: { verifiedAt: { seconds: Math.floor(Date.now() / 1000) } }, + totp: { verifiedAt: { seconds: Math.floor(Date.now() / 1000) } }, // Verified + }, + }, + }); + + await checkSessionAndSetPassword({ sessionId: "session123", password: "newpassword" }); + + expect(mockCreateUserServiceClient).toHaveBeenCalled(); + expect(mockSetPassword).not.toHaveBeenCalled(); + }); + + test("should fail when MFA is configured but not verified, and password verification is too old", async () => { + // User has TOTP configured + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD, AuthenticationMethodType.TOTP], + }); + + // Session has password verified 10 minutes ago (600 seconds) + const now = Math.floor(Date.now() / 1000); + mockGetSession.mockResolvedValue({ + session: { + factors: { + user: { id: "user123", organizationId: "org123" }, + password: { verifiedAt: { seconds: now - 600 } }, + // otp missing + }, + }, + }); + + const result = await checkSessionAndSetPassword({ sessionId: "session123", password: "newpassword" }); + + expect(result).toEqual({ error: "errors.passwordVerificationTooOld" }); + expect(mockSetPassword).not.toHaveBeenCalled(); + }); + + test("should use service account when MFA is configured but not verified, and password verification is recent", async () => { + // User has TOTP configured + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [AuthenticationMethodType.PASSWORD, AuthenticationMethodType.TOTP], + }); + + // Session has password verified 1 minute ago (60 seconds) + const now = Math.floor(Date.now() / 1000); + mockGetSession.mockResolvedValue({ + session: { + factors: { + user: { id: "user123", organizationId: "org123" }, + password: { verifiedAt: { seconds: now - 60 } }, + // otp missing + }, + }, + }); + + await checkSessionAndSetPassword({ sessionId: "session123", password: "newpassword" }); + + expect(mockSetPassword).toHaveBeenCalled(); + }); +}); + +describe("sendPassword", () => { + let mockHeaders: any; + let mockGetServiceConfig: any; + let mockGetSessionCookieByLoginName: any; + let mockSearchUsers: any; + let mockGetLoginSettings: any; + let mockCreateSessionAndUpdateCookie: any; + let mockSetSessionAndUpdateCookie: any; + let mockGetLockoutSettings: any; + + beforeEach(async () => { + vi.clearAllMocks(); + + const { headers } = await import("next/headers"); + const { getServiceConfig } = await import("../service-url"); + const { getSessionCookieByLoginName } = await import("../cookies"); + const { getLoginSettings, getLockoutSettings, searchUsers } = await import("../zitadel"); + const { createSessionAndUpdateCookie, setSessionAndUpdateCookie } = await import("./cookie"); + + mockHeaders = vi.mocked(headers); + mockGetServiceConfig = vi.mocked(getServiceConfig); + mockGetSessionCookieByLoginName = vi.mocked(getSessionCookieByLoginName); + mockSearchUsers = vi.mocked(searchUsers); + mockGetLoginSettings = vi.mocked(getLoginSettings); + mockCreateSessionAndUpdateCookie = vi.mocked(createSessionAndUpdateCookie); + mockSetSessionAndUpdateCookie = vi.mocked(setSessionAndUpdateCookie); + mockCreateSessionAndUpdateCookie = vi.mocked(createSessionAndUpdateCookie); + mockSetSessionAndUpdateCookie = vi.mocked(setSessionAndUpdateCookie); + mockGetLockoutSettings = vi.mocked(getLockoutSettings); + + const { completeFlowOrGetUrl } = await import("../client"); + vi.mocked(completeFlowOrGetUrl).mockResolvedValue({ redirect: "https://example.com" }); + + // eslint-disable-next-line + const verifyHelper = await import("../verify-helper"); + vi.mocked(verifyHelper.checkPasswordChangeRequired).mockReturnValue(undefined); + vi.mocked(verifyHelper.checkEmailVerification).mockReturnValue(undefined); + vi.mocked(verifyHelper.checkMFAFactors).mockResolvedValue(undefined); + + mockHeaders.mockResolvedValue({}); + mockGetServiceConfig.mockReturnValue({ serviceConfig: { baseUrl: "https://api.example.com" } }); + }); + + test("should return generic error when user not found and ignoreUnknownUsernames is true", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockSearchUsers.mockResolvedValue({ result: [] }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + + const result = await sendPassword({ + loginName: "unknown@example.com", + checks: { password: { password: "password" } } as any, + }); + + expect(result).toEqual({ error: "errors.failedToAuthenticateNoLimit" }); + }); + + test("should return specific error when user not found and ignoreUnknownUsernames is false", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockSearchUsers.mockResolvedValue({ result: [] }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: false }); + + const result = await sendPassword({ + loginName: "unknown@example.com", + checks: { password: { password: "password" } } as any, + }); + + expect(result).toEqual({ error: "errors.couldNotVerifyPassword" }); + }); + + test("should return generic error when password verification fails and ignoreUnknownUsernames is true", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockSearchUsers.mockResolvedValue({ + result: [{ userId: "user123", type: { case: "human", value: {} }, state: 1 }], + }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + mockCreateSessionAndUpdateCookie.mockRejectedValue({ failedAttempts: 1 }); + + const result = await sendPassword({ + loginName: "user@example.com", + checks: { password: { password: "wrong" } } as any, + }); + + expect(result).toEqual({ error: "errors.failedToAuthenticateNoLimit" }); + }); + + test("should return generic error when session creation fails with unknown error and ignoreUnknownUsernames is true", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockSearchUsers.mockResolvedValue({ + result: [{ userId: "user123", type: { case: "human", value: {} }, state: 1 }], + }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + // Simulate an error that is NOT a failed attempt error (e.g. database error) + mockCreateSessionAndUpdateCookie.mockRejectedValue(new Error("Some internal error")); + + const result = await sendPassword({ + loginName: "user@example.com", + checks: { password: { password: "correct" } } as any, + }); + + expect(result).toEqual({ error: "errors.failedToAuthenticateNoLimit" }); + }); + + test("should return specific error with lockout info when password verification fails and ignoreUnknownUsernames is false", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue(null); + mockSearchUsers.mockResolvedValue({ + result: [{ userId: "user123", type: { case: "human", value: {} }, state: 1 }], + }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: false }); + mockCreateSessionAndUpdateCookie.mockRejectedValue({ failedAttempts: 1 }); + mockGetLockoutSettings.mockResolvedValue({ maxPasswordAttempts: BigInt(5) }); + + const result = await sendPassword({ + loginName: "user@example.com", + checks: { password: { password: "wrong" } } as any, + }); + + expect(result).toEqual({ + error: "errors.failedToAuthenticate", + }); + }); + + test("should recreate session when session verification fails with keys/session terminated error and ignoreUnknownUsernames is true", async () => { + mockGetSessionCookieByLoginName.mockResolvedValue({ + id: "session123", + token: "token123", + organization: "org123", + }); + + const terminatedError = { message: "session already terminated" }; + mockSetSessionAndUpdateCookie.mockRejectedValue(terminatedError); + + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + + mockSearchUsers.mockResolvedValue({ + result: [ + { + userId: "user123", + type: { + case: "human", + value: { + email: { email: "user@example.com", isVerified: true }, + phone: { phone: "+1234567890", isVerified: true }, + }, + }, + state: 1, // Active + preferredLoginName: "user@example.com", + }, + ], + }); + + mockCreateSessionAndUpdateCookie.mockResolvedValue({ + session: { factors: { user: { id: "user123", loginName: "user@example.com" } } }, + sessionCookie: { id: "newSession", token: "newToken" }, + }); + + // Execute + await sendPassword({ + loginName: "user@example.com", + checks: { password: { password: "password" } } as any, + }); + + expect(mockSetSessionAndUpdateCookie).toHaveBeenCalled(); + expect(mockCreateSessionAndUpdateCookie).toHaveBeenCalled(); + }); +}); +describe("resetPassword", () => { + let mockHeaders: any; + let mockGetServiceConfig: any; + let mockSearchUsers: any; + let mockGetLoginSettings: any; + let mockPasswordReset: any; + + beforeEach(async () => { + vi.clearAllMocks(); + + const { headers } = await import("next/headers"); + const { getServiceConfig } = await import("../service-url"); + const { getLoginSettings, passwordReset, searchUsers } = await import("../zitadel"); + + mockHeaders = vi.mocked(headers); + mockGetServiceConfig = vi.mocked(getServiceConfig); + mockSearchUsers = vi.mocked(searchUsers); + mockGetLoginSettings = vi.mocked(getLoginSettings); + mockPasswordReset = vi.mocked(passwordReset); + + mockHeaders.mockResolvedValue({ get: vi.fn(() => "example.com") }); + mockGetServiceConfig.mockReturnValue({ serviceConfig: { baseUrl: "https://api.example.com" } }); + }); + + test("should return generic success when user not found and ignoreUnknownUsernames is true", async () => { + mockSearchUsers.mockResolvedValue({ result: [] }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + + const result = await resetPassword({ + loginName: "unknown@example.com", + }); + + expect(result).toEqual({}); + expect(mockPasswordReset).not.toHaveBeenCalled(); + }); + + test("should return specific error when user not found and ignoreUnknownUsernames is false", async () => { + mockSearchUsers.mockResolvedValue({ result: [] }); + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: false }); + + const result = await resetPassword({ + loginName: "unknown@example.com", + }); + + expect(result).toEqual({ error: "errors.couldNotSendResetLink" }); + expect(mockPasswordReset).not.toHaveBeenCalled(); + }); +}); + +describe("changePassword", () => { + let mockHeaders: any; + let mockGetServiceConfig: any; + let mockGetUserByID: any; + let mockGetLoginSettings: any; + let mockSetUserPassword: any; + + beforeEach(async () => { + vi.clearAllMocks(); + + const { headers } = await import("next/headers"); + const { getServiceConfig } = await import("../service-url"); + const { getUserByID, getLoginSettings, setUserPassword } = await import("../zitadel"); + + mockHeaders = vi.mocked(headers); + mockGetServiceConfig = vi.mocked(getServiceConfig); + mockGetUserByID = vi.mocked(getUserByID); + mockGetLoginSettings = vi.mocked(getLoginSettings); + mockSetUserPassword = vi.mocked(setUserPassword); + + mockHeaders.mockResolvedValue({ get: vi.fn(() => "example.com") }); + mockGetServiceConfig.mockReturnValue({ serviceConfig: { baseUrl: "https://api.example.com" } }); + }); + + test("should return generic error when user not found and ignoreUnknownUsernames is true", async () => { + mockGetUserByID.mockResolvedValue({}); // User not found + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: true }); + + const result = await changePassword({ + userId: "unknown", + password: "newpassword", + }); + + expect(result).toEqual({ error: "set.errors.couldNotSetPassword" }); + expect(mockSetUserPassword).not.toHaveBeenCalled(); + }); + + test("should return specific error when user not found and ignoreUnknownUsernames is false", async () => { + mockGetUserByID.mockResolvedValue({}); // User not found + mockGetLoginSettings.mockResolvedValue({ ignoreUnknownUsernames: false }); + + const result = await changePassword({ + userId: "unknown", + password: "newpassword", + }); + + expect(result).toEqual({ error: "errors.couldNotSendResetLink" }); + expect(mockSetUserPassword).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/login/src/lib/server/password.ts b/apps/login/src/lib/server/password.ts index 99aec8ac0..485f2cc50 100644 --- a/apps/login/src/lib/server/password.ts +++ b/apps/login/src/lib/server/password.ts @@ -8,23 +8,23 @@ import { getSession, getUserByID, listAuthenticationMethodTypes, - listUsers, passwordReset, + searchUsers, ServiceConfig, setPassword, setUserPassword, } from "@/lib/zitadel"; -import { ConnectError, create, Duration } from "@zitadel/client"; +import { ConnectError, create, Duration, timestampDate } from "@zitadel/client"; import { createUserServiceClient } from "@zitadel/client/v2"; import { Checks, ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb"; import { User, UserState } from "@zitadel/proto/zitadel/user/v2/user_pb"; -import { SetPasswordRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb"; +import { AuthenticationMethodType, SetPasswordRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb"; +import { getTranslations } from "next-intl/server"; import { headers } from "next/headers"; import { completeFlowOrGetUrl } from "../client"; import { getSessionCookieById, getSessionCookieByLoginName } from "../cookies"; import { getServiceConfig } from "../service-url"; -import { getPublicHostWithProtocol } from "./host"; import { checkEmailVerification, checkMFAFactors, @@ -32,11 +32,12 @@ import { checkUserVerification, } from "../verify-helper"; import { createServerTransport } from "../zitadel"; -import { getTranslations } from "next-intl/server"; +import { getPublicHostWithProtocol } from "./host"; type ResetPasswordCommand = { loginName: string; organization?: string; + defaultOrganization?: string; requestId?: string; }; @@ -49,12 +50,67 @@ export async function resetPassword(command: ResetPasswordCommand) { // Get the original host that the user sees with protocol const hostWithProtocol = await getPublicHostWithProtocol(_headers); - const users = await listUsers({ serviceConfig, loginName: command.loginName, organizationId: command.organization }); + const loginSettings = await getLoginSettings({ + serviceConfig, + organization: command.organization ?? command.defaultOrganization, + }); - if (!users.details || users.details.totalResult !== BigInt(1) || !users.result[0].userId) { + if (!loginSettings) { return { error: t("errors.couldNotSendResetLink") }; } - const userId = users.result[0].userId; + + const searchResult = await searchUsers({ + serviceConfig, + searchValue: command.loginName, + organizationId: command.organization, + loginSettings, + }); + + if ( + !searchResult || + !("result" in searchResult) || + !searchResult.result || + searchResult.result.length !== 1 || + !searchResult.result[0].userId + ) { + if (loginSettings?.ignoreUnknownUsernames) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + return {}; + } + return { error: t("errors.couldNotSendResetLink") }; + } + const user = searchResult.result[0]; + const humanUser = user.type.case === "human" ? user.type.value : undefined; + + const userLoginSettings = await getLoginSettings({ serviceConfig, organization: user.details?.resourceOwner }); + + if (userLoginSettings?.disableLoginWithEmail && userLoginSettings?.disableLoginWithPhone) { + if (user.preferredLoginName !== command.loginName) { + if (userLoginSettings?.ignoreUnknownUsernames) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + return {}; + } + return { error: t("errors.couldNotSendResetLink") }; + } + } else if (userLoginSettings?.disableLoginWithEmail) { + if (user.preferredLoginName !== command.loginName || humanUser?.phone?.phone !== command.loginName) { + if (userLoginSettings?.ignoreUnknownUsernames) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + return {}; + } + return { error: t("errors.couldNotSendResetLink") }; + } + } else if (userLoginSettings?.disableLoginWithPhone) { + if (user.preferredLoginName !== command.loginName || humanUser?.email?.email !== command.loginName) { + if (userLoginSettings?.ignoreUnknownUsernames) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + return {}; + } + return { error: t("errors.couldNotSendResetLink") }; + } + } + + const userId = user.userId; const basePath = process.env.NEXT_PUBLIC_BASE_PATH ?? ""; @@ -70,6 +126,7 @@ export async function resetPassword(command: ResetPasswordCommand) { export type UpdateSessionCommand = { loginName: string; organization?: string; + defaultOrganization?: string; checks: Checks; requestId?: string; }; @@ -82,35 +139,123 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err let sessionCookie = await getSessionCookieByLoginName({ loginName: command.loginName, organization: command.organization, - }).catch((error) => { - console.warn("Ignored error:", error); }); let session; - let user: User; - let loginSettings: LoginSettings | undefined; + let user: User | undefined; + let loginSettingsByContext: LoginSettings | undefined; + let loginSettingsByUser: LoginSettings | undefined; + + if (sessionCookie) { + try { + loginSettingsByUser = await getLoginSettings({ serviceConfig, organization: sessionCookie.organization }); + + if (loginSettingsByUser) { + let lifetime = loginSettingsByUser.passwordCheckLifetime; + + if (!lifetime || !lifetime.seconds) { + console.warn("No password lifetime provided, defaulting to 24 hours"); + lifetime = { + seconds: BigInt(60 * 60 * 24), // default to 24 hours + nanos: 0, + } as Duration; + } + + session = await setSessionAndUpdateCookie({ + recentCookie: sessionCookie, + checks: command.checks, + requestId: command.requestId, + lifetime, + }); + } else { + // Force fallback if settings can't be loaded + throw new Error("Could not load login settings"); + } + } catch { + console.warn("[Password] Could not update session"); + // If the session was terminated or any other error occurred during update, + // we fall back to creating a new session. + sessionCookie = undefined; + session = undefined; + } + } if (!sessionCookie) { - const users = await listUsers({ serviceConfig, loginName: command.loginName, organizationId: command.organization }); + if (!loginSettingsByContext) { + loginSettingsByContext = await getLoginSettings({ + serviceConfig, + organization: command.organization ?? command.defaultOrganization, + }); + } - if (users.details?.totalResult == BigInt(1) && users.result[0].userId) { - user = users.result[0]; + // Force fallback if settings can't be loaded + if (!loginSettingsByContext) { + // this is a fake error message to hide that the user does not even exist + return { error: t("errors.couldNotVerifyPassword") }; + } + + const searchResult = await searchUsers({ + serviceConfig, + searchValue: command.loginName, + organizationId: command.organization, + loginSettings: loginSettingsByContext, + }); + + if ( + searchResult && + "result" in searchResult && + searchResult.result && + searchResult.result.length === 1 && + searchResult.result[0].userId + ) { + user = searchResult.result[0]; + const humanUser = user.type.case === "human" ? user.type.value : undefined; + + const userLoginSettings = await getLoginSettings({ serviceConfig, organization: user.details?.resourceOwner }); + + // recheck login settings after user discovery, as the search might have been done without org scope + if (userLoginSettings?.disableLoginWithEmail && userLoginSettings?.disableLoginWithPhone) { + if (user.preferredLoginName !== command.loginName) { + // emulate user not found to prevent enumeration (use context settings not user settings) + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } + return { error: t("errors.couldNotVerifyPassword") }; + } + } else if (userLoginSettings?.disableLoginWithEmail) { + if (user.preferredLoginName !== command.loginName || humanUser?.phone?.phone !== command.loginName) { + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } + return { error: t("errors.couldNotVerifyPassword") }; + } + } else if (userLoginSettings?.disableLoginWithPhone) { + if (user.preferredLoginName !== command.loginName || humanUser?.email?.email !== command.loginName) { + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } + return { error: t("errors.couldNotVerifyPassword") }; + } + } const checks = create(ChecksSchema, { - user: { search: { case: "userId", value: users.result[0].userId } }, + user: { search: { case: "userId", value: user.userId } }, password: { password: command.checks.password?.password }, }); - loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization }); - try { - session = await createSessionAndUpdateCookie({ + const result = await createSessionAndUpdateCookie({ checks, requestId: command.requestId, - lifetime: loginSettings?.passwordCheckLifetime, + lifetime: loginSettingsByContext?.passwordCheckLifetime, }); + session = result.session; + sessionCookie = result.sessionCookie; } catch (error: any) { if ("failedAttempts" in error && error.failedAttempts) { + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } const lockoutSettings = await getLockoutSettings({ serviceConfig, orgId: command.organization }); const hasLimit = @@ -126,81 +271,47 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err }), }; } + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } return { error: t("errors.couldNotCreateSessionForUser") }; } } else { // this is a fake error message to hide that the user does not even exist - return { error: "Could not verify password" }; - } - - // this is a fake error message to hide that the user does not even exist - return { error: t("errors.couldNotVerifyPassword") }; - } else { - loginSettings = await getLoginSettings({ serviceConfig, organization: sessionCookie.organization }); - - if (!loginSettings) { - return { error: "Could not load login settings" }; - } - - let lifetime = loginSettings.passwordCheckLifetime; - - if (!lifetime || !lifetime.seconds) { - console.warn("No password lifetime provided, defaulting to 24 hours"); - lifetime = { - seconds: BigInt(60 * 60 * 24), // default to 24 hours - nanos: 0, - } as Duration; - } - - try { - session = await setSessionAndUpdateCookie({ - recentCookie: sessionCookie, - checks: command.checks, - requestId: command.requestId, - lifetime, - }); - } catch (error: any) { - if ("failedAttempts" in error && error.failedAttempts) { - const lockoutSettings = await getLockoutSettings({ serviceConfig, orgId: command.organization }); - - const hasLimit = - lockoutSettings?.maxPasswordAttempts !== undefined && lockoutSettings?.maxPasswordAttempts > BigInt(0); - const locked = hasLimit && error.failedAttempts >= lockoutSettings?.maxPasswordAttempts; - const messageKey = hasLimit ? "errors.failedToAuthenticate" : "errors.failedToAuthenticateNoLimit"; - - return { - error: t(messageKey, { - failedAttempts: error.failedAttempts, - maxPasswordAttempts: hasLimit ? (lockoutSettings?.maxPasswordAttempts).toString() : "?", - lockoutMessage: locked ? t("errors.accountLockedContactAdmin") : "", - }), - }; + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; } - throw error; + return { error: t("errors.couldNotVerifyPassword") }; } + } - if (!session?.factors?.user?.id) { - return { error: t("errors.couldNotCreateSessionForUser") }; + if (!session?.factors?.user?.id) { + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; } + return { error: t("errors.couldNotCreateSessionForUser") }; + } + if (!user) { const userResponse = await getUserByID({ serviceConfig, userId: session?.factors?.user?.id }); - if (!userResponse.user) { return { error: t("errors.userNotFound") }; } - user = userResponse.user; } - if (!loginSettings) { - loginSettings = await getLoginSettings({ - serviceConfig, - organization: command.organization ?? session.factors?.user?.organizationId, - }); + if (!session?.factors?.user?.id || !sessionCookie) { + if (loginSettingsByContext?.ignoreUnknownUsernames) { + return { error: t("errors.failedToAuthenticateNoLimit") }; + } + return { error: t("errors.couldNotCreateSessionForUser") }; } - if (!session?.factors?.user?.id || !sessionCookie) { - return { error: t("errors.couldNotCreateSessionForUser") }; + if (!loginSettingsByUser) { + loginSettingsByUser = await getLoginSettings({ + serviceConfig, + organization: command.organization ?? session.factors?.user?.organizationId ?? command.defaultOrganization, + }); } const humanUser = user.type.case === "human" ? user.type.value : undefined; @@ -251,7 +362,7 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err const mfaFactorCheck = await checkMFAFactors( serviceConfig, session, - loginSettings, + loginSettingsByUser, authMethods, command.organization, command.requestId, @@ -270,7 +381,7 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err requestId: command.requestId, organization: command.organization ?? session.factors?.user?.organizationId, }, - loginSettings?.defaultRedirectUri, + loginSettingsByUser?.defaultRedirectUri, ); console.log("Password auth: OIDC/SAML flow result:", result); @@ -290,7 +401,7 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err loginName: session.factors.user.loginName, organization: session.factors?.user?.organizationId, }, - loginSettings?.defaultRedirectUri, + loginSettingsByUser?.defaultRedirectUri, ); // Safety net - ensure we always return a valid object @@ -303,7 +414,7 @@ export async function sendPassword(command: UpdateSessionCommand): Promise<{ err } // this function lets users with code set a password or users with valid User Verification Check -export async function changePassword(command: { code?: string; userId: string; password: string }) { +export async function changePassword(command: { code?: string; userId: string; password: string; organization?: string }) { const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); const t = await getTranslations("password"); @@ -312,6 +423,10 @@ export async function changePassword(command: { code?: string; userId: string; p const { user } = await getUserByID({ serviceConfig, userId: command.userId }); if (!user || user.userId !== command.userId) { + const loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization }); + if (loginSettings?.ignoreUnknownUsernames) { + return { error: t("set.errors.couldNotSetPassword") }; + } return { error: t("errors.couldNotSendResetLink") }; } const userId = user.userId; @@ -352,11 +467,9 @@ export async function checkSessionAndSetPassword({ sessionId, password }: CheckS const { serviceConfig } = getServiceConfig(_headers); const t = await getTranslations("password"); - let sessionCookie; - try { - sessionCookie = await getSessionCookieById({ sessionId }); - } catch (error) { - console.error("Error getting session cookie:", error); + const sessionCookie = await getSessionCookieById({ sessionId }); + + if (!sessionCookie) { return { error: "Could not load session cookie" }; } @@ -407,8 +520,38 @@ export async function checkSessionAndSetPassword({ sessionId, password }: CheckS const forceMfa = !!(loginSettings?.forceMfa || loginSettings?.forceMfaLocalOnly); + const mfaFactors = authmethods.authMethodTypes.filter( + (m) => + m === AuthenticationMethodType.TOTP || + m === AuthenticationMethodType.OTP_SMS || + m === AuthenticationMethodType.OTP_EMAIL || + m === AuthenticationMethodType.U2F, + ); + + const hasMfa = mfaFactors.length > 0; + const mfaVerified = + !!session.factors?.totp?.verifiedAt || + !!session.factors?.otpSms?.verifiedAt || + !!session.factors?.otpEmail?.verifiedAt || + !!session.factors?.webAuthN?.verifiedAt; + + // check if the password factor is set and not older than 5 minutes + const passwordVerifiedAt = session.factors?.password?.verifiedAt; + if (!passwordVerifiedAt) { + return { error: t("errors.passwordVerificationMissing") }; + } + + const passwordVerifiedDate = timestampDate(passwordVerifiedAt); + const now = new Date(); + const fiveMinutesAgo = new Date(now.getTime() - 5 * 60 * 1000); + + if (passwordVerifiedDate < fiveMinutesAgo) { + return { error: t("errors.passwordVerificationTooOld") }; + } + // if the user has no MFA but MFA is enforced, we can set a password otherwise we use the token of the user - if (forceMfa) { + // also if the user has no MFA but it is not verified, we use the service account + if (forceMfa || (hasMfa && !mfaVerified)) { console.log("Set password using service account due to enforced MFA without existing MFA methods"); return setPassword({ serviceConfig, payload }).catch((error) => { // throw error if failed precondition (ex. User is not yet initialized) diff --git a/apps/login/src/lib/server/register.ts b/apps/login/src/lib/server/register.ts index daa73de37..20477e1d5 100644 --- a/apps/login/src/lib/server/register.ts +++ b/apps/login/src/lib/server/register.ts @@ -32,7 +32,9 @@ export async function registerUser(command: RegisterUserCommand) { const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); - const addResponse = await addHumanUser({ serviceConfig, email: command.email, + const addResponse = await addHumanUser({ + serviceConfig, + email: command.email, firstName: command.firstName, lastName: command.lastName, password: command.password ? command.password : undefined, @@ -43,8 +45,7 @@ export async function registerUser(command: RegisterUserCommand) { return { error: t("errors.couldNotCreateUser") }; } - const loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization, - }); + const loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization }); let checkPayload: any = { user: { search: { case: "userId", value: addResponse.userId } }, @@ -59,11 +60,12 @@ export async function registerUser(command: RegisterUserCommand) { const checks = create(ChecksSchema, checkPayload); - const session = await createSessionAndUpdateCookie({ + const result = await createSessionAndUpdateCookie({ checks, requestId: command.requestId, lifetime: command.password ? loginSettings?.passwordCheckLifetime : undefined, }); + const session = result.session; if (!session || !session.factors?.user) { return { error: t("errors.couldNotCreateSession") }; @@ -96,8 +98,7 @@ export async function registerUser(command: RegisterUserCommand) { return { redirect: "/passkey/set?" + params }; } else { - const userResponse = await getUserByID({ serviceConfig, userId: session?.factors?.user?.id, - }); + const userResponse = await getUserByID({ serviceConfig, userId: session?.factors?.user?.id }); if (!userResponse.user) { return { error: t("errors.userNotFound") }; @@ -158,7 +159,9 @@ export async function registerUserAndLinkToIDP(command: RegisterUserAndLinkToIDP const _headers = await headers(); const { serviceConfig } = getServiceConfig(_headers); - const addUserResponse = await addHumanUser({ serviceConfig, email: command.email, + const addUserResponse = await addHumanUser({ + serviceConfig, + email: command.email, firstName: command.firstName, lastName: command.lastName, organization: command.organization, @@ -168,10 +171,11 @@ export async function registerUserAndLinkToIDP(command: RegisterUserAndLinkToIDP return { error: t("errors.couldNotCreateUser") }; } - const loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization, - }); + const loginSettings = await getLoginSettings({ serviceConfig, organization: command.organization }); - const idpLink = await addIDPLink({ serviceConfig, idp: { + const idpLink = await addIDPLink({ + serviceConfig, + idp: { id: command.idpId, userId: command.idpUserId, userName: command.idpUserName, @@ -215,8 +219,7 @@ export async function registerUserAndLinkToIDP(command: RegisterUserAndLinkToIDP // check if user has MFA methods let authMethods; if (session.factors?.user?.id) { - const response = await listAuthenticationMethodTypes({ serviceConfig, userId: session.factors.user.id, - }); + const response = await listAuthenticationMethodTypes({ serviceConfig, userId: session.factors.user.id }); if (response.authMethodTypes && response.authMethodTypes.length) { authMethods = response.authMethodTypes; } diff --git a/apps/login/src/lib/server/session.ts b/apps/login/src/lib/server/session.ts index dd57f6577..7d4595e31 100644 --- a/apps/login/src/lib/server/session.ts +++ b/apps/login/src/lib/server/session.ts @@ -1,17 +1,18 @@ "use server"; -import { setSessionAndUpdateCookie } from "@/lib/server/cookie"; +import { createSessionAndUpdateCookie, setSessionAndUpdateCookie } from "@/lib/server/cookie"; import { deleteSession, getLoginSettings, getSecuritySettings, humanMFAInitSkipped, listAuthenticationMethodTypes, + listUsers, } from "@/lib/zitadel"; -import { Duration } from "@zitadel/client"; +import { create, Duration } from "@zitadel/client"; import { RequestChallenges } from "@zitadel/proto/zitadel/session/v2/challenge_pb"; import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb"; -import { Checks } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; +import { Checks, ChecksSchema } from "@zitadel/proto/zitadel/session/v2/session_service_pb"; import { headers } from "next/headers"; import { getTranslations } from "next-intl/server"; import { completeFlowOrGetUrl } from "../client"; @@ -109,41 +110,69 @@ export type UpdateSessionCommand = { lifetime?: Duration; }; -export async function updateSession(options: UpdateSessionCommand) { - let { loginName, sessionId, organization, checks, requestId, challenges } = options; - const recentSession = sessionId +export async function updateOrCreateSession(options: UpdateSessionCommand) { + let { loginName, sessionId, organization, checks, requestId, challenges, lifetime } = options; + + const _headers = await headers(); + const { serviceConfig } = getServiceConfig(_headers); + const host = getPublicHost(_headers); + + const t = await getTranslations("verify.errors"); + + if (!host) { + return { error: "Could not get host" }; // Technical error, maybe leave or translate if key exists + } + + if (challenges && challenges.webAuthN && !challenges.webAuthN.domain) { + const [hostname] = host.split(":"); + + challenges.webAuthN.domain = hostname; + } + + let recentSession = sessionId ? await getSessionCookieById({ sessionId }) : loginName ? await getSessionCookieByLoginName({ loginName, organization }) : await getMostRecentSessionCookie(); if (!recentSession) { - return { - error: "Could not find session", - }; - } + if (!loginName) { + return { error: t("couldNotFindSession") }; + } - const _headers = await headers(); - const { serviceConfig } = getServiceConfig(_headers); - const host = getPublicHost(_headers); + const checks = create(ChecksSchema, { + user: { search: { case: "loginName", value: loginName } }, + }); - if (!host) { - return { error: "Could not get host" }; - } + const result = await createSessionAndUpdateCookie({ + checks, + challenges, + requestId, + }).catch((error) => { + console.error("Could not create session", error); + return undefined; + }); - if (host && challenges && challenges.webAuthN && !challenges.webAuthN.domain) { - const [hostname] = host.split(":"); + if (result && "sessionCookie" in result) { + recentSession = result.sessionCookie; + } - challenges.webAuthN.domain = hostname; + if (!recentSession) { + return { + error: t("couldNotFindSession"), + }; + } } const loginSettings = await getLoginSettings({ serviceConfig, organization }); - let lifetime = checks?.webAuthN - ? loginSettings?.multiFactorCheckLifetime // TODO different lifetime for webauthn u2f/passkey - : checks?.otpEmail || checks?.otpSms - ? loginSettings?.secondFactorCheckLifetime - : undefined; + if (!lifetime) { + lifetime = checks?.webAuthN + ? loginSettings?.multiFactorCheckLifetime // TODO different lifetime for webauthn u2f/passkey + : checks?.otpEmail || checks?.otpSms + ? loginSettings?.secondFactorCheckLifetime + : undefined; + } if (!lifetime || !lifetime.seconds) { console.warn("No lifetime provided for session, defaulting to 24 hours"); @@ -153,16 +182,55 @@ export async function updateSession(options: UpdateSessionCommand) { } as Duration; } - const session = await setSessionAndUpdateCookie({ - recentCookie: recentSession, - checks, - challenges, - requestId, - lifetime, - }); + let session; + try { + session = await setSessionAndUpdateCookie({ + recentCookie: recentSession, + checks, + challenges, + requestId, + lifetime, + }); + } catch (error) { + if (!checks) { + throw error; + } - if (!session) { - return { error: "Could not update session" }; + const loginNameForCreation = options.loginName || recentSession.loginName; + const orgForCreation = options.organization || recentSession.organization; + + if (!loginNameForCreation) { + throw error; + } + + const users = await listUsers({ + serviceConfig, + loginName: loginNameForCreation, + organizationId: orgForCreation, + }); + + if (users.details?.totalResult === BigInt(1) && users.result[0].userId) { + const user = users.result[0]; + const newChecks = create(ChecksSchema, { + ...checks, + user: { search: { case: "userId", value: user.userId } } as any, + }); + + const result = await createSessionAndUpdateCookie({ + checks: newChecks, + requestId, + lifetime, + challenges, + }); + // @ts-ignore + session = { ...result.session, challenges: result.challenges }; + } else { + throw error; + } + } + + if (!session || ("error" in session && session.error)) { + return { error: t("couldNotUpdateSession") }; } // if password, check if user has MFA methods @@ -177,6 +245,7 @@ export async function updateSession(options: UpdateSessionCommand) { return { sessionId: session.id, factors: session.factors, + // @ts-ignore challenges: session.challenges, authMethods, }; @@ -194,6 +263,10 @@ export async function clearSession(options: ClearSessionOptions) { const sessionCookie = await getSessionCookieById({ sessionId }); + if (!sessionCookie) { + return; + } + const deleteResponse = await deleteSession({ serviceConfig, sessionId: sessionCookie.id, diff --git a/apps/login/src/lib/server/u2f.ts b/apps/login/src/lib/server/u2f.ts index c73ee4eac..e2c5b8cf0 100644 --- a/apps/login/src/lib/server/u2f.ts +++ b/apps/login/src/lib/server/u2f.ts @@ -67,6 +67,10 @@ export async function verifyU2F(command: VerifyU2FCommand) { sessionId: command.sessionId, }); + if (!sessionCookie) { + return { error: "Could not get session cookie" }; + } + const session = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }); const userId = session?.session?.factors?.user?.id; diff --git a/apps/login/src/lib/server/verify.test.ts b/apps/login/src/lib/server/verify.test.ts new file mode 100644 index 000000000..ecf90b1db --- /dev/null +++ b/apps/login/src/lib/server/verify.test.ts @@ -0,0 +1,113 @@ +import { vi, describe, expect, test, beforeEach } from "vitest"; +import { sendVerification } from "./verify"; + +// Mock dependencies +vi.mock("@/lib/zitadel", () => ({ + verifyEmail: vi.fn(), + verifyInviteCode: vi.fn(), + getUserByID: vi.fn(), + getSession: vi.fn(), + listAuthenticationMethodTypes: vi.fn(), + getLoginSettings: vi.fn(), +})); + +vi.mock("next/headers", () => ({ + headers: vi.fn(), + cookies: vi.fn(), +})); + +vi.mock("../cookies", () => ({ + getSessionCookieByLoginName: vi.fn(), +})); + +vi.mock("./cookie", () => ({ + createSessionAndUpdateCookie: vi.fn(), +})); + +vi.mock("../service-url", () => ({ + getServiceConfig: vi.fn(() => ({ serviceConfig: {} })), +})); + +vi.mock("../fingerprint", () => ({ + getOrSetFingerprintId: vi.fn(), +})); + +vi.mock("next-intl/server", () => ({ + getTranslations: vi.fn(() => (key: string) => key), +})); + +import { verifyEmail, getUserByID, getSession, listAuthenticationMethodTypes } from "@/lib/zitadel"; +import { getSessionCookieByLoginName } from "../cookies"; +import { createSessionAndUpdateCookie } from "./cookie"; +import { cookies } from "next/headers"; + +describe("sendVerification", () => { + let mockVerifyEmail: any; + let mockGetUserByID: any; + let mockGetSession: any; + let mockListAuthenticationMethodTypes: any; + let mockGetSessionCookieByLoginName: any; + let mockCreateSessionAndUpdateCookie: any; + let mockCookies: any; + + beforeEach(() => { + mockVerifyEmail = verifyEmail; + mockGetUserByID = getUserByID; + mockGetSession = getSession; + mockListAuthenticationMethodTypes = listAuthenticationMethodTypes; + mockGetSessionCookieByLoginName = getSessionCookieByLoginName; + mockCreateSessionAndUpdateCookie = createSessionAndUpdateCookie; + mockCookies = cookies; + + // Default valid checking setup + mockVerifyEmail.mockResolvedValue({}); + mockGetUserByID.mockResolvedValue({ + user: { userId: "user-1", preferredLoginName: "test@example.com" }, + }); + mockCookies.mockResolvedValue({ + set: vi.fn(), + }); + }); + + test("should handle failing getSession when no auth methods exist (stale cookie scenario)", async () => { + // 1. Cookie exists + mockGetSessionCookieByLoginName.mockResolvedValue({ + id: "stale-session-id", + token: "stale-token", + }); + + // 2. getSession fails (throws or returns null/invalid) + // Simulating call returning nothing useful or throwing + mockGetSession.mockRejectedValue(new Error("Session not found")); + // OR: mockGetSession.mockResolvedValue({}); // depending on how generic client behaves + + // 3. No auth methods (user needs setup) + mockListAuthenticationMethodTypes.mockResolvedValue({ + authMethodTypes: [], + }); + + // 4. Mock session creation success + mockCreateSessionAndUpdateCookie.mockResolvedValue({ + session: { + id: "new-session-id", + factors: { user: { id: "user-1", loginName: "test@example.com", organizationId: "org-1" } }, + }, + }); + + const result = await sendVerification({ + userId: "user-1", + code: "123456", + isInvite: false, + }); + + // Expect redirect to authenticator setup + expect(result).toEqual({ + redirect: "/authenticator/set?sessionId=new-session-id&loginName=test%40example.com", + }); + + // Verify getSession was called (and failed, but we recovered) + expect(mockGetSession).toHaveBeenCalled(); + // Verify creation was attempted + expect(mockCreateSessionAndUpdateCookie).toHaveBeenCalled(); + }); +}); diff --git a/apps/login/src/lib/server/verify.ts b/apps/login/src/lib/server/verify.ts index c5ad14103..00adc1c6a 100644 --- a/apps/login/src/lib/server/verify.ts +++ b/apps/login/src/lib/server/verify.ts @@ -90,18 +90,20 @@ export async function sendVerification(command: VerifyUserByEmailCommand) { const sessionCookie = await getSessionCookieByLoginName({ loginName: "loginName" in command ? command.loginName : user.preferredLoginName, organization: command.organization, - }).catch((error) => { - console.warn("Ignored error:", error); // checked later }); if (sessionCookie) { - session = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }).then( - (response) => { + session = await getSession({ serviceConfig, sessionId: sessionCookie.id, sessionToken: sessionCookie.token }) + .then((response) => { if (response?.session) { return response.session; } - }, - ); + }) + .catch((error) => { + // user session is not found, so we create a new one + console.warn("[verify] user session is not found, so we create a new one", error); + return undefined; + }); } // load auth methods for user @@ -113,7 +115,7 @@ export async function sendVerification(command: VerifyUserByEmailCommand) { // if no authmethods are found on the user, redirect to set one up if (authMethodResponse && authMethodResponse.authMethodTypes && authMethodResponse.authMethodTypes.length == 0) { - if (!sessionCookie) { + if (!session) { const checks = create(ChecksSchema, { user: { search: { @@ -123,10 +125,11 @@ export async function sendVerification(command: VerifyUserByEmailCommand) { }, }); - session = await createSessionAndUpdateCookie({ + const result = await createSessionAndUpdateCookie({ checks, requestId: command.requestId, }); + session = result.session; } if (!session) { diff --git a/apps/login/src/lib/session.ts b/apps/login/src/lib/session.ts index 4b62672e9..f994b0ef8 100644 --- a/apps/login/src/lib/session.ts +++ b/apps/login/src/lib/session.ts @@ -25,6 +25,10 @@ export async function loadMostRecentSession({ organization: sessionParams.organization, }); + if (!recent) { + return undefined; + } + return getSession({ serviceConfig, sessionId: recent.id, sessionToken: recent.token }).then( (resp: GetSessionResponse) => resp.session, ); diff --git a/apps/login/src/lib/zitadel.ts b/apps/login/src/lib/zitadel.ts index c4db518df..6ee28b028 100644 --- a/apps/login/src/lib/zitadel.ts +++ b/apps/login/src/lib/zitadel.ts @@ -197,19 +197,21 @@ export async function getPasswordComplexitySettings({ return useCache ? cacheWrapper(callback) : callback; } -export async function createSessionFromChecks({ +export async function createSessionFromChecksAndChallenges({ serviceConfig, checks, + challenges, lifetime, }: WithServiceConfig<{ checks: Checks; + challenges?: RequestChallenges; lifetime: Duration; }>) { const sessionService: Client = await createServiceForHost(SessionService, serviceConfig); const userAgent = await getUserAgent(); - return sessionService.createSession({ checks, lifetime, userAgent }, {}); + return sessionService.createSession({ ...{ checks, lifetime, userAgent }, ...(challenges ? { challenges } : {}) }, {}); } export async function createSessionForUserIdAndIdpIntent({ diff --git a/package.json b/package.json index b2f127ba5..609ebae79 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,15 @@ "changeset": "changeset", "clean:all": "pnpm run clean && rm -rf .nx node_modules" }, + "pnpm": { + "overrides": { + "csstype": "3.1.3" + } + }, "devDependencies": { "@changesets/cli": "^2.29.8", "nx": "21.6.1", "sass": "^1.97.1", "wait-on": "^9.0.3" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3317c122..acffcb7ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - js-yaml@^4: '>=4.1.1' + csstype: 3.1.3 importers: @@ -13,13 +13,13 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.29.8 - version: 2.29.8(@types/node@25.0.3) + version: 2.29.8(@types/node@24.10.4) nx: specifier: 21.6.1 - version: 21.6.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + version: 21.6.1(@swc/core@1.15.3(@swc/helpers@0.5.17)) sass: specifier: ^1.97.1 - version: 1.97.1 + version: 1.97.2 wait-on: specifier: ^9.0.3 version: 9.0.3(debug@4.4.3) @@ -55,13 +55,13 @@ importers: version: 2.30.1 next: specifier: 15.5.9 - version: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1) + version: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) next-intl: specifier: ^3.26.5 - version: 3.26.5(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1))(react@19.2.3) + version: 3.26.5(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 0.2.1(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nice-grpc: specifier: ^2.1.14 version: 2.1.14 @@ -89,7 +89,7 @@ importers: version: 7.28.5(@babel/core@7.28.5)(eslint@8.57.1) '@bufbuild/buf': specifier: ^1.62.1 - version: 1.62.1 + version: 1.63.0 '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 @@ -123,6 +123,9 @@ importers: '@types/tinycolor2': specifier: ^1.4.6 version: 1.4.6 + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.52.0 version: 8.52.0(@typescript-eslint/parser@8.52.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) @@ -134,7 +137,7 @@ importers: version: 1.0.0 '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)) + version: 4.7.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1)) '@zitadel/client': specifier: workspace:* version: link:../../packages/zitadel-client @@ -194,7 +197,7 @@ importers: version: 0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3))(prettier@3.7.4) sass: specifier: ^1.97.1 - version: 1.97.1 + version: 1.97.2 start-server-and-test: specifier: ^2.1.3 version: 2.1.3 @@ -209,49 +212,49 @@ importers: version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^2.1.9 - version: 2.1.9(@types/node@22.19.3)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + version: 2.1.9(@types/node@22.19.3)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) console: dependencies: '@angular/animations': specifier: ^20.3.15 - version: 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/cdk': specifier: ^20.2.14 - version: 20.2.14(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.2.14(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/common': specifier: ^20.3.15 - version: 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@angular/compiler': specifier: ^20.3.15 - version: 20.3.15 + version: 20.3.16 '@angular/core': specifier: ^20.3.15 - version: 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + version: 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/forms': specifier: ^20.3.15 - version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/material': specifier: ^20.2.14 - version: 20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace) + version: 20.2.14(c2c5790ef8fa7b124c6339ef37293a82) '@angular/material-moment-adapter': specifier: ^20.2.14 - version: 20.2.14(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/material@20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace))(moment@2.30.1) + version: 20.2.14(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/material@20.2.14(c2c5790ef8fa7b124c6339ef37293a82))(moment@2.30.1) '@angular/platform-browser': specifier: ^20.3.15 - version: 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^20.3.15 - version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))) + version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.16)(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))) '@angular/router': specifier: ^20.3.15 - version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + version: 20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) '@angular/service-worker': specifier: ^20.3.15 - version: 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@bufbuild/protobuf': specifier: ^2.10.2 version: 2.10.2 @@ -263,10 +266,10 @@ importers: version: 2.0.4(@bufbuild/protobuf@2.10.2)(@connectrpc/connect@2.0.4(@bufbuild/protobuf@2.10.2)) '@ctrl/ngx-codemirror': specifier: ^6.1.0 - version: 6.1.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/forms@20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(codemirror@5.65.20) + version: 6.1.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/forms@20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(codemirror@5.65.20) '@fortawesome/angular-fontawesome': specifier: ^3.0.0 - version: 3.0.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 3.0.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) '@fortawesome/fontawesome-svg-core': specifier: ^6.7.2 version: 6.7.2 @@ -278,22 +281,22 @@ importers: version: 10.3.0 '@ng-icons/core': specifier: ^32.5.0 - version: 32.5.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + version: 32.5.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) '@ng-icons/heroicons': specifier: ^32.5.0 version: 32.5.0 '@ngx-translate/core': specifier: ^17.0.0 - version: 17.0.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 17.0.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) '@tanstack/angular-query-experimental': specifier: ^5.90.20 - version: 5.90.20(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 5.90.20(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) angular-oauth2-oidc: specifier: ^20.0.2 - version: 20.0.2(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 20.0.2(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) angularx-qrcode: specifier: ^20.0.0 - version: 20.0.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 20.0.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -326,13 +329,13 @@ importers: version: 2.30.1 ngx-color: specifier: ^9.0.0 - version: 9.0.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + version: 9.0.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) opentype.js: specifier: ^1.3.4 version: 1.3.4 posthog-js: specifier: ^1.313.0 - version: 1.313.0 + version: 1.315.1 rxjs: specifier: ^7.8.2 version: 7.8.2 @@ -366,19 +369,19 @@ importers: version: 19.8.1(eslint@8.57.1)(typescript@5.9.2) '@angular/build': specifier: ^20.3.13 - version: 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/service-worker@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.6.1)(karma@6.4.4)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@3.4.19(yaml@2.8.2))(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.2)(yaml@2.8.2) + version: 20.3.14(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.16)(typescript@5.9.2))(@angular/compiler@20.3.16)(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/service-worker@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.6.1)(karma@6.4.4)(lightningcss@1.30.1)(postcss@8.5.6)(tailwindcss@3.4.19(yaml@2.8.1))(terser@5.44.0)(tslib@2.8.1)(typescript@5.9.2)(yaml@2.8.1) '@angular/cli': specifier: ^20.3.13 - version: 20.3.13(@types/node@22.19.3)(chokidar@4.0.3) + version: 20.3.14(@types/node@22.19.3)(chokidar@4.0.3)(hono@4.11.3) '@angular/compiler-cli': specifier: ^20.3.15 - version: 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) + version: 20.3.16(@angular/compiler@20.3.16)(typescript@5.9.2) '@angular/language-service': specifier: ^20.3.15 - version: 20.3.15 + version: 20.3.16 '@bufbuild/buf': specifier: ^1.62.1 - version: 1.62.1 + version: 1.63.0 '@types/file-saver': specifier: ^2.0.7 version: 2.0.7 @@ -459,22 +462,22 @@ importers: dependencies: '@bufbuild/buf': specifier: ^1.62.1 - version: 1.62.1 + version: 1.63.0 '@docusaurus/core': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/faster': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18) + version: 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17) '@docusaurus/preset-classic': specifier: ^3.9.2 - version: 3.9.2(@algolia/client-search@5.46.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) + version: 3.9.2(@algolia/client-search@5.41.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) '@docusaurus/theme-mermaid': specifier: ^3.9.2 - version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/theme-search-algolia': specifier: ^3.9.2 - version: 3.9.2(@algolia/client-search@5.46.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) + version: 3.9.2(@algolia/client-search@5.41.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) '@headlessui/react': specifier: ^2.2.9 version: 2.2.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -483,10 +486,10 @@ importers: version: 2.2.0(react@19.2.3) '@inkeep/cxkit-docusaurus': specifier: ^0.5.112 - version: 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5) + version: 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12) '@signalwire/docusaurus-plugin-llms-txt': specifier: ^1.2.2 - version: 1.2.2(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) + version: 1.2.2(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) autoprefixer: specifier: ^10.4.23 version: 10.4.23(postcss@8.5.6) @@ -495,25 +498,25 @@ importers: version: 1.2.1 docusaurus-plugin-image-zoom: specifier: ^3.0.1 - version: 3.0.1(@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) + version: 3.0.1(@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) docusaurus-plugin-openapi-docs: specifier: ^4.5.1 - version: 4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3) + version: 4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3) docusaurus-theme-github-codeblock: specifier: ^2.0.2 - version: 2.0.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.0.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) docusaurus-theme-openapi-docs: specifier: ^4.5.1 - version: 4.5.1(6a37be6aa0b8b235116ce4589405f128) + version: 4.5.1(282ae69948a5d34178ab9649da56ed03) mdx-mermaid: specifier: ^2.0.3 - version: 2.0.3(mermaid@11.12.2)(react@19.2.3)(typescript@5.9.3)(unist-util-visit@5.0.0) + version: 2.0.3(mermaid@11.11.0)(react@19.2.3)(typescript@5.9.3)(unist-util-visit@5.0.0) postcss: specifier: ^8.5.6 version: 8.5.6 raw-loader: specifier: ^4.0.2 - version: 4.0.2(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + version: 4.0.2(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) react: specifier: ^19.2.3 version: 19.2.3 @@ -535,13 +538,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: ^3.9.2 - version: 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@docusaurus/types': specifier: ^3.9.2 - version: 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tailwindcss: specifier: ^3.4.19 - version: 3.4.19(yaml@2.8.2) + version: 3.4.19(yaml@2.8.1) yaml-loader: specifier: ^0.8.1 version: 0.8.1 @@ -569,10 +572,10 @@ importers: devDependencies: '@bufbuild/buf': specifier: ^1.62.1 - version: 1.62.1 + version: 1.63.0 '@bufbuild/protocompile': specifier: ^0.0.1 - version: 0.0.1(@bufbuild/buf@1.62.1) + version: 0.0.1(@bufbuild/buf@1.63.0) '@types/node': specifier: ^24.10.4 version: 24.10.4 @@ -590,13 +593,13 @@ importers: version: 5.80.0(@types/node@24.10.4)(typescript@5.9.3) tsup: specifier: ^8.5.1 - version: 8.5.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1) typescript: specifier: ^5.9.3 version: 5.9.3 vitest: specifier: ^2.1.9 - version: 2.1.9(@types/node@24.10.4)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + version: 2.1.9(@types/node@24.10.4)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) packages/zitadel-proto: dependencies: @@ -606,7 +609,7 @@ importers: devDependencies: '@bufbuild/buf': specifier: ^1.62.1 - version: 1.62.1 + version: 1.63.0 glob: specifier: ^11.1.0 version: 11.1.0 @@ -643,27 +646,27 @@ packages: '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@ai-sdk/gateway@2.0.24': - resolution: {integrity: sha512-mflk80YF8hj8vrF9e1IHhovGKC1ubX+sY88pesSk3pUiXfH5VPO8dgzNnxjwsqsCZrnkHcztxS5cSl4TzSiEuA==} + '@ai-sdk/gateway@2.0.2': + resolution: {integrity: sha512-25F1qPqZxOw9IcV9OQCL29hV4HAFLw5bFWlzQLBi5aDhEZsTMT2rMi3umSqNaUxrrw+dLRtjOL7RbHC+WjbA/A==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.20': - resolution: {integrity: sha512-iXHVe0apM2zUEzauqJwqmpC37A5rihrStAih5Ks+JE32iTe4LZ58y17UGBjpQQTCRw9YxMeo2UFLxLpBluyvLQ==} + '@ai-sdk/provider-utils@3.0.13': + resolution: {integrity: sha512-aXFLBLRPTUYA853MJliItefSXeJPl+mg0KSjbToP41kJ+banBmHO8ZPGLJhNqGlCU82o11TYN7G05EREKX8CkA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider@2.0.1': - resolution: {integrity: sha512-KCUwswvsC5VsW2PWFqF8eJgSCu5Ysj7m1TxiHTVA6g7k360bk0RNQENT8KTMAYEs+8fWPD3Uu4dEmzGHc+jGng==} + '@ai-sdk/provider@2.0.0': + resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} engines: {node: '>=18'} - '@ai-sdk/react@2.0.119': - resolution: {integrity: sha512-kl4CDAnKJ1z+Fc9cjwMQXLRqH5/gHhg8Jn9qW7sZ0LgL8VpiDmW+x+s8e588nE3eC88aL1OxOVyOE6lFYfWprw==} + '@ai-sdk/react@2.0.81': + resolution: {integrity: sha512-JmBE97WtwtLRnK90u4bUZXwxFX+QZQ32y7JFiM+NintaWDymLQ6ukcu3Z5Nr+nc8V9two4+0jxkv8N11lKu+Tw==} engines: {node: '>=18'} peerDependencies: - react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 + react: ^18 || ^19 || ^19.0.0-rc zod: ^3.25.76 || ^4.1.8 peerDependenciesMeta: zod: @@ -673,8 +676,8 @@ packages: resolution: {integrity: sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==} engines: {node: '>= 14.0.0'} - '@algolia/abtesting@1.12.2': - resolution: {integrity: sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ==} + '@algolia/abtesting@1.7.0': + resolution: {integrity: sha512-hOEItTFOvNLI6QX6TSGu7VE4XcUcdoKZT8NwDY+5mWwu87rGhkjlY7uesKTInlg6Sh8cyRkDBYRumxbkoBbBhA==} engines: {node: '>= 14.0.0'} '@algolia/autocomplete-core@1.19.2': @@ -695,56 +698,56 @@ packages: resolution: {integrity: sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-abtesting@5.46.2': - resolution: {integrity: sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A==} + '@algolia/client-abtesting@5.41.0': + resolution: {integrity: sha512-iRuvbEyuHCAhIMkyzG3tfINLxTS7mSKo7q8mQF+FbQpWenlAlrXnfZTN19LRwnVjx0UtAdZq96ThMWGS6cQ61A==} engines: {node: '>= 14.0.0'} '@algolia/client-analytics@5.35.0': resolution: {integrity: sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.46.2': - resolution: {integrity: sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA==} + '@algolia/client-analytics@5.41.0': + resolution: {integrity: sha512-OIPVbGfx/AO8l1V70xYTPSeTt/GCXPEl6vQICLAXLCk9WOUbcLGcy6t8qv0rO7Z7/M/h9afY6Af8JcnI+FBFdQ==} engines: {node: '>= 14.0.0'} '@algolia/client-common@5.35.0': resolution: {integrity: sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.46.2': - resolution: {integrity: sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg==} + '@algolia/client-common@5.41.0': + resolution: {integrity: sha512-8Mc9niJvfuO8dudWN5vSUlYkz7U3M3X3m1crDLc9N7FZrIVoNGOUETPk3TTHviJIh9y6eKZKbq1hPGoGY9fqPA==} engines: {node: '>= 14.0.0'} '@algolia/client-insights@5.35.0': resolution: {integrity: sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.46.2': - resolution: {integrity: sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA==} + '@algolia/client-insights@5.41.0': + resolution: {integrity: sha512-vXzvCGZS6Ixxn+WyzGUVDeR3HO/QO5POeeWy1kjNJbEf6f+tZSI+OiIU9Ha+T3ntV8oXFyBEuweygw4OLmgfiQ==} engines: {node: '>= 14.0.0'} '@algolia/client-personalization@5.35.0': resolution: {integrity: sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.46.2': - resolution: {integrity: sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA==} + '@algolia/client-personalization@5.41.0': + resolution: {integrity: sha512-tkymXhmlcc7w/HEvLRiHcpHxLFcUB+0PnE9FcG6hfFZ1ZXiWabH+sX+uukCVnluyhfysU9HRU2kUmUWfucx1Dg==} engines: {node: '>= 14.0.0'} '@algolia/client-query-suggestions@5.35.0': resolution: {integrity: sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.46.2': - resolution: {integrity: sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w==} + '@algolia/client-query-suggestions@5.41.0': + resolution: {integrity: sha512-vyXDoz3kEZnosNeVQQwf0PbBt5IZJoHkozKRIsYfEVm+ylwSDFCW08qy2YIVSHdKy69/rWN6Ue/6W29GgVlmKQ==} engines: {node: '>= 14.0.0'} '@algolia/client-search@5.35.0': resolution: {integrity: sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.46.2': - resolution: {integrity: sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA==} + '@algolia/client-search@5.41.0': + resolution: {integrity: sha512-G9I2atg1ShtFp0t7zwleP6aPS4DcZvsV4uoQOripp16aR6VJzbEnKFPLW4OFXzX7avgZSpYeBAS+Zx4FOgmpPw==} engines: {node: '>= 14.0.0'} '@algolia/events@4.0.1': @@ -754,48 +757,48 @@ packages: resolution: {integrity: sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.46.2': - resolution: {integrity: sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ==} + '@algolia/ingestion@1.41.0': + resolution: {integrity: sha512-sxU/ggHbZtmrYzTkueTXXNyifn+ozsLP+Wi9S2hOBVhNWPZ8uRiDTDcFyL7cpCs1q72HxPuhzTP5vn4sUl74cQ==} engines: {node: '>= 14.0.0'} '@algolia/monitoring@1.35.0': resolution: {integrity: sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.46.2': - resolution: {integrity: sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw==} + '@algolia/monitoring@1.41.0': + resolution: {integrity: sha512-UQ86R6ixraHUpd0hn4vjgTHbViNO8+wA979gJmSIsRI3yli2v89QSFF/9pPcADR6PbtSio/99PmSNxhZy+CR3Q==} engines: {node: '>= 14.0.0'} '@algolia/recommend@5.35.0': resolution: {integrity: sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.46.2': - resolution: {integrity: sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q==} + '@algolia/recommend@5.41.0': + resolution: {integrity: sha512-DxP9P8jJ8whJOnvmyA5mf1wv14jPuI0L25itGfOHSU6d4ZAjduVfPjTS3ROuUN5CJoTdlidYZE+DtfWHxJwyzQ==} engines: {node: '>= 14.0.0'} '@algolia/requester-browser-xhr@5.35.0': resolution: {integrity: sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.46.2': - resolution: {integrity: sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg==} + '@algolia/requester-browser-xhr@5.41.0': + resolution: {integrity: sha512-C21J+LYkE48fDwtLX7YXZd2Fn7Fe0/DOEtvohSfr/ODP8dGDhy9faaYeWB0n1AvmZltugjkjAXT7xk0CYNIXsQ==} engines: {node: '>= 14.0.0'} '@algolia/requester-fetch@5.35.0': resolution: {integrity: sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.46.2': - resolution: {integrity: sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw==} + '@algolia/requester-fetch@5.41.0': + resolution: {integrity: sha512-FhJy/+QJhMx1Hajf2LL8og4J7SqOAHiAuUXq27cct4QnPhSIuIGROzeRpfDNH5BUbq22UlMuGd44SeD4HRAqvA==} engines: {node: '>= 14.0.0'} '@algolia/requester-node-http@5.35.0': resolution: {integrity: sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.46.2': - resolution: {integrity: sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg==} + '@algolia/requester-node-http@5.41.0': + resolution: {integrity: sha512-tYv3rGbhBS0eZ5D8oCgV88iuWILROiemk+tQ3YsAKZv2J4kKUNvKkrX/If/SreRy4MGP2uJzMlyKcfSfO2mrsQ==} engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': @@ -806,12 +809,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.13': - resolution: {integrity: sha512-JyH6Af6PNC1IHJToColFk1RaXDU87mpPjz7M5sWDfn8bC+KBipw6dSdRkCEuw0D9HY1lZkC9EBV9k9GhpvHjCQ==} + '@angular-devkit/architect@0.2003.14': + resolution: {integrity: sha512-dVlWqaYu0PIgHTBu16uYUS6lJOIpXCpOYhPWuYwqdo7a4x2HcagPQ+omUZJTA6kukh7ROpKcRoiy/DsO/DgvUA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/core@19.2.19': - resolution: {integrity: sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==} + '@angular-devkit/core@19.2.17': + resolution: {integrity: sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -819,8 +822,8 @@ packages: chokidar: optional: true - '@angular-devkit/core@20.3.13': - resolution: {integrity: sha512-/D84T1Caxll3I2sRihPDR9UaWBhF50M+tAX15PdP6uSh/TxwAlLl9p7Rm1bD0mPjPercqaEKA+h9a9qLP16hug==} + '@angular-devkit/core@20.3.14': + resolution: {integrity: sha512-hWQVi73aGdIRInJqNia79Yi6SzqEThkfLug3AdZiNuNvYMaxAI347yPQz4f3Dr/i0QuiqRq/T8zfqbr46tfCqg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -828,12 +831,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@19.2.19': - resolution: {integrity: sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==} + '@angular-devkit/schematics@19.2.17': + resolution: {integrity: sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/schematics@20.3.13': - resolution: {integrity: sha512-hdMKY4rUTko8xqeWYGnwwDYDomkeOoLsYsP6SdaHWK7hpGvzWsT6Q/aIv8J8NrCYkLu+M+5nLiKOooweUZu3GQ==} + '@angular-devkit/schematics@20.3.14': + resolution: {integrity: sha512-+Al9QojzTucccSUnJI+9x64Nnuev82eIgIlb1Ov9hLR572SNtjhV7zIXIalphFghEy+SPvynRuvOSc69Otp3Fg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@angular-eslint/builder@18.3.0': @@ -898,14 +901,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '*' - '@angular/animations@20.3.15': - resolution: {integrity: sha512-ikyKfhkxoqQA6JcBN0B9RaN6369sM1XYX81Id0lI58dmWCe7gYfrTp8ejqxxKftl514psQO3pkW8Gn1nJ131Gw==} + '@angular/animations@20.3.16': + resolution: {integrity: sha512-N83/GFY5lKNyWgPV3xHHy2rb3/eP1ZLzSVI+dmMVbf3jbqwY1YPQcMiAG8UDzaILY1Dkus91kWLF8Qdr3nHAzg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.15 + '@angular/core': 20.3.16 - '@angular/build@20.3.13': - resolution: {integrity: sha512-/5pM3ZS+lLkZgA+n6TMmNV8I6t9Ow1C6Vkj6bXqWeOgFDH5LwnIEZFAKzEDBkCGos0m2gPKPcREcDD5tfp9h4g==} + '@angular/build@20.3.14': + resolution: {integrity: sha512-ajFJqTqyI2N9PYcWVxUfb6YEUQsZ13jsBzI/kDpeEZZCGadLJGSMZVNwkX7n9Csw7gzertpenGBXsSTxUjd8TA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 @@ -915,7 +918,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.13 + '@angular/ssr': ^20.3.14 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -957,38 +960,38 @@ packages: '@angular/core': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/cli@20.3.13': - resolution: {integrity: sha512-G78I/HDJULloS2LSqfUfbmBlhDCbcWujIRWfuMnGsRf82TyGA2OEPe3IA/F8MrJfeOzPQim2fMyn24MqHL40Vg==} + '@angular/cli@20.3.14': + resolution: {integrity: sha512-vlvnxyUtPnETl5az+creSPOrcnrZC5mhD5hSGl2WoqhYeyWdyUwsC9KLSy8/5gCH/4TNwtjqeX3Pw0KaAJUoCQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@20.3.15': - resolution: {integrity: sha512-k4mCXWRFiOHK3bUKfWkRQQ8KBPxW8TAJuKLYCsSHPCpMz6u0eA1F0VlrnOkZVKWPI792fOaEAWH2Y4PTaXlUHw==} + '@angular/common@20.3.16': + resolution: {integrity: sha512-GRAziNlntwdnJy3F+8zCOvDdy7id0gITjDnM6P9+n2lXvtDuBLGJKU3DWBbvxcCjtD6JK/g/rEX5fbCxbUHkQQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.15 + '@angular/core': 20.3.16 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.15': - resolution: {integrity: sha512-8sJoxodxsfyZ8eJ5r6Bx7BCbazXYgsZ1+dE8t5u5rTQ6jNggwNtYEzkyReoD5xvP+MMtRkos3xpwq4rtFnpI6A==} + '@angular/compiler-cli@20.3.16': + resolution: {integrity: sha512-l3xF/fXfJAl/UrNnH9Ufkr79myjMgXdHq1mmmph2UnpeqilRB1b8lC9sLBV9MipQHVn3dwocxMIvtrcryfOaXw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.15 + '@angular/compiler': 20.3.16 typescript: '>=5.8 <6.0' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.15': - resolution: {integrity: sha512-lMicIAFAKZXa+BCZWs3soTjNQPZZXrF/WMVDinm8dQcggNarnDj4UmXgKSyXkkyqK5SLfnLsXVzrX6ndVT6z7A==} + '@angular/compiler@20.3.16': + resolution: {integrity: sha512-Pt9Ms9GwTThgzdxWBwMfN8cH1JEtQ2DK5dc2yxYtPSaD+WKmG9AVL1PrzIYQEbaKcWk2jxASUHpEWSlNiwo8uw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.15': - resolution: {integrity: sha512-NMbX71SlTZIY9+rh/SPhRYFJU0pMJYW7z/TBD4lqiO+b0DTOIg1k7Pg9ydJGqSjFO1Z4dQaA6TteNuF99TJCNw==} + '@angular/core@20.3.16': + resolution: {integrity: sha512-KSFPKvOmWWLCJBbEO+CuRUXfecX2FRuO0jNi9c54ptXMOPHlK1lIojUnyXmMNzjdHgRug8ci9qDuftvC2B7MKg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.15 + '@angular/compiler': 20.3.16 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -997,17 +1000,17 @@ packages: zone.js: optional: true - '@angular/forms@20.3.15': - resolution: {integrity: sha512-gS5hQkinq52pm/7mxz4yHPCzEcmRWjtUkOVddPH0V1BW/HMni/p4Y6k2KqKBeGb9p8S5EAp6PDxDVLOPukp3mg==} + '@angular/forms@20.3.16': + resolution: {integrity: sha512-1yzbXpExTqATpVcqA3wGrq4ACFIP3mRxA4pbso5KoJU+/4JfzNFwLsDaFXKpm5uxwchVnj8KM2vPaDOkvtp7NA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.15 - '@angular/core': 20.3.15 - '@angular/platform-browser': 20.3.15 + '@angular/common': 20.3.16 + '@angular/core': 20.3.16 + '@angular/platform-browser': 20.3.16 rxjs: ^6.5.3 || ^7.4.0 - '@angular/language-service@20.3.15': - resolution: {integrity: sha512-oD5rvAsZYzNqdJqMTYYp6T9yITG6axTI/j64v3qxHe+Y/PlHKfNHXcjENpA+LcR5wq0wtIE+s96APykCq9ouEQ==} + '@angular/language-service@20.3.16': + resolution: {integrity: sha512-0A/tSQPq5geIz2mMcZA5fzzbzT39v+ADQksnfPr8htNxtkYWy+EI5+d0+++k59NuvjLY4uTBqhRTRB9b1PKrjw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@angular/material-moment-adapter@20.2.14': @@ -1027,46 +1030,49 @@ packages: '@angular/platform-browser': ^20.0.0 || ^21.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@20.3.15': - resolution: {integrity: sha512-RizuRdBt0d6ongQ2y8cr8YsXFyjF8f91vFfpSNw+cFj+oiEmRC1txcWUlH5bPLD9qSDied8qazUi0Tb8VPQDGw==} + '@angular/platform-browser-dynamic@20.3.16': + resolution: {integrity: sha512-5mECCV9YeKH6ue239GXRTGeDSd/eTbM1j8dDejhm5cGnPBhTxRw4o+GgSrWTYtb6VmIYdwUGBTC+wCBphiaQ2A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.15 - '@angular/compiler': 20.3.15 - '@angular/core': 20.3.15 - '@angular/platform-browser': 20.3.15 + '@angular/common': 20.3.16 + '@angular/compiler': 20.3.16 + '@angular/core': 20.3.16 + '@angular/platform-browser': 20.3.16 - '@angular/platform-browser@20.3.15': - resolution: {integrity: sha512-TxRM/wTW/oGXv/3/Iohn58yWoiYXOaeEnxSasiGNS1qhbkcKtR70xzxW6NjChBUYAixz2ERkLURkpx3pI8Q6Dw==} + '@angular/platform-browser@20.3.16': + resolution: {integrity: sha512-YsrLS6vyS77i4pVHg4gdSBW74qvzHjpQRTVQ5Lv/OxIjJdYYYkMmjNalCNgy1ZuyY6CaLIB11ccxhrNnxfKGOQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.15 - '@angular/common': 20.3.15 - '@angular/core': 20.3.15 + '@angular/animations': 20.3.16 + '@angular/common': 20.3.16 + '@angular/core': 20.3.16 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@20.3.15': - resolution: {integrity: sha512-6+qgk8swGSoAu7ISSY//GatAyCP36hEvvUgvjbZgkXLLH9yUQxdo77ij05aJ5s0OyB25q/JkqS8VTY0z1yE9NQ==} + '@angular/router@20.3.16': + resolution: {integrity: sha512-e1LiQFZaajKqc00cY5FboIrWJZSMnZ64GDp5R0UejritYrqorQQQNOqP1W85BMuY2owibMmxVfX+dJg/Mc8PuQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.15 - '@angular/core': 20.3.15 - '@angular/platform-browser': 20.3.15 + '@angular/common': 20.3.16 + '@angular/core': 20.3.16 + '@angular/platform-browser': 20.3.16 rxjs: ^6.5.3 || ^7.4.0 - '@angular/service-worker@20.3.15': - resolution: {integrity: sha512-HCptODPVWg30XJwSueOz2zqsJjQ1chSscTs7FyIQcfuCTTthO35Lvz2Gtct8/GNHel9QNvvVwA5jrLjsU4dt1A==} + '@angular/service-worker@20.3.16': + resolution: {integrity: sha512-qme+jz3ySWas4JRif6NVaxWStas1XmOaws6EUfpei1AAlK0aBXmuTZtF3YAQDfP6RxLQP/axE0Vm1TpYhNYahA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/core': 20.3.15 + '@angular/core': 20.3.16 rxjs: ^6.5.3 || ^7.4.0 '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@antfu/utils@9.2.0': + resolution: {integrity: sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==} + '@apidevtools/json-schema-ref-parser@11.9.3': resolution: {integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==} engines: {node: '>= 16'} @@ -1078,10 +1084,18 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.5': resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} + '@babel/core@7.23.7': + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + engines: {node: '>=6.9.0'} + '@babel/core@7.28.3': resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} engines: {node: '>=6.9.0'} @@ -1176,6 +1190,10 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} @@ -1192,6 +1210,11 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.28.5': resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} @@ -1667,6 +1690,10 @@ packages: resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} @@ -1674,50 +1701,50 @@ packages: '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} - '@bufbuild/buf-darwin-arm64@1.62.1': - resolution: {integrity: sha512-qklVRzBgdzLv9fVa9OX/ewpgX4H34b4mKezJsDPGRwAwykgswgF39jhihIRDJNI40/Gi2Ik0tvmg4v8aO2E/1Q==} + '@bufbuild/buf-darwin-arm64@1.63.0': + resolution: {integrity: sha512-Jpbz2mnNO+23E3TmDgLdbYuF+ozqsKu/ASvD37RjDgp9HtqQT+ciJMYOzqd/HdrGiM9tWYN1vhjl/gP/Y23lIw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@bufbuild/buf-darwin-x64@1.62.1': - resolution: {integrity: sha512-HUEiPeIL9mFHSM5z9ZdD0ZgjQaDxwFnDr4sv62/ajgMZd0h/rXe212CPrrLxmufhNx1jnDuxiSyhhAvl6lS5bA==} + '@bufbuild/buf-darwin-x64@1.63.0': + resolution: {integrity: sha512-HkVMm2cOBnTtT+AZFAQAUyrwcXtnvaBtVCW0ltBi5PzLp6CNgmkH97OAROKWiNPWrXJh5thdhdZBNjGPyTfX3w==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@bufbuild/buf-linux-aarch64@1.62.1': - resolution: {integrity: sha512-NdLOdRSkhKDlOmRhwywbC0Bo5TcPuRscqwVLOWWkarDNG1mybMCZYTvzXyuvdHVILsq8aA3T5w9yfuzMsVNfQg==} + '@bufbuild/buf-linux-aarch64@1.63.0': + resolution: {integrity: sha512-vFeFKzC+PZSngct0bP3ASGCus7qhBPFxSfz6Hi+3a2zAajn857iJC3iPiX0tRlRIUTOHuj5NmOYxg9dhev0vDw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@bufbuild/buf-linux-armv7@1.62.1': - resolution: {integrity: sha512-BVaXXud1YQ++vK7OVH3CiQwSXqmzSU+f03Jhy+FxiXQZuCQ9+EQsqsCIdVYdTFTCNd4O8l66d290+smLVDf1/A==} + '@bufbuild/buf-linux-armv7@1.63.0': + resolution: {integrity: sha512-XbrRiOfeY3d/GmR+WNnkcDo480V+cz/ecfj/Ay/JO/ZLe7quEQqHmJ6dMcIQN8QNFPZBKv0IVyhhljh8+0/gkA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@bufbuild/buf-linux-x64@1.62.1': - resolution: {integrity: sha512-lmN5op+lRlcaOLohfAhYh6VkEnj0mDxuhVAEXOtG9rTpxDguOgFFDzoYzoVdxtGDAg9npgQaUl7W58KO9kfTHw==} + '@bufbuild/buf-linux-x64@1.63.0': + resolution: {integrity: sha512-78TsMWxQ7Rn4FJPN4QZZDM3NTS1U5ZCcwLYJmwOLJbHyfYnFiC1e91yL6sVfYrWXF1Pt9xJZU50yhmJZ+9AtmA==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@bufbuild/buf-win32-arm64@1.62.1': - resolution: {integrity: sha512-jXO8TXIY8yVC/1br687WAJx7feRfccqOZYRDy9AaPupQ40Cv8l0L4TWckGketaftDcnJCWBStO5+rwjAmN7fug==} + '@bufbuild/buf-win32-arm64@1.63.0': + resolution: {integrity: sha512-sMZ63kK+MuxZVBFAh95Woly9QmeApohgQoWvO9ZppTzNXya7Kznz5lqa0B7f3zfDxgy2/DmOXILOMn3n8GoAww==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@bufbuild/buf-win32-x64@1.62.1': - resolution: {integrity: sha512-djH6dYHCLBCNilXHzAZDxo39EIS2/etiShgznSI/mQe8ybsaObqoK8CCxLu+kpUXYFaDd4onbFQKos2fxONDqQ==} + '@bufbuild/buf-win32-x64@1.63.0': + resolution: {integrity: sha512-ooY4o3XPpvJ6BEOWB18pc52beeB9NdRRHMINuZ1oef3HNsFqtbv7DrPX9vm/mmOkzbTQDa8m7M8bjWjBO9ynkg==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@bufbuild/buf@1.62.1': - resolution: {integrity: sha512-0S+7jXEl9LXdG8+lyoqGbHFiKgFjRK/EuuFxw+szMT9qVOhg4//j0wIfZ/visOCU2FB1fQNuesb1MB4WVnwH0A==} + '@bufbuild/buf@1.63.0': + resolution: {integrity: sha512-SvYWiCs9J8tX8qIh1haNJEwM0MmyauSFDDksHL4wtPjeXcEj+SMvWudIn8KdWoiFbNDY98phn4sqZQ4F6uViPQ==} engines: {node: '>=12'} hasBin: true @@ -2054,24 +2081,12 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-position-area-property@1.0.0': - resolution: {integrity: sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@4.2.1': resolution: {integrity: sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-property-rule-prelude-list@1.0.0': - resolution: {integrity: sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - '@csstools/postcss-random-function@2.0.1': resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} engines: {node: '>=18'} @@ -2102,18 +2117,6 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1': - resolution: {integrity: sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-system-ui-font-family@1.0.0': - resolution: {integrity: sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.3': resolution: {integrity: sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==} engines: {node: '>=18'} @@ -2162,8 +2165,8 @@ packages: resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} - '@cypress/request@3.0.10': - resolution: {integrity: sha512-hauBrOdvu08vOsagkZ/Aju5XuiZx6ldsLfByg1htFeldhex+PeMrYauANzFsMJeAA0+dyPLbDoX2OYuvVoLDkQ==} + '@cypress/request@3.0.9': + resolution: {integrity: sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==} engines: {node: '>= 6'} '@cypress/xvfb@1.2.4': @@ -2173,25 +2176,11 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@docsearch/core@4.4.0': - resolution: {integrity: sha512-kiwNo5KEndOnrf5Kq/e5+D9NBMCFgNsDoRpKQJ9o/xnSlheh6b8AXppMuuUVVdAUIhIfQFk/07VLjjk/fYyKmw==} - peerDependencies: - '@types/react': '>= 16.8.0 < 20.0.0' - react: '>= 16.8.0 < 20.0.0' - react-dom: '>= 16.8.0 < 20.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true + '@docsearch/css@4.2.0': + resolution: {integrity: sha512-65KU9Fw5fGsPPPlgIghonMcndyx1bszzrDQYLfierN+Ha29yotMHzVS94bPkZS6On9LS8dE4qmW4P/fGjtCf/g==} - '@docsearch/css@4.4.0': - resolution: {integrity: sha512-e9vPgtih6fkawakmYo0Y6V4BKBmDV7Ykudn7ADWXUs5b6pmtBRwDbpSG/WiaUG63G28OkJDEnsMvgIAnZgGwYw==} - - '@docsearch/react@4.4.0': - resolution: {integrity: sha512-z12zeg1mV7WD4Ag4pKSuGukETJLaucVFwszDXL/qLaEgRqxEaVacO9SR1qqnCXvZztlvz2rt7cMqryi/7sKfjA==} + '@docsearch/react@4.2.0': + resolution: {integrity: sha512-zSN/KblmtBcerf7Z87yuKIHZQmxuXvYc6/m0+qnjyNu+Ir67AVOagTa1zBqcxkVUVkmBqUExdcyrdo9hbGbqTw==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' react: '>= 16.8.0 < 20.0.0' @@ -2391,11 +2380,17 @@ packages: resolution: {integrity: sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==} engines: {node: '>=20.0'} + '@emnapi/core@1.5.0': + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -2850,12 +2845,22 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2900,23 +2905,23 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/ecma402-abstract@2.3.6': - resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} + '@formatjs/ecma402-abstract@2.3.4': + resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} '@formatjs/fast-memoize@2.2.7': resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - '@formatjs/icu-messageformat-parser@2.11.4': - resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} + '@formatjs/icu-messageformat-parser@2.11.2': + resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} - '@formatjs/icu-skeleton-parser@1.8.16': - resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} + '@formatjs/icu-skeleton-parser@1.8.14': + resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} '@formatjs/intl-localematcher@0.5.10': resolution: {integrity: sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==} - '@formatjs/intl-localematcher@0.6.2': - resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} + '@formatjs/intl-localematcher@0.6.1': + resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} '@fortawesome/angular-fontawesome@3.0.0': resolution: {integrity: sha512-+8Dd6DoJnqArfrZ5NvjHyRL64IIkTigXclbOOcFdYQ8/WFERQUDaEU6SAV8Q0JBpJhMS1McED7YCOCAE6SIVyA==} @@ -2968,8 +2973,8 @@ packages: '@hapi/pinpoint@2.0.1': resolution: {integrity: sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==} - '@hapi/tlds@1.1.4': - resolution: {integrity: sha512-Fq+20dxsxLaUn5jSSWrdtSRcIUba2JquuorF9UW1wIJS5cSUwxIsO2GIhaWynPRflvxSzFN+gxKte2HEW1OuoA==} + '@hapi/tlds@1.1.3': + resolution: {integrity: sha512-QIvUMB5VZ8HMLZF9A2oWr3AFM430QC8oGd0L35y2jHpuW6bIIca6x/xL7zUf4J7L9WJ3qjz+iJII8ncaeMbpSg==} engines: {node: '>=14.0.0'} '@hapi/topo@5.1.0': @@ -2990,6 +2995,12 @@ packages: peerDependencies: react: '>= 16 || ^19.0.0-rc' + '@hono/node-server@1.19.7': + resolution: {integrity: sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + '@hookform/error-message@2.0.1': resolution: {integrity: sha512-U410sAr92xgxT1idlu9WWOVjndxLdgPUHEB8Schr27C9eh7/xUnITWpCMF93s+lGiG++D4JnbSnrb5A21AdSNg==} peerDependencies: @@ -3016,8 +3027,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@3.1.0': - resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==} + '@iconify/utils@3.0.1': + resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==} '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} @@ -3183,12 +3194,12 @@ packages: '@inkeep/cxkit-types@0.5.112': resolution: {integrity: sha512-6wGWNAJmvhKXpkTzY3sme3Kf+H3gKNuxB+Ap8k33sj4PXf5d5kgU1qdKDbkIsy9iUSZktlwwmdlDBJzGnySPig==} - '@inquirer/ansi@1.0.2': - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} engines: {node: '>=18'} - '@inquirer/checkbox@4.3.2': - resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + '@inquirer/checkbox@4.2.4': + resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3205,8 +3216,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.21': - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3214,8 +3225,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.3.2': - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3223,8 +3234,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.23': - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + '@inquirer/editor@4.2.20': + resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3232,8 +3243,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.23': - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + '@inquirer/expand@4.0.20': + resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3241,8 +3252,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3250,12 +3261,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/input@4.3.1': - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + '@inquirer/input@4.2.4': + resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3263,8 +3274,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.23': - resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + '@inquirer/number@3.0.20': + resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3272,8 +3283,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.23': - resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + '@inquirer/password@4.0.20': + resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3290,8 +3301,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.11': - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + '@inquirer/rawlist@4.1.8': + resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3299,8 +3310,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.2.2': - resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + '@inquirer/search@3.1.3': + resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3308,8 +3319,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.4.2': - resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + '@inquirer/select@4.3.4': + resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3317,8 +3328,8 @@ packages: '@types/node': optional: true - '@inquirer/type@3.0.10': - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3492,11 +3503,11 @@ packages: '@types/react': '>=16' react: '>=16' - '@mermaid-js/parser@0.6.3': - resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==} + '@mermaid-js/parser@0.6.2': + resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==} - '@modelcontextprotocol/sdk@1.24.0': - resolution: {integrity: sha512-D8h5KXY2vHFW8zTuxn2vuZGN0HGrQ5No6LkHwlEA9trVgNdPL3TF1dSqKA7Dny6BbBYKSW/rOBDXdC8KJAjUCg==} + '@modelcontextprotocol/sdk@1.25.2': + resolution: {integrity: sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -3505,23 +3516,23 @@ packages: '@cfworker/json-schema': optional: true - '@module-federation/error-codes@0.22.0': - resolution: {integrity: sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==} + '@module-federation/error-codes@0.18.0': + resolution: {integrity: sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ==} - '@module-federation/runtime-core@0.22.0': - resolution: {integrity: sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==} + '@module-federation/runtime-core@0.18.0': + resolution: {integrity: sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ==} - '@module-federation/runtime-tools@0.22.0': - resolution: {integrity: sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==} + '@module-federation/runtime-tools@0.18.0': + resolution: {integrity: sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA==} - '@module-federation/runtime@0.22.0': - resolution: {integrity: sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==} + '@module-federation/runtime@0.18.0': + resolution: {integrity: sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw==} - '@module-federation/sdk@0.22.0': - resolution: {integrity: sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==} + '@module-federation/sdk@0.18.0': + resolution: {integrity: sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A==} - '@module-federation/webpack-bundler-runtime@0.22.0': - resolution: {integrity: sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==} + '@module-federation/webpack-bundler-runtime@0.18.0': + resolution: {integrity: sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ==} '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} @@ -3665,8 +3676,8 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.0.7': - resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.0.4': + resolution: {integrity: sha512-+ZEtJPp8EF8h4kN6rLQECRor00H7jtDgBVtttIUoxuDkXLiQMaSBqju3LV/IEsMvqVG5pviUvR4jYhIA1xNm8w==} '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -3802,53 +3813,53 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@nx/nx-darwin-arm64@22.3.3': - resolution: {integrity: sha512-zBAGFGLal09CxhQkdMpOVwcwa9Y01aFm88jTTn35s/DdIWsfngmPzz0t4mG7u2D05q7TJfGQ31pIf5GkNUjo6g==} + '@nx/nx-darwin-arm64@21.6.3': + resolution: {integrity: sha512-y/Wuo+FEky/ehah5UyERpQpUOm+KOc437zRwUrMGumNUFk73DaHVMmqABCZ1J5eqam60XgRZhq05qpRn+8dhtA==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.3.3': - resolution: {integrity: sha512-6ZQ6rMqH8NY4Jz+Gc89D5bIH2NxZb5S/vaA4yJ9RrqAfl4QWchNFD5na+aRivSd+UdsYLPKKl6qohet5SE6vOg==} + '@nx/nx-darwin-x64@21.6.3': + resolution: {integrity: sha512-+9rogeP6EmlMBcUwflfOmFbQOWgAnJdupeJJuSenzWJCn/bE1C2iIGhuq4u4zajo2VceyN7uirlAWc8cQWCevw==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.3.3': - resolution: {integrity: sha512-J/PP5pIOQtR7ZzrFwP6d6h0yfY7r9EravG2m940GsgzGbtZGYIDqnh5Wdt+4uBWPH8VpdNOwFqH0afELtJA3MA==} + '@nx/nx-freebsd-x64@21.6.3': + resolution: {integrity: sha512-jrewLpv/J84ze+sC+P0x1INVuXTWqU4qdZIPe0ItrRMDMmxiHdhm6LtHEEo5JYezqM/LgB87yjFE49Qsudtadw==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.3.3': - resolution: {integrity: sha512-/zn0altzM15S7qAgXMaB41vHkEn18HyTVUvRrjmmwaVqk9WfmDmqOQlGWoJ6XCbpvKQ8bh14RyhR9LGw1JJkNA==} + '@nx/nx-linux-arm-gnueabihf@21.6.3': + resolution: {integrity: sha512-VyMIKSp1N2ulA2wkAKIH+9a8k4tl67bH2wnvYROTRnfFykeczodfOxWeCAggS//1ccBM05pRxBklMt7fgAqV8w==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.3.3': - resolution: {integrity: sha512-NmPeCexWIZHW9RM3lDdFENN9C3WtlQ5L4RSNFESIjreS921rgePhulsszYdGnHdcnKPYlBBJnX/NxVsfioBbnQ==} + '@nx/nx-linux-arm64-gnu@21.6.3': + resolution: {integrity: sha512-l6/YZp5MJ5TYWbHoaR31lsqd4Ia2AnaGSACeNCUAsUsUNaa099nwmvFaKQEJxUX1aMpe4kHLyVbomK7ydEX+pg==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@22.3.3': - resolution: {integrity: sha512-K02U88Q0dpvCfmSXXvY7KbYQSa1m+mkYeqDBRHp11yHk1GoIqaHp8oEWda7FV4gsriNExPSS5tX1/QGVoLZrCw==} + '@nx/nx-linux-arm64-musl@21.6.3': + resolution: {integrity: sha512-klidxt4eiSxgLa1LW7YUHstm3qsptz+XD1+3w0ofX1rkdVkK1afrfcolzoeZ5nc4Av7MzZB0g0PoFTGHUIBkrw==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@22.3.3': - resolution: {integrity: sha512-04TEbvgwRaB9ifr39YwJmWh3RuXb4Ry4m84SOJyjNXAfPrepcWgfIQn1VL2ul1Ybq+P023dLO9ME8uqFh6j1YQ==} + '@nx/nx-linux-x64-gnu@21.6.3': + resolution: {integrity: sha512-B5ZvolVUIKKmacbZw1XD2nBIbebE2T6vBbMYq6kZP7PfSsfO5Y0HaWIsK8ulwCj35TPaEn9x/XbHJp5RakU7Ng==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@22.3.3': - resolution: {integrity: sha512-uxBXx5q+S5OGatbYDxnamsKXRKlYn+Eq1nrCAHaf8rIfRoHlDiRV2PqtWuF+O2pxR5FWKpvr+/sZtt9rAf7KMw==} + '@nx/nx-linux-x64-musl@21.6.3': + resolution: {integrity: sha512-11L6SigPvjnIFbr4ivXlcH0fOPs55SvT8gkg2TOsSohKFY/Ze4O43NuoZe/7dilLjNgq8aWTbnbSuRK/kFGdBQ==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@22.3.3': - resolution: {integrity: sha512-aOwlfD6ZA1K6hjZtbhBSp7s1yi3sHbMpLCa4stXzfhCCpKUv46HU/EdiWdE1N8AsyNFemPZFq81k1VTowcACdg==} + '@nx/nx-win32-arm64-msvc@21.6.3': + resolution: {integrity: sha512-hC84RvGp5YxGhQLitHcg3cohTy7sdsvIRIErq3EsJNlHIaUTZJAegno26sRpRE4Y/5G5RWqfzDCCERg9c3Askw==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.3.3': - resolution: {integrity: sha512-EDR8BtqeDvVNQ+kPwnfeSfmerYetitU3tDkxOMIybjKJDh69U2JwTB8n9ARwNaZQbNk7sCGNRUSZFTbAAUKvuQ==} + '@nx/nx-win32-x64-msvc@21.6.3': + resolution: {integrity: sha512-vcnVwrTsOVdN6ovKO6qFDHXYRa+lxKFLRGCUHvJvjTOddT1/xJqkL8NE4i1YDWZiCQCck0BizR3Kvs+N0DqHoQ==} cpu: [x64] os: [win32] @@ -4074,6 +4085,9 @@ packages: '@posthog/core@1.9.0': resolution: {integrity: sha512-j7KSWxJTUtNyKynLt/p0hfip/3I46dWU2dk+pt7dKRoz2l5CYueHuHK4EO7Wlgno5yo1HO4sc4s30MXMTICHJw==} + '@posthog/types@1.315.1': + resolution: {integrity: sha512-m2NggfJRYby3AkAES6yHMLURvTeK+rxN+5nmkuaCbOXQPdtWacSFIG5ZwN8d3crSx+WpiFauCDdr1sc3ZFkTHg==} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -4199,19 +4213,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.8': - resolution: {integrity: sha512-67zGQT0wy7/XFIBSsmNbBd+3WekKbEtZVTIFJ7MpgfDQrEBv2gtf+z7C1zdZPMiw/jy5aDajEhRuIW5T3Y9n9Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-compose-refs@1.1.1': resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: @@ -4248,15 +4249,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.3': - resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-direction@1.1.0': resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} peerDependencies: @@ -4345,8 +4337,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-scope@1.1.8': - resolution: {integrity: sha512-BFjgXkfyRXxFJ0t/Xs4QSsb2wmkDfJ983j4vzC95on81gKPtJdJ+5ESHOuwKGm/umcWd2En33AiEMgyUGSKWQw==} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4441,19 +4433,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.10': - resolution: {integrity: sha512-4kY9IVa6+9nJPsYmngK5Uk2kUmZnv7ChhHAFeQ5oaj8jrR1bIi3xww8nH71pz1/Ve4d/cXO3YxT8eikt1B0a8w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-portal@1.1.3': resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} peerDependencies: @@ -4558,19 +4537,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.4': - resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-roving-focus@1.1.11': resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: @@ -4624,15 +4590,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.2.4': - resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-tabs@1.1.13': resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: @@ -4830,14 +4787,14 @@ packages: '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - '@react-aria/focus@3.21.3': - resolution: {integrity: sha512-FsquWvjSCwC2/sBk4b+OqJyONETUIXQ2vM0YdPAuC+QFQh2DT6TIBo6dOZVSezlhudDla69xFBd6JvCFq1AbUw==} + '@react-aria/focus@3.21.1': + resolution: {integrity: sha512-hmH1IhHlcQ2lSIxmki1biWzMbGgnhdxJUM0MFfzc71Rv6YAzhlx4kX3GYn4VNcjCeb6cdPv4RZ5vunV4kgMZYQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/interactions@3.26.0': - resolution: {integrity: sha512-AAEcHiltjfbmP1i9iaVw34Mb7kbkiHpYdqieWufldh4aplWgsF11YQZOfaCJW4QoR2ML4Zzoa9nfFwLXA52R7Q==} + '@react-aria/interactions@3.25.5': + resolution: {integrity: sha512-EweYHOEvMwef/wsiEqV73KurX/OqnmbzKQa2fLxdULbec5+yDj6wVGaRHIzM4NiijIDe+bldEl5DG05CAKOAHA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -4848,8 +4805,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/utils@3.32.0': - resolution: {integrity: sha512-/7Rud06+HVBIlTwmwmJa2W8xVtgxgzm0+kLbuFooZRzKDON6hhozS1dOMR/YLMxyJOaYOTpImcP4vRR9gL1hEg==} + '@react-aria/utils@3.30.1': + resolution: {integrity: sha512-zETcbDd6Vf9GbLndO6RiWJadIZsBU2MMm23rBACXLmpRztkrIqPEb2RVdlLaq1+GklDx0Ii6PfveVjx+8S5U6A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -4857,24 +4814,24 @@ packages: '@react-stately/flags@3.1.2': resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} - '@react-stately/utils@3.11.0': - resolution: {integrity: sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==} + '@react-stately/utils@3.10.8': + resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.32.1': - resolution: {integrity: sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==} + '@react-types/shared@3.32.0': + resolution: {integrity: sha512-t+cligIJsZYFMSPFMvsJMjzlzde06tZMOIOFa1OV5Z0BcMowrb2g4mB57j/9nP28iJIRYn10xCniQts+qadrqQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@redocly/ajv@8.17.1': - resolution: {integrity: sha512-EDtsGZS964mf9zAUXAl9Ew16eYbeyAFWhsPr0fX6oaJxgd8rApYlPBf0joyhnUHz88WxrigyFtTaqqzXNzPgqw==} + '@redocly/ajv@8.11.3': + resolution: {integrity: sha512-4P3iZse91TkBiY+Dx5DUgxQ9GXkVJf++cmI0MOyLDxV9b5MUBI4II6ES8zA5JCbO72nKAJxWrw4PUPW+YP3ZDQ==} '@redocly/config@0.22.2': resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} - '@redocly/openapi-core@1.34.6': - resolution: {integrity: sha512-2+O+riuIUgVSuLl3Lyh5AplWZyVMNuG2F98/o6NrutKJfW4/GTZdPpZlIphS0HGgcOHgmWcCSHj+dWFlZaGSHw==} + '@redocly/openapi-core@1.34.5': + resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} '@reduxjs/toolkit@1.9.7': @@ -4896,290 +4853,165 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.55.1': - resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm64@4.52.3': resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.55.1': - resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==} - cpu: [arm64] - os: [android] - '@rollup/rollup-darwin-arm64@4.52.3': resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.55.1': - resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.52.3': resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.55.1': - resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-freebsd-arm64@4.52.3': resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.55.1': - resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.52.3': resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.55.1': - resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.52.3': resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.55.1': - resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.52.3': resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.55.1': - resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.52.3': resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.55.1': - resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.52.3': resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.55.1': - resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.52.3': resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.55.1': - resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loong64-musl@4.55.1': - resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.52.3': resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.55.1': - resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-musl@4.55.1': - resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.52.3': resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.55.1': - resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.52.3': resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.55.1': - resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.52.3': resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.55.1': - resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.52.3': resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.55.1': - resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.52.3': resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.55.1': - resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openbsd-x64@4.55.1': - resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} - cpu: [x64] - os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.52.3': resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-openharmony-arm64@4.55.1': - resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==} - cpu: [arm64] - os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.52.3': resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.55.1': - resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.52.3': resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.55.1': - resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-x64-gnu@4.52.3': resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.55.1': - resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.52.3': resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.55.1': - resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==} - cpu: [x64] - os: [win32] - - '@rspack/binding-darwin-arm64@1.7.0': - resolution: {integrity: sha512-HMYrhvVh3sMRBXl6cSI2JqsvlHJKQ42qX+Sw4qbj7LeZBN6Gv4GjfL3cXRLUTdO37FOC0uLEUYgxVXetx/Y4sA==} + '@rspack/binding-darwin-arm64@1.5.3': + resolution: {integrity: sha512-8R1uqr5E2CzRZjsA1QLXkD4xwcsiHmLJTIzCNj9QJ4+lCw6XgtPqpHZuk3zNROLayijEKwotGXJFHJIbgv1clA==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.7.0': - resolution: {integrity: sha512-R/SoR04ySmHPqoIBGC+SjP9zRGjL1fS908mdwBvQ1RfFinKu7a/o/5rxH/vxUUsVQrHCyX+o7YXpfWq9xpvyQA==} + '@rspack/binding-darwin-x64@1.5.3': + resolution: {integrity: sha512-R4sb+scZbaBasyS+TQ6dRvv+f/2ZaZ0nXgY7t/ehcuGRvUz3S7FTJF/Mr/Ocxj5oVfb06thDAm+zaAVg+hsM9A==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.7.0': - resolution: {integrity: sha512-jDCcso++qshu58+Iuo6oiL0XKuX04lDugL0qwrWHW8SS/EjZ2rc1J3yQx+XDW0PCQsfI2c9ji0IOW56PzW1hXQ==} + '@rspack/binding-linux-arm64-gnu@1.5.3': + resolution: {integrity: sha512-NeDJJRNTLx8wOQT+si90th7cdt04I2F697Mp5w0a3Jf3XHAmsraBMn0phdLGWJoUWrrfVGthjgZDl5lcc1UHEA==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-arm64-musl@1.7.0': - resolution: {integrity: sha512-0W49s0SQQhr3hZ8Zd7Auyf2pv4OTBr6wQhgWUQ6XeeMEjB16KpAVypSK5Jpn1ON0v9jAPLdod+a255rz8/f3kg==} + '@rspack/binding-linux-arm64-musl@1.5.3': + resolution: {integrity: sha512-M9utPq9s7zJkKapUlyfwwYT/rjZ+XM56NHQMUH9MVYgMJIl+66QURgWUXCAbuogxf1XWayUGQaZsgypoOrTG9A==} cpu: [arm64] os: [linux] - '@rspack/binding-linux-x64-gnu@1.7.0': - resolution: {integrity: sha512-oFjzjTD1MmG0ucAaP0Wyg9eobrsnFwZjEHa7LwyzWDRBeC3GWAF9T04Bqd6Ba6DgASGzU0BjEJcUpjvtXxO95Q==} + '@rspack/binding-linux-x64-gnu@1.5.3': + resolution: {integrity: sha512-AsKqU4pIg0yYg1VvSEU0NspIwCexqXD2AYE0wujAAwBo0hOfbt5dl1JCK7idiZdIQvoFg86HbfGwdHIVcFLI0w==} cpu: [x64] os: [linux] - '@rspack/binding-linux-x64-musl@1.7.0': - resolution: {integrity: sha512-MNGslPLOsurdwOcoo6r0u8mLpw1ADar3hkx67WzwwMqYnem/Ky0aANJC2JvQHPC22mu01gCOukHYyEaUFTxcuw==} + '@rspack/binding-linux-x64-musl@1.5.3': + resolution: {integrity: sha512-0aHuvDef92pFZaHhk8Mp8RP9TfTzhQ+Pjqrc2ixRS/FeJA+jVB2CSaYlAPP4QrgXdmW7tewSxEw8hYhF9CNv/A==} cpu: [x64] os: [linux] - '@rspack/binding-wasm32-wasi@1.7.0': - resolution: {integrity: sha512-eaZzkGpxzVESmaX/UALMiQO+eNppe/i1VWQksGRfdoUu0rILqr/YDjsWFTcpbI9Dt3fg2kshHawBHxfwtxHcZQ==} + '@rspack/binding-wasm32-wasi@1.5.3': + resolution: {integrity: sha512-Y7KN/ZRuWcFdjCzuZE0JsPwTqJAz1aipJsEOI3whBUj9Va2RwbR9r3vbW6OscS0Wm3rTJAfqH0xwx9x3GksnAw==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.7.0': - resolution: {integrity: sha512-XFg4l7sOhupnpG0soOfzYLeF2cgpSJMenmjmdzd9y06CotTyVId0hNoS7y+A7hEP8XGf3YPbdiUL5UDp6+DRBA==} + '@rspack/binding-win32-arm64-msvc@1.5.3': + resolution: {integrity: sha512-I9SqobDwFwcIUNzr+VwvR2lUGqfarOpFDp7mZmA6+qO/V0yJxS0aqBIwNoZB/UFPbUh71OdmFavBzcTYE9vPSg==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.7.0': - resolution: {integrity: sha512-eWt2XV6la/c0IlU/18RlhQsqwHGShSypwA3kt4s/dpfOK0YB1h4f0fYeUZuvj2X0MIoJQGhMofMrgA35/IcAcw==} + '@rspack/binding-win32-ia32-msvc@1.5.3': + resolution: {integrity: sha512-pPSzSycfK03lLNxzwEkrRUfqETB7y0KEEbO0HcGX63EC9Ne4SILJfkkH55G0PO4aT/dfAosAlkf6V64ATgrHGA==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.7.0': - resolution: {integrity: sha512-LOL5G8rfbAwlmusx+t98r9QzuGRz+L9Bg+8s5s6K/Qe64iemcNIuxGr5QLVq1jLa0SGNTeog4N21pAzlkWh4jw==} + '@rspack/binding-win32-x64-msvc@1.5.3': + resolution: {integrity: sha512-He/GrFVrCZ4gBrHSxGd7mnwk9A9BDkAeZZEBnfK4n/HfXxU32WX5jiAGacFoJQYFLDOWTAcmxFad37TSs61zXw==} cpu: [x64] os: [win32] - '@rspack/binding@1.7.0': - resolution: {integrity: sha512-xO+pZKG2dvU9CuRTTi+DcCc4p+CZhBJlvuYikBja/0a62cTntQV2PWV+/xU1a6Vbo89yNz158LR05nvjtKVwTw==} + '@rspack/binding@1.5.3': + resolution: {integrity: sha512-bWAKligHxelx3XxOgFmK6k1vR+ANxjBXLXTmgOiZxsJNScHJap3HYViXWJHKj5jvdXEvg9sC8TE7WNctCfa8iQ==} - '@rspack/core@1.7.0': - resolution: {integrity: sha512-uDxPQsPh/+2DnOISuKnUiXZ9M0y2G1BOsI0IesxPJGp42ME2QW7axbJfUqD3bwp4bi3RN2zqh56NgxU/XETQvA==} + '@rspack/core@1.5.3': + resolution: {integrity: sha512-EMNXysJyqsfd2aVys5C7GDZKaLEcoN5qgs7ZFhWOWJGKgBqjdKTljyRTd4RRZV4fV6iAko/WrxnAxmzZNk8mjA==} engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' @@ -5187,8 +5019,9 @@ packages: '@swc/helpers': optional: true - '@rspack/lite-tapable@1.1.0': - resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} + '@rspack/lite-tapable@1.0.1': + resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} + engines: {node: '>=16.0.0'} '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -5196,8 +5029,8 @@ packages: '@rushstack/eslint-patch@1.15.0': resolution: {integrity: sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==} - '@schematics/angular@20.3.13': - resolution: {integrity: sha512-ETJ1budKmrkdxojo5QP6TPr6zQZYGxtWWf8NrX1cBIS851zPCmFkKyhSFLZsoksariYF/LP8ljvm8tlcIzt/XA==} + '@schematics/angular@20.3.14': + resolution: {integrity: sha512-JO37puMXFWN8YWqZZJ/URs8vPJNszZXcIyBnYdKDWTGaAnbOZMu0nzQlOC+h5NM7R5cPQtOpJv0wxEnY6EYI4A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sideway/address@4.1.5': @@ -5242,8 +5075,8 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sinclair/typebox@0.34.46': - resolution: {integrity: sha512-kiW7CtS/NkdvTUjkjUJo7d5JsFfbJ14YjdhDk9KoEgK6nFjKNXZPrX0jfLA8ZlET4cFLHxOZ/0vFKOP+bOxIOQ==} + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -5265,8 +5098,8 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} @@ -5346,68 +5179,137 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/core-darwin-arm64@1.15.8': - resolution: {integrity: sha512-M9cK5GwyWWRkRGwwCbREuj6r8jKdES/haCZ3Xckgkl8MUQJZA3XB7IXXK1IXRNeLjg6m7cnoMICpXv1v1hlJOg==} + '@swc/core-darwin-arm64@1.13.5': + resolution: {integrity: sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.8': - resolution: {integrity: sha512-j47DasuOvXl80sKJHSi2X25l44CMc3VDhlJwA7oewC1nV1VsSzwX+KOwE5tLnfORvVJJyeiXgJORNYg4jeIjYQ==} + '@swc/core-darwin-arm64@1.15.3': + resolution: {integrity: sha512-AXfeQn0CvcQ4cndlIshETx6jrAM45oeUrK8YeEY6oUZU/qzz0Id0CyvlEywxkWVC81Ajpd8TQQ1fW5yx6zQWkQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.13.5': + resolution: {integrity: sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.8': - resolution: {integrity: sha512-siAzDENu2rUbwr9+fayWa26r5A9fol1iORG53HWxQL1J8ym4k7xt9eME0dMPXlYZDytK5r9sW8zEA10F2U3Xwg==} + '@swc/core-darwin-x64@1.15.3': + resolution: {integrity: sha512-p68OeCz1ui+MZYG4wmfJGvcsAcFYb6Sl25H9TxWl+GkBgmNimIiRdnypK9nBGlqMZAcxngNPtnG3kEMNnvoJ2A==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.13.5': + resolution: {integrity: sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.8': - resolution: {integrity: sha512-o+1y5u6k2FfPYbTRUPvurwzNt5qd0NTumCTFscCNuBksycloXY16J8L+SMW5QRX59n4Hp9EmFa3vpvNHRVv1+Q==} + '@swc/core-linux-arm-gnueabihf@1.15.3': + resolution: {integrity: sha512-Nuj5iF4JteFgwrai97mUX+xUOl+rQRHqTvnvHMATL/l9xE6/TJfPBpd3hk/PVpClMXG3Uvk1MxUFOEzM1JrMYg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.13.5': + resolution: {integrity: sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.15.8': - resolution: {integrity: sha512-koiCqL09EwOP1S2RShCI7NbsQuG6r2brTqUYE7pV7kZm9O17wZ0LSz22m6gVibpwEnw8jI3IE1yYsQTVpluALw==} + '@swc/core-linux-arm64-gnu@1.15.3': + resolution: {integrity: sha512-2Nc/s8jE6mW2EjXWxO/lyQuLKShcmTrym2LRf5Ayp3ICEMX6HwFqB1EzDhwoMa2DcUgmnZIalesq2lG3krrUNw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.15.8': - resolution: {integrity: sha512-4p6lOMU3bC+Vd5ARtKJ/FxpIC5G8v3XLoPEZ5s7mLR8h7411HWC/LmTXDHcrSXRC55zvAVia1eldy6zDLz8iFQ==} + '@swc/core-linux-arm64-musl@1.13.5': + resolution: {integrity: sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.15.3': + resolution: {integrity: sha512-j4SJniZ/qaZ5g8op+p1G9K1z22s/EYGg1UXIb3+Cg4nsxEpF5uSIGEE4mHUfA70L0BR9wKT2QF/zv3vkhfpX4g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.13.5': + resolution: {integrity: sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.15.8': - resolution: {integrity: sha512-z3XBnbrZAL+6xDGAhJoN4lOueIxC/8rGrJ9tg+fEaeqLEuAtHSW2QHDHxDwkxZMjuF/pZ6MUTjHjbp8wLbuRLA==} + '@swc/core-linux-x64-gnu@1.15.3': + resolution: {integrity: sha512-aKttAZnz8YB1VJwPQZtyU8Uk0BfMP63iDMkvjhJzRZVgySmqt/apWSdnoIcZlUoGheBrcqbMC17GGUmur7OT5A==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.15.8': - resolution: {integrity: sha512-djQPJ9Rh9vP8GTS/Df3hcc6XP6xnG5c8qsngWId/BLA9oX6C7UzCPAn74BG/wGb9a6j4w3RINuoaieJB3t+7iQ==} + '@swc/core-linux-x64-musl@1.13.5': + resolution: {integrity: sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.15.3': + resolution: {integrity: sha512-oe8FctPu1gnUsdtGJRO2rvOUIkkIIaHqsO9xxN0bTR7dFTlPTGi2Fhk1tnvXeyAvCPxLIcwD8phzKg6wLv9yug==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.13.5': + resolution: {integrity: sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.8': - resolution: {integrity: sha512-/wfAgxORg2VBaUoFdytcVBVCgf1isWZIEXB9MZEUty4wwK93M/PxAkjifOho9RN3WrM3inPLabICRCEgdHpKKQ==} + '@swc/core-win32-arm64-msvc@1.15.3': + resolution: {integrity: sha512-L9AjzP2ZQ/Xh58e0lTRMLvEDrcJpR7GwZqAtIeNLcTK7JVE+QineSyHp0kLkO1rttCHyCy0U74kDTj0dRz6raA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.13.5': + resolution: {integrity: sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.8': - resolution: {integrity: sha512-GpMePrh9Sl4d61o4KAHOOv5is5+zt6BEXCOCgs/H0FLGeii7j9bWDE8ExvKFy2GRRZVNR1ugsnzaGWHKM6kuzA==} + '@swc/core-win32-ia32-msvc@1.15.3': + resolution: {integrity: sha512-B8UtogMzErUPDWUoKONSVBdsgKYd58rRyv2sHJWKOIMCHfZ22FVXICR4O/VwIYtlnZ7ahERcjayBHDlBZpR0aw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.13.5': + resolution: {integrity: sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.8': - resolution: {integrity: sha512-T8keoJjXaSUoVBCIjgL6wAnhADIb09GOELzKg10CjNg+vLX48P93SME6jTfte9MZIm5m+Il57H3rTSk/0kzDUw==} + '@swc/core-win32-x64-msvc@1.15.3': + resolution: {integrity: sha512-SpZKMR9QBTecHeqpzJdYEfgw30Oo8b/Xl6rjSzBt1g0ZsXyy60KLXrp6IagQyfTYqNYE/caDvwtF2FPn7pomog==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.13.5': + resolution: {integrity: sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/core@1.15.3': + resolution: {integrity: sha512-Qd8eBPkUFL4eAONgGjycZXj1jFCBW8Fd+xF0PzdTlBCWQIV1xnUT7B93wUANtW3KGjl3TRcOyxwSx/u/jyKw/Q==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -5421,71 +5323,71 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@swc/helpers@0.5.18': - resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@swc/html-darwin-arm64@1.15.8': - resolution: {integrity: sha512-N1RTQ8Dba/FiUvgyivMhHdNVl0dGsMJmbYzHdoJRWb60+GeAJue37R++3MANKzzPPmaa9WaMTpE6EZcuDFdEow==} + '@swc/html-darwin-arm64@1.13.5': + resolution: {integrity: sha512-5r4kGFQJm85EKOxSiP9pUT/9T1uq+tx0s5HRqfM/J1hVZmpIq2GudBVYS8CGklVWAVQ0tBHhBuP9SysAb/pcSA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/html-darwin-x64@1.15.8': - resolution: {integrity: sha512-dKAd6tL8nqdedtfNn/PJ/BHY3C1RHCjMPANOR85Pu76X1xIL2L9E5TM+Si+C7Fj/IqISEot2nVpxlZSC3NQGTQ==} + '@swc/html-darwin-x64@1.13.5': + resolution: {integrity: sha512-bCY0BSfxrmbKpInB/wZFX0DH4hgEQBwWLeKNwZhafIR5R/tvzuiIvb/VdkeKv8+26r2lkedbp+EreCFnDqQ2BQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/html-linux-arm-gnueabihf@1.15.8': - resolution: {integrity: sha512-f5lauBqjslbwgQd3T8pULVPNZ0vUfJ8QCF+xx282NHxC6AUxgx42CxjNZTIK2FYI831kv6b+FPNcnNGWYvV2Yw==} + '@swc/html-linux-arm-gnueabihf@1.13.5': + resolution: {integrity: sha512-o6TVZERfx7Z8btauYE7nHgMEPPIVemqAZL3ViUTuBK6asF9wfJ4m2YAbsrlzi8xaLgaizWvdUV7W1qE5yfOxPg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/html-linux-arm64-gnu@1.15.8': - resolution: {integrity: sha512-wRBZ9c/yyhm/zWON64UNQ8RaRbzJLFqwA+MjwMU3C8h/mudr+nrY8jKdlgvbr3XL+1HitiMN9Zz1CoRPM6rimQ==} + '@swc/html-linux-arm64-gnu@1.13.5': + resolution: {integrity: sha512-I/Ip5FtCfQ0wYg2MurytkEWPZrFB1SOPOeTNu4n+PAWDBjEcX3q+wgmMpzoGgVljvpEAQviJ+jzRyLW2tDDVHA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/html-linux-arm64-musl@1.15.8': - resolution: {integrity: sha512-q7WOGAZ75x4AsZu7H2Ru1o0aUm5+sUz6SNmg+SdGzcJq33NSRWuDf8p77XW0aDzhFUNHUjWbTqFdkllbmRZhaw==} + '@swc/html-linux-arm64-musl@1.13.5': + resolution: {integrity: sha512-q8RTISYZuI5qOR8wEhox2oC+ZBo5IBaT6N43b5W+JRSIMKIsY7hVgC3gSI/tG4/6K14hv2QrqtAUFzVpLwtkyA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/html-linux-x64-gnu@1.15.8': - resolution: {integrity: sha512-q7I6DxSI86747AE4BO1k7y4vPXertUXtl/mG4iBYvUR9HA0Fq0sElSP0V5fFb8xJ/VL1cFHgKyxGVXpF6sZgkA==} + '@swc/html-linux-x64-gnu@1.13.5': + resolution: {integrity: sha512-YFU0/xVWzjAtg5V6QREW510O5/SNILrm18Vo2qF1bTktCB2eCjNSjCHOdicvPXTImEUlTp0ey6wO+QvEuvRFAg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/html-linux-x64-musl@1.15.8': - resolution: {integrity: sha512-lGs5S8SadlhMyP0jfo/CuOG6J6yJldmdcW5mQ75/eZv4F/wbDRCkV9tjHlkAb2eO4VI9kKWTvuayHkVlAzQiGg==} + '@swc/html-linux-x64-musl@1.13.5': + resolution: {integrity: sha512-/ilgZm7umDQTea97FlE0pIcoHTAlICE+aSoVvLi+ONL3wr4g1ebwlgQ5Cxpgp5cxnKeghDYpqP/mFLh+Ztl8DQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/html-win32-arm64-msvc@1.15.8': - resolution: {integrity: sha512-GN6nZgEjO9uLNfPAajB/0FH27gtNK5KJa88lZ/EUFr9WCmo4e9b5ik3nFIt74Ae04oZCrNB2Yk9xAeycWpxTtQ==} + '@swc/html-win32-arm64-msvc@1.13.5': + resolution: {integrity: sha512-aLZvyEhzM6e7E53jelEp9ob/CrZ4K0atmsq+ctsaki8PNOu8shM03CEK1yQNCdZLR1kKkUgytyUVMEbhqz+IQQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/html-win32-ia32-msvc@1.15.8': - resolution: {integrity: sha512-KjHHILqe09zRBsmZBUGUNDJ4Qjvi3ZHZiudMBJE2BEiIrKhHVXOikvfvWAShE12FPD0eYHfNxmjWbks2LtJHGA==} + '@swc/html-win32-ia32-msvc@1.13.5': + resolution: {integrity: sha512-51QXTdKMmgRriRmTzH0gkeyHLY4knJdAKEY1kPTBeguXCjgLIUX2nMQd24oe9ovJfPce0NCOmCSrODri8PiduQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/html-win32-x64-msvc@1.15.8': - resolution: {integrity: sha512-P2e1K/dED6cqQtL0TiN63s6v6RvZjKxxaKMfWOVMviwRakSNFUJGV4H2W4OX/cbvIn/XpxWIfo1mdXusadAlQQ==} + '@swc/html-win32-x64-msvc@1.13.5': + resolution: {integrity: sha512-MnU1fMNZijEKkKTp12SKbNuH7rglgHhXSFZr+zjDhQmtVPEF4goCrBfoY8ZJ4j9FjOGyodFcYH6ulz95l9/QwQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/html@1.15.8': - resolution: {integrity: sha512-DBRO1g9TR7rKfGjsMr4O17zcaXjr5TSNpr9DJhQrAA2JDzHuGr3dyyX3dCoS1td24efTNnysHv1isDjzmXzT7Q==} + '@swc/html@1.13.5': + resolution: {integrity: sha512-eVAyb3kk6wltz4FnWNRL06iYnqkQuTfpe5Fin9oLLmcpIYr2DgHcrGgeDJF4vJc9YZwACvEYmV8DC+1NfdzAJQ==} engines: {node: '>=14'} '@swc/types@0.1.25': @@ -5515,14 +5417,14 @@ packages: '@tanstack/query-devtools@5.92.0': resolution: {integrity: sha512-N8D27KH1vEpVacvZgJL27xC6yPFUy0Zkezn5gnB3L3gRCxlDeSuiya7fKge8Y91uMTnC8aSxBQhcK6ocY7alpQ==} - '@tanstack/react-virtual@3.13.16': - resolution: {integrity: sha512-y4xLKvLu6UZWiGdNcgk3yYlzCznYIV0m8dSyUzr3eAC0dHLos5V74qhUHxutYddFGgGU8sWLkp6H5c2RCrsrXw==} + '@tanstack/react-virtual@3.13.12': + resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.13.16': - resolution: {integrity: sha512-njazUC8mDkrxWmyZmn/3eXrDcP8Msb3chSr4q6a65RmwdSbMlMCdnOphv6/8mLO7O3Fuza5s4M4DclmvAO5w0w==} + '@tanstack/virtual-core@3.13.12': + resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} @@ -5562,6 +5464,9 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -5592,8 +5497,8 @@ packages: '@types/bonjour@3.5.13': resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - '@types/codemirror@5.60.17': - resolution: {integrity: sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==} + '@types/codemirror@5.60.16': + resolution: {integrity: sha512-V/yHdamffSS075jit+fDxaOAmdP2liok8NSNJnAZfDJErzOheuygHZEhAJrfmk5TEyM32MhkZjwo/idX791yxw==} '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -5604,8 +5509,8 @@ packages: '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - '@types/d3-array@3.2.2': - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + '@types/d3-array@3.2.1': + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} '@types/d3-axis@3.0.6': resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} @@ -5816,9 +5721,6 @@ packages: '@types/node@24.10.4': resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==} - '@types/node@25.0.3': - resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} - '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -5914,8 +5816,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@types/yargs@17.0.34': + resolution: {integrity: sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==} '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -6107,8 +6009,8 @@ packages: '@vercel/git-hooks@1.0.0': resolution: {integrity: sha512-OxDFAAdyiJ/H0b8zR9rFCu3BIb78LekBXOphOYG3snV4ULhKFX387pBPpqZ9HLiRTejBWBxYEahkw79tuIgdAA==} - '@vercel/oidc@3.0.5': - resolution: {integrity: sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw==} + '@vercel/oidc@3.0.3': + resolution: {integrity: sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==} engines: {node: '>= 20'} '@vitejs/plugin-basic-ssl@2.1.0': @@ -6210,32 +6112,32 @@ packages: resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} engines: {node: '>=18.12.0'} - '@zag-js/core@1.32.0': - resolution: {integrity: sha512-aibBwyqw3saAzYBf2YHfuyOGt9kdNc4+ile3D1jbUsXiccLvGuFPP3+Ox7fULcILIiQhR0X6M+sTF17IyEMrYA==} + '@zag-js/core@1.22.1': + resolution: {integrity: sha512-4BNrwO9Tadq2Z0d2xSSQs4O/o3OarEHzXM2FQqx46vrwSE57qUghnZex429ZQ51fuk8AL5Lowt26a9JxE9sVPg==} - '@zag-js/dom-query@1.32.0': - resolution: {integrity: sha512-12XCCV1bchIFC7wjtYim5sEqUrAddzt0eysMTbBrCuK5r6TmLecwLtxUNKIRQ8adkCn0jqecUiuNyXojaArP3g==} + '@zag-js/dom-query@1.22.1': + resolution: {integrity: sha512-mtvGj2z3rkl40mkjd+QwoOHvxqpiOkY4mtVjzNzgzcbVtUN63Mz7giW8OZB+KLy37hwFX0B8JfiQncU8IOHNpw==} - '@zag-js/focus-trap@1.32.0': - resolution: {integrity: sha512-irzYMaz1ycAnHOGLr4r6+3MwhfKnA67N9jPft9ejnE2QoTp40W+xp07K2KQNf6xN7Boe6xGlw8SwLBnGZw2eCQ==} + '@zag-js/focus-trap@1.22.1': + resolution: {integrity: sha512-6W9cG0LEVICt0srVfWSpamKzsnRxXMdl3gV+GQ5HvkCCk1Sw6Io4tc3QvSSvaWcfyhM07feerOsa2ah7qiT/ig==} - '@zag-js/presence@1.32.0': - resolution: {integrity: sha512-WO+/9faAlwNTcu+LqdXmphF6OTJ2aYEf8pLMBvfDmTUwh/xuhQP9vAD78rXKNtedpUlW1YqqUJBcUnmRmpnQgQ==} + '@zag-js/presence@1.22.1': + resolution: {integrity: sha512-9+pkKnjcHbNxk/80HzLdDjpiKGV/I208wAe0Njmej6q6Z79ED6cb7tXiOgAS7w/ZLWxwQW7B9oMJ3guVflBHwQ==} - '@zag-js/react@1.32.0': - resolution: {integrity: sha512-oUhe6rezRnDEFIE9mlRS4UDx4iaiG9uD737TimHI2HWxdu7XNQV9+pNSyXneVLbiMsFs8w7uZN15otJbrW5LLA==} + '@zag-js/react@1.22.1': + resolution: {integrity: sha512-TcIKkNo9EFel+d92nb7104voKJNDiMkqq9nn7Ozq/TE8A62JPf5zk8y8zqoxTbGDTTk+tDjW7Sm1IKb4r6rX4w==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - '@zag-js/store@1.32.0': - resolution: {integrity: sha512-m9jvTKJB/lTC2I8NpDf+yo2XVN+ogxjiVbGsooAFTpyUAiXZY50nVc9cFcswnwFMo/GzXMk81oalyz9u65jqRQ==} + '@zag-js/store@1.22.1': + resolution: {integrity: sha512-KrMWi/Fa4cqOjx2zDSMIu6vztFYik+V3K6VPWRVONM4FkboLpTqAEayzwgTTNqMK9iYYZIYjhiPhAVLW9iLuBg==} - '@zag-js/types@1.32.0': - resolution: {integrity: sha512-9UV5mFnTgJRyFCCH9g/TIqtxxfw6FUphpe7E0AHK9+WSq3PRvflMeaRT/O6HgdWo0Rc+JN9vVwkFYyGD81uAbw==} + '@zag-js/types@1.22.1': + resolution: {integrity: sha512-lvpDSMR96e7H7TdwOiVpMzj6css5Ydix1nBi7BlmjME6v5OPR0KZwVDGD6h5UtTeVjPq8dPaqM8TJWw+QwbQSw==} - '@zag-js/utils@1.32.0': - resolution: {integrity: sha512-IRe1yFbMXBp8Q1Xp916Lq9P91s65K5KRNFZIv2EdQHRynLaT+QrPp5hmzkWoXJn8oOYd6PZeNb7K6v7vk8+k1g==} + '@zag-js/utils@1.22.1': + resolution: {integrity: sha512-VXY4gjHaTENHW+wjnKKENZ2jcaW0vnG2a5lYEMuZR4dpNCKH217yFr/bCNrI44y2s1W3LWhWmpEjfZluP6udYg==} '@zkochan/js-yaml@0.0.7': resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} @@ -6260,6 +6162,11 @@ packages: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-import-phases@1.0.4: resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -6296,8 +6203,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@5.0.117: - resolution: {integrity: sha512-uE6HNkdSwxbeHGKP/YbvapwD8fMOpj87wyfT9Z00pbzOh2fpnw5acak/4kzU00SX2vtI9K0uuy+9Tf9ytw5RwA==} + ai@5.0.81: + resolution: {integrity: sha512-SB7oMC9QSpIu1VLswFTZuhhpfQfrGtFBUbWLtHBkhjWZIQskjtcdEhB+N4yO9hscdc2wYtjw/tacgoxX93QWFw==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -6345,8 +6252,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch-helper@3.27.0: - resolution: {integrity: sha512-eNYchRerbsvk2doHOMfdS1/B6Tm70oGtu8mzQlrNzbCeQ8p1MjCW8t/BL6iZ5PD+cL5NNMgTMyMnmiXZ1sgmNw==} + algoliasearch-helper@3.26.0: + resolution: {integrity: sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw==} peerDependencies: algoliasearch: '>= 3.1 < 6' @@ -6354,15 +6261,15 @@ packages: resolution: {integrity: sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==} engines: {node: '>= 14.0.0'} - algoliasearch@5.46.2: - resolution: {integrity: sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q==} + algoliasearch@5.41.0: + resolution: {integrity: sha512-9E4b3rJmYbBkn7e3aAPt1as+VVnRhsR4qwRRgOzpeyz4PAOuwKh0HI4AN6mTrqK0S0M9fCCSTOUnuJ8gPY/tvA==} engines: {node: '>= 14.0.0'} allof-merge@0.6.7: resolution: {integrity: sha512-slvjkM56OdeVkm1tllrnaumtSHwqyHrepXkAe6Am+CW4WdbHkNqdOKPF6cvY3/IouzvXk1BoLICT5LY7sCoFGw==} - altcha-lib@1.4.1: - resolution: {integrity: sha512-MAXP9tkQOA2SE9Gwoe3LAcZbcDpp3XzYc5GDVej/y3eMNaFG/eVnRY1/7SGFW0RPsViEjPf+hi5eANjuZrH1xA==} + altcha-lib@1.3.0: + resolution: {integrity: sha512-PpFg/JPuR+Jiud7Vs54XSDqDxvylcp+0oDa/i1ARxBA/iKDqLeNlO8PorQbfuDTMVLYRypAa/2VDK3nbBTAu5A==} angular-oauth2-oidc@20.0.2: resolution: {integrity: sha512-bMSXEQIuvgq8yqnsIatZggAvCJvY+pm7G8MK0tWCHR93UpFuNN+L5B6pY9CzRg8Ys+VVhkLIBx4zEHbJnv9icg==} @@ -6386,8 +6293,8 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@7.2.0: - resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} + ansi-escapes@7.1.0: + resolution: {integrity: sha512-YdhtCd19sKRKfAAUsrcC1wzm4JuzJoiX4pOJqIoW2qmKj5WzG/dL8uUJ0361zaXtHqK7gEhOwtAtz7t3Yq3X5g==} engines: {node: '>=18'} ansi-html-community@0.0.8: @@ -6547,10 +6454,13 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} + axios@1.12.2: + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} + axios@1.13.2: resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} @@ -6561,8 +6471,8 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.7.3: - resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + b4a@1.7.1: + resolution: {integrity: sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==} peerDependencies: react-native-b4a: '*' peerDependenciesMeta: @@ -6600,16 +6510,11 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.8.2: - resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} - peerDependencies: - bare-abort-controller: '*' - peerDependenciesMeta: - bare-abort-controller: - optional: true + bare-events@2.6.1: + resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.5.2: - resolution: {integrity: sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==} + bare-fs@4.3.3: + resolution: {integrity: sha512-W+ZpiQx1i0dm073So22v3jColDtvyqSTyUYEnooYwKcl+SHuqnQGKyuHdwigQffWJV5ghKtskVH7ydAkBVKQZQ==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -6635,8 +6540,8 @@ packages: bare-events: optional: true - bare-url@2.3.2: - resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==} + bare-url@2.2.2: + resolution: {integrity: sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -6645,12 +6550,16 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - baseline-browser-mapping@2.9.11: - resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + baseline-browser-mapping@2.8.20: + resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} hasBin: true - basic-ftp@5.1.0: - resolution: {integrity: sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==} + baseline-browser-mapping@2.9.12: + resolution: {integrity: sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==} + hasBin: true + + basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} batch@0.6.1: @@ -6686,12 +6595,12 @@ packages: bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - body-parser@1.20.4: - resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@2.2.1: - resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} engines: {node: '>=18'} bonjour-service@1.3.0: @@ -6721,6 +6630,16 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + browserslist@4.25.4: + resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + browserslist@4.27.0: + resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + browserslist@4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6824,8 +6743,14 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001762: - resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + caniuse-lite@1.0.30001741: + resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} + + caniuse-lite@1.0.30001751: + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} + + caniuse-lite@1.0.30001763: + resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==} case-anything@2.1.13: resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==} @@ -6865,15 +6790,15 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + chardet@2.1.0: + resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} charset@1.0.1: resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==} engines: {node: '>=4.0.0'} - check-error@2.1.3: - resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} check-more-types@2.24.0: @@ -6924,8 +6849,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.3.1: - resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} class-variance-authority@0.7.1: @@ -7115,6 +7040,9 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -7142,9 +7070,9 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-disposition@1.0.1: - resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} - engines: {node: '>=18'} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} @@ -7156,13 +7084,17 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} cookie-signature@1.2.2: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -7170,8 +7102,8 @@ packages: copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - copy-text-to-clipboard@3.2.2: - resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==} + copy-text-to-clipboard@3.2.1: + resolution: {integrity: sha512-3am6cw+WOicd0+HyzhC4kYS02wHJUiVQXmAADxfUARKsHBkWl1Vl3QQEiILlSs8YcPS/C0+y/urCNEYQk+byWA==} engines: {node: '>=12'} copy-to-clipboard@3.3.3: @@ -7183,14 +7115,14 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.47.0: - resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} + core-js-compat@3.46.0: + resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} - core-js-pure@3.47.0: - resolution: {integrity: sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==} + core-js-pure@3.46.0: + resolution: {integrity: sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==} - core-js@3.47.0: - resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} + core-js@3.45.1: + resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -7243,8 +7175,8 @@ packages: peerDependencies: postcss: ^8.4 - css-declaration-sorter@7.3.1: - resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} + css-declaration-sorter@7.3.0: + resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 @@ -7307,8 +7239,8 @@ packages: css-select@6.0.0: resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} - css-selector-parser@3.3.0: - resolution: {integrity: sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==} + css-selector-parser@3.1.3: + resolution: {integrity: sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -7329,8 +7261,8 @@ packages: css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssdb@8.6.0: - resolution: {integrity: sha512-7ZrRi/Z3cRL1d5I8RuXEWAkRFP3J4GeQRiyVknI4KC70RAU8hT4LysUZDe0y+fYNOktCbxE8sOPUOhyR12UqGQ==} + cssdb@8.4.2: + resolution: {integrity: sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -7369,8 +7301,8 @@ packages: resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} custom-event@1.0.1: resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} @@ -7536,8 +7468,8 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.13: - resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} + dagre-d3-es@7.0.11: + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -7577,8 +7509,8 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -7599,6 +7531,24 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -7641,12 +7591,12 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} engines: {node: '>=18'} - default-browser@5.4.0: - resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} defaults@1.0.4: @@ -7708,6 +7658,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -7838,8 +7792,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.3.1: - resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} + dompurify@3.2.6: + resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -7900,11 +7854,17 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.217: + resolution: {integrity: sha512-Pludfu5iBxp9XzNl0qq2G87hdD17ZV7h5T4n6rQXDi3nCyloBV3jreE9+8GC6g4X/5yxqVgXEURpcLtM0WS4jA==} + + electron-to-chromium@1.5.241: + resolution: {integrity: sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==} + electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@10.5.0: + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -7940,12 +7900,12 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - engine.io@6.6.5: - resolution: {integrity: sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==} + engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} engines: {node: '>=10.2.0'} - enhanced-resolve@5.18.4: - resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} enquirer@2.3.6: @@ -7991,14 +7951,14 @@ packages: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -8009,16 +7969,13 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.2: - resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -8206,8 +8163,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -8290,9 +8247,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - events-universal@1.0.1: - resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} - events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -8324,12 +8278,12 @@ packages: exenv@1.2.2: resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} - exponential-backoff@3.1.3: - resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} express-rate-limit@7.5.1: resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} @@ -8337,14 +8291,17 @@ packages: peerDependencies: express: '>= 4.11' - express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} - express@5.2.1: - resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -8390,8 +8347,8 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -8458,13 +8415,13 @@ packages: resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} engines: {node: '>= 0.8'} - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - finalhandler@2.1.1: - resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} - engines: {node: '>= 18.0.0'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} find-cache-dir@4.0.0: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} @@ -8533,8 +8490,8 @@ packages: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} format@0.2.2: @@ -8582,8 +8539,8 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.3: - resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + fs-extra@11.3.2: + resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} fs-extra@7.0.1: @@ -8636,10 +8593,6 @@ packages: resolution: {integrity: sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==} engines: {node: '>=18'} - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -8683,8 +8636,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} @@ -8716,8 +8669,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@11.1.0: @@ -8737,6 +8690,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -8898,8 +8855,8 @@ packages: hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} - hast-util-to-parse5@8.0.1: - resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -8929,6 +8886,10 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hono@4.11.3: + resolution: {integrity: sha512-PmQi306+M/ct/m5s66Hrg+adPnkD5jiO6IjA7WhWw0gSBSo1EcRegwuI1deZ+wd5pzCGynCcn2DprnE4/yEV4w==} + engines: {node: '>=16.9.0'} + hosted-git-info@7.0.2: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} @@ -8937,8 +8898,8 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} - hosted-git-info@9.0.2: - resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + hosted-git-info@9.0.1: + resolution: {integrity: sha512-FLN0k/CSIHgTZr46YbK5od55jQEzWNGCNl8AufispkkTwcIpnxG1NMH52+O7lu0z3mI9bjPfGzcO7MhDesQ1kw==} engines: {node: ^20.17.0 || >=22.9.0} hpack.js@2.1.6: @@ -8974,8 +8935,8 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.5: - resolution: {integrity: sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==} + html-webpack-plugin@5.6.4: + resolution: {integrity: sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -9005,8 +8966,8 @@ packages: resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} engines: {node: '>= 0.6'} - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} http-parser-js@0.5.10: @@ -9047,8 +9008,8 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.1.3: - resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} hasBin: true human-signals@1.1.1: @@ -9085,8 +9046,8 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.1: - resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} engines: {node: '>=0.10.0'} icss-utils@5.1.0: @@ -9126,8 +9087,8 @@ packages: immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - immutable@5.1.4: - resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + immutable@5.1.3: + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -9177,8 +9138,8 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.7: - resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} @@ -9195,22 +9156,22 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - intl-messageformat@10.7.18: - resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} + intl-messageformat@10.7.16: + resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip-address@10.1.0: - resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + ip-address@10.0.1: + resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} engines: {node: '>= 12'} ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.3.0: - resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} is-alphabetical@2.0.1: @@ -9306,8 +9267,8 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -9567,8 +9528,8 @@ packages: javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jest-diff@30.2.0: - resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + jest-diff@30.1.2: + resolution: {integrity: sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@29.7.0: @@ -9594,8 +9555,8 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - joi@18.0.2: - resolution: {integrity: sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==} + joi@18.0.1: + resolution: {integrity: sha512-IiQpRyypSnLisQf3PwuN2eIHAsAIGZIrLZkd4zdvIar2bDyhM91ubRjy8a3eYablXsh9BeI/c7dmPYHca5qtoA==} engines: {node: '>= 20'} jose@5.10.0: @@ -9615,8 +9576,12 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true js-yaml@4.1.1: @@ -9670,6 +9635,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} @@ -9750,8 +9718,8 @@ packages: engines: {node: '>= 10'} hasBin: true - katex@0.16.27: - resolution: {integrity: sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==} + katex@0.16.22: + resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} hasBin: true keyv@4.5.4: @@ -9780,6 +9748,9 @@ packages: '@types/node': '>=18' typescript: '>=5.0.4 <7' + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + langium@3.3.1: resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} engines: {node: '>=16.0.0'} @@ -9824,74 +9795,68 @@ packages: libphonenumber-js@1.12.33: resolution: {integrity: sha512-r9kw4OA6oDO4dPXkOrXTkArQAafIKAU71hChInV4FxZ69dxCfbwQGDPzqR5/vea94wU705/3AZroEbSoeVWrQw==} - lightningcss-android-arm64@1.30.2: - resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] - - lightningcss-darwin-arm64@1.30.2: - resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.30.2: - resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.30.2: - resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.30.2: - resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.30.2: - resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.30.2: - resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.30.2: - resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.30.2: - resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-win32-arm64-msvc@1.30.2: - resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.30.2: - resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.30.2: - resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} lilconfig@2.1.0: @@ -9946,6 +9911,10 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + loader-runner@4.3.1: resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} @@ -9954,6 +9923,10 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9969,9 +9942,6 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - lodash-es@4.17.22: - resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} - lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -10066,8 +10036,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.4: - resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + lru-cache@11.2.1: + resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -10094,8 +10064,8 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -10127,8 +10097,8 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@16.4.2: - resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + marked@16.4.1: + resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==} engines: {node: '>= 20'} hasBin: true @@ -10232,8 +10202,8 @@ packages: mdast-util-to-hast@12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} @@ -10271,8 +10241,8 @@ packages: medium-zoom@1.1.0: resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} - memfs@4.51.1: - resolution: {integrity: sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==} + memfs@4.50.0: + resolution: {integrity: sha512-N0LUYQMUA1yS5tJKmMtU9yprPm6ZIg24yr/OVv/7t6q0kKDIho4cBbXRi1XKttUmNYDYgF/q45qrKE/UhGO0CA==} memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -10295,8 +10265,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.12.2: - resolution: {integrity: sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==} + mermaid@11.11.0: + resolution: {integrity: sha512-9lb/VNkZqWTRjVgCV+l1N+t4kyi94y+l5xrmBmbbxZYkfRl5hEDaTPMOcaWKCl1McG8nBEaMlWwkcAEEgjhBgg==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -10545,9 +10515,9 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -10596,6 +10566,10 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@10.1.1: resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} @@ -10708,8 +10682,8 @@ packages: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true - msgpackr@1.11.8: - resolution: {integrity: sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==} + msgpackr@1.11.5: + resolution: {integrity: sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==} multicast-dns@7.2.5: resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} @@ -10731,8 +10705,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + napi-postinstall@0.3.3: + resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -10848,16 +10822,16 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.3: - resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} node-gyp-build-optional-packages@5.2.2: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true - node-gyp@11.5.0: - resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==} + node-gyp@11.4.2: + resolution: {integrity: sha512-3gD+6zsrLQH7DyYOUIutaauuXrcyxeTPyQuZQCQoNPZMHMMS5m4y0xclNpvYzoK3VNzuyxT6eF4mkIL4WSZ1eQ==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true @@ -10867,6 +10841,12 @@ packages: node-readfiles@0.2.0: resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} + node-releases@2.0.20: + resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==} + + node-releases@2.0.26: + resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} + node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -10888,8 +10868,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.1.1: - resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} + normalize-url@8.1.0: + resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} engines: {node: '>=14.16'} npm-bundled@4.0.0: @@ -10912,8 +10892,8 @@ packages: resolution: {integrity: sha512-+t2etZAGcB7TbbLHfDwooV9ppB2LhhcT6A+L9cahsf9mEUAoQ6CktLEVvEnpD0N5CkX7zJqnPGaFtoQDy9EkHQ==} engines: {node: ^20.17.0 || >=22.9.0} - npm-packlist@10.0.3: - resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} + npm-packlist@10.0.2: + resolution: {integrity: sha512-DrIWNiWT0FTdDRjGOYfEEZUNe1IzaSZ+up7qBTKnrQDySpdmuOQvytrqQlpK5QrCA4IThMvL4wTumqaa1ZvVIQ==} engines: {node: ^20.17.0 || >=22.9.0} npm-pick-manifest@10.0.0: @@ -10944,8 +10924,8 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - nwsapi@2.2.23: - resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} nx@21.6.1: resolution: {integrity: sha512-sVz4kXPxhHm+jyLpRlQblHP3ltlkivUc2psl6WpEbS3Z1pV5cMg6H/GDLohLt5VyQ8tgqKNA+mXQqljVUh8hWg==} @@ -11092,8 +11072,8 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} - ordered-binary@1.6.1: - resolution: {integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==} + ordered-binary@1.6.0: + resolution: {integrity: sha512-IQh2aMfMIDbPjI/8a3Edr+PiOpcsB7yo8NdW7aHWVaoR/pcDldunMvnnwbk/auPGqmKeAdxtZl7MHX/QmPwhvQ==} ospath@1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} @@ -11152,8 +11132,8 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + p-map@7.0.3: + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} engines: {node: '>=18'} p-queue@6.6.2: @@ -11190,8 +11170,8 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} pacote@21.0.0: resolution: {integrity: sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==} @@ -11295,8 +11275,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.1: - resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} path-to-regexp@0.1.12: @@ -11373,8 +11353,8 @@ packages: resolution: {integrity: sha512-0u3N7H4+hbr40KjuVn2uNhOcthu/9usKhnw5vT3J7ply79v3D3M8naI00el9Klcy16x557VsEkkUQaHCWFXC/g==} engines: {node: '>=20.x'} - pkce-challenge@5.0.1: - resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} + pkce-challenge@5.0.0: + resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==} engines: {node: '>=16.20.0'} pkg-dir@7.0.0: @@ -11384,6 +11364,9 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + playwright-core@1.57.0: resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} engines: {node: '>=18'} @@ -11555,8 +11538,8 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-js@4.1.0: - resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 @@ -11774,8 +11757,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.6.0: - resolution: {integrity: sha512-+LzpUSLCGHUdlZ1YZP7lp7w1MjxInJRSG0uaLyk/V/BM17iU2B7xTO7I8x3uk0WQAcLLh/ffqKzOzfaBvG7Fdw==} + postcss-preset-env@10.4.0: + resolution: {integrity: sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -11819,8 +11802,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-sort-media-queries@5.2.0: @@ -11858,8 +11841,8 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - posthog-js@1.313.0: - resolution: {integrity: sha512-CL8RkC7m9BTZrix86w0fdnSCVqC/gxrfs6c4Wfkz/CldFD7f2912S2KqnWFmwRVDGIwm9IR82YhublQ88gdDKw==} + posthog-js@1.315.1: + resolution: {integrity: sha512-ambT1azidu4hKhSmB95KdLY6yHfj9vvz1XNn68syh8DtkQ0uSdjpRY6tjMp96EQtPqCrDKr+8QpcusT1KQEZSA==} postman-code-generators@1.14.2: resolution: {integrity: sha512-qZAyyowfQAFE4MSCu2KtMGGQE/+oG1JhMZMJNMdZHYCSfQiVVeKxgk3oI4+KJ3d1y5rrm2D6C6x+Z+7iyqm+fA==} @@ -11873,8 +11856,8 @@ packages: resolution: {integrity: sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==} engines: {node: '>=10'} - preact@10.28.1: - resolution: {integrity: sha512-u1/ixq/lVQI0CakKNvLDEcW5zfCjUQfZdK9qqWuIJtsezuyG6pk9TWj75GMuI/EzRSZB/VAE43sNWWZfiy8psw==} + preact@10.27.1: + resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -11966,8 +11949,8 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@30.2.0: - resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + pretty-format@30.0.5: + resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} pretty-time@1.1.0: @@ -11987,10 +11970,6 @@ packages: resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} - proc-log@6.1.0: - resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} - engines: {node: ^20.17.0 || >=22.9.0} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -12064,8 +12043,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pupa@3.3.0: - resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} + pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} engines: {node: '>=12.20'} puppeteer-core@22.15.0: @@ -12092,8 +12071,12 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -12117,12 +12100,12 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - raw-body@3.0.2: - resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + raw-body@3.0.1: + resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} engines: {node: '>= 0.10'} raw-loader@4.0.2: @@ -12145,11 +12128,10 @@ packages: peerDependencies: react: ^19.2.3 - react-error-boundary@6.0.2: - resolution: {integrity: sha512-yvWErn55ag/ywZEFqYpXYX9rxIDPIabXIX25F184KY3F5Szk2x/cVieOflw5R47ltN3KzWOw82Lmlb4vNjyn9A==} + react-error-boundary@6.0.0: + resolution: {integrity: sha512-gdlJjD7NWr0IfkPlaREN2d9uUZUlksrfOx7SX62VRerwXbMY6ftGCIZua1VG1aXFNOimhISsTq+Owp725b9SiA==} peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: '>=16.13.1' react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -12256,8 +12238,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.7.2: - resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -12578,11 +12560,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.55.1: - resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -12665,13 +12642,13 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sass@1.97.1: - resolution: {integrity: sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==} + sass@1.97.2: + resolution: {integrity: sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==} engines: {node: '>=14.0.0'} hasBin: true - sax@1.4.3: - resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} @@ -12687,6 +12664,10 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} + schema-utils@4.3.2: + resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + engines: {node: '>= 10.13.0'} + schema-utils@4.3.3: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} @@ -12732,12 +12713,12 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} serialize-javascript@6.0.2: @@ -12750,12 +12731,12 @@ packages: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} engines: {node: '>= 0.8.0'} - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} - serve-static@2.2.1: - resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} engines: {node: '>= 18'} set-blocking@2.0.0: @@ -12914,15 +12895,15 @@ packages: snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - socket.io-adapter@2.5.6: - resolution: {integrity: sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==} + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} - socket.io-parser@4.2.5: - resolution: {integrity: sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==} + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} - socket.io@4.8.3: - resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} engines: {node: '>=10.2.0'} sockjs@0.3.24: @@ -13024,8 +13005,8 @@ packages: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} std-env@3.10.0: @@ -13046,8 +13027,8 @@ packages: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} - streamx@2.23.0: - resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + streamx@2.22.1: + resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -13144,14 +13125,14 @@ packages: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} - style-to-js@1.1.21: - resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.14: - resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} @@ -13175,8 +13156,8 @@ packages: stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true @@ -13214,16 +13195,16 @@ packages: '@swc/core': ^1.2.147 webpack: '>=2' - swr@2.3.8: - resolution: {integrity: sha512-gaCPRVoMq8WGDcWj9p4YWzCMPHzE0WNl6W8ADIx9c3JBEIdMkJGMzW+uzXvxHMltwcYACr9jP+32H8/hgwMR7w==} + swr@2.3.6: + resolution: {integrity: sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tabbable@6.4.0: - resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} @@ -13238,12 +13219,16 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tapable@2.2.3: + resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + engines: {node: '>=6'} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - tar-fs@3.1.1: - resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} + tar-fs@3.1.0: + resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -13256,8 +13241,8 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - tar@7.5.2: - resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} engines: {node: '>=18'} tcomb-validation@3.4.1: @@ -13270,8 +13255,8 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser-webpack-plugin@5.3.16: - resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -13286,8 +13271,8 @@ packages: uglify-js: optional: true - terser@5.44.1: - resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + terser@5.44.0: + resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} engines: {node: '>=10'} hasBin: true @@ -13345,9 +13330,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} - engines: {node: '>=18'} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} @@ -13652,6 +13636,9 @@ packages: unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -13679,6 +13666,9 @@ packages: unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} @@ -13707,6 +13697,18 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.1.4: + resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -13717,6 +13719,9 @@ packages: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -13905,8 +13910,8 @@ packages: vite: optional: true - vite@5.4.21: - resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + vite@5.4.20: + resolution: {integrity: sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -14045,10 +14050,6 @@ packages: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} - watchpack@2.5.0: - resolution: {integrity: sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==} - engines: {node: '>=10.13.0'} - wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} @@ -14118,8 +14119,18 @@ packages: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} - webpack@5.104.1: - resolution: {integrity: sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==} + webpack@5.102.1: + resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -14145,7 +14156,6 @@ packages: whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} @@ -14244,8 +14254,8 @@ packages: utf-8-validate: optional: true - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -14256,8 +14266,8 @@ packages: utf-8-validate: optional: true - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -14323,8 +14333,8 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} engines: {node: '>= 14.6'} hasBin: true @@ -14371,8 +14381,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + yocto-queue@1.2.1: + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} yoctocolors-cjs@2.1.3: @@ -14387,12 +14397,12 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} + zod@4.1.13: resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} - zod@4.3.5: - resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} - zone.js@0.15.1: resolution: {integrity: sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==} @@ -14403,33 +14413,33 @@ snapshots: '@adobe/css-tools@4.4.4': {} - '@ai-sdk/gateway@2.0.24(zod@4.3.5)': + '@ai-sdk/gateway@2.0.2(zod@4.1.12)': dependencies: - '@ai-sdk/provider': 2.0.1 - '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5) - '@vercel/oidc': 3.0.5 - zod: 4.3.5 + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.13(zod@4.1.12) + '@vercel/oidc': 3.0.3 + zod: 4.1.12 - '@ai-sdk/provider-utils@3.0.20(zod@4.3.5)': + '@ai-sdk/provider-utils@3.0.13(zod@4.1.12)': dependencies: - '@ai-sdk/provider': 2.0.1 - '@standard-schema/spec': 1.1.0 + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.0.0 eventsource-parser: 3.0.6 - zod: 4.3.5 + zod: 4.1.12 - '@ai-sdk/provider@2.0.1': + '@ai-sdk/provider@2.0.0': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@2.0.119(react@19.2.3)(zod@4.3.5)': + '@ai-sdk/react@2.0.81(react@19.2.3)(zod@4.1.12)': dependencies: - '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5) - ai: 5.0.117(zod@4.3.5) + '@ai-sdk/provider-utils': 3.0.13(zod@4.1.12) + ai: 5.0.81(zod@4.1.12) react: 19.2.3 - swr: 2.3.8(react@19.2.3) + swr: 2.3.6(react@19.2.3) throttleit: 2.1.0 optionalDependencies: - zod: 4.3.5 + zod: 4.1.12 '@algolia/abtesting@1.1.0': dependencies: @@ -14438,34 +14448,34 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/abtesting@1.12.2': + '@algolia/abtesting@1.7.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 - '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2) + '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2) + '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)': + '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)': dependencies: - '@algolia/client-search': 5.46.2 - algoliasearch: 5.46.2 + '@algolia/client-search': 5.41.0 + algoliasearch: 5.41.0 '@algolia/client-abtesting@5.35.0': dependencies: @@ -14474,12 +14484,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-abtesting@5.46.2': + '@algolia/client-abtesting@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/client-analytics@5.35.0': dependencies: @@ -14488,16 +14498,16 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-analytics@5.46.2': + '@algolia/client-analytics@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/client-common@5.35.0': {} - '@algolia/client-common@5.46.2': {} + '@algolia/client-common@5.41.0': {} '@algolia/client-insights@5.35.0': dependencies: @@ -14506,12 +14516,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-insights@5.46.2': + '@algolia/client-insights@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/client-personalization@5.35.0': dependencies: @@ -14520,12 +14530,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-personalization@5.46.2': + '@algolia/client-personalization@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/client-query-suggestions@5.35.0': dependencies: @@ -14534,12 +14544,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-query-suggestions@5.46.2': + '@algolia/client-query-suggestions@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/client-search@5.35.0': dependencies: @@ -14548,12 +14558,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/client-search@5.46.2': + '@algolia/client-search@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/events@4.0.1': {} @@ -14564,12 +14574,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/ingestion@1.46.2': + '@algolia/ingestion@1.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/monitoring@1.35.0': dependencies: @@ -14578,12 +14588,12 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/monitoring@1.46.2': + '@algolia/monitoring@1.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/recommend@5.35.0': dependencies: @@ -14592,36 +14602,36 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - '@algolia/recommend@5.46.2': + '@algolia/recommend@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/client-common': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 '@algolia/requester-browser-xhr@5.35.0': dependencies: '@algolia/client-common': 5.35.0 - '@algolia/requester-browser-xhr@5.46.2': + '@algolia/requester-browser-xhr@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 + '@algolia/client-common': 5.41.0 '@algolia/requester-fetch@5.35.0': dependencies: '@algolia/client-common': 5.35.0 - '@algolia/requester-fetch@5.46.2': + '@algolia/requester-fetch@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 + '@algolia/client-common': 5.41.0 '@algolia/requester-node-http@5.35.0': dependencies: '@algolia/client-common': 5.35.0 - '@algolia/requester-node-http@5.46.2': + '@algolia/requester-node-http@5.41.0': dependencies: - '@algolia/client-common': 5.46.2 + '@algolia/client-common': 5.41.0 '@alloc/quick-lru@5.2.0': {} @@ -14630,14 +14640,14 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.13(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.14(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.13(chokidar@4.0.3) + '@angular-devkit/core': 20.3.14(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/core@19.2.19(chokidar@4.0.3)': + '@angular-devkit/core@19.2.17(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -14648,7 +14658,7 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/core@20.3.13(chokidar@4.0.3)': + '@angular-devkit/core@20.3.14(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -14659,9 +14669,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@19.2.19(chokidar@4.0.3)': + '@angular-devkit/schematics@19.2.17(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.2.19(chokidar@4.0.3) + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -14669,9 +14679,9 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@20.3.13(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.14(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.13(chokidar@4.0.3) + '@angular-devkit/core': 20.3.14(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -14732,8 +14742,8 @@ snapshots: '@angular-eslint/schematics@19.8.1(@angular-eslint/template-parser@19.8.1(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.52.0)(@typescript-eslint/utils@8.52.0(eslint@8.57.1)(typescript@5.9.2))(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2)': dependencies: - '@angular-devkit/core': 19.2.19(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.19(chokidar@4.0.3) + '@angular-devkit/core': 19.2.17(chokidar@4.0.3) + '@angular-devkit/schematics': 19.2.17(chokidar@4.0.3) '@angular-eslint/eslint-plugin': 19.8.1(@typescript-eslint/utils@8.52.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) '@angular-eslint/eslint-plugin-template': 19.8.1(@angular-eslint/template-parser@19.8.1(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.52.0)(@typescript-eslint/utils@8.52.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) ignore: 7.0.5 @@ -14770,24 +14780,24 @@ snapshots: eslint: 8.57.1 typescript: 5.9.2 - '@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/build@20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/service-worker@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.6.1)(karma@6.4.4)(lightningcss@1.30.2)(postcss@8.5.6)(tailwindcss@3.4.19(yaml@2.8.2))(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.2)(yaml@2.8.2)': + '@angular/build@20.3.14(@angular/compiler-cli@20.3.16(@angular/compiler@20.3.16)(typescript@5.9.2))(@angular/compiler@20.3.16)(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/service-worker@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.6.1)(karma@6.4.4)(lightningcss@1.30.1)(postcss@8.5.6)(tailwindcss@3.4.19(yaml@2.8.1))(terser@5.44.0)(tslib@2.8.1)(typescript@5.9.2)(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) - '@angular/compiler': 20.3.15 - '@angular/compiler-cli': 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) + '@angular-devkit/architect': 0.2003.14(chokidar@4.0.3) + '@angular/compiler': 20.3.16 + '@angular/compiler-cli': 20.3.16(@angular/compiler@20.3.16)(typescript@5.9.2) '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@22.19.3) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.1)(yaml@2.8.2)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.44.0)(yaml@2.8.1)) beasties: 0.3.5 - browserslist: 4.28.1 + browserslist: 4.27.0 esbuild: 0.25.9 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 @@ -14805,16 +14815,16 @@ snapshots: tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 - vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.1)(yaml@2.8.2) + vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.44.0)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/service-worker': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/service-worker': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) karma: 6.4.4 lmdb: 3.4.2 postcss: 8.5.6 - tailwindcss: 3.4.19(yaml@2.8.2) + tailwindcss: 3.4.19(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -14828,23 +14838,23 @@ snapshots: - tsx - yaml - '@angular/cdk@20.2.14(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/cdk@20.2.14(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@20.3.13(@types/node@22.19.3)(chokidar@4.0.3)': + '@angular/cli@20.3.14(@types/node@22.19.3)(chokidar@4.0.3)(hono@4.11.3)': dependencies: - '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) - '@angular-devkit/core': 20.3.13(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.13(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.14(chokidar@4.0.3) + '@angular-devkit/core': 20.3.14(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.14(chokidar@4.0.3) '@inquirer/prompts': 7.8.2(@types/node@22.19.3) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@22.19.3))(@types/node@22.19.3)(listr2@9.0.1) - '@modelcontextprotocol/sdk': 1.24.0(zod@4.1.13) - '@schematics/angular': 20.3.13(chokidar@4.0.3) + '@modelcontextprotocol/sdk': 1.25.2(hono@4.11.3)(zod@4.1.13) + '@schematics/angular': 20.3.14(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -14860,17 +14870,18 @@ snapshots: - '@cfworker/json-schema' - '@types/node' - chokidar + - hono - supports-color - '@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.16(@angular/compiler@20.3.16)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.15 + '@angular/compiler': 20.3.16 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -14884,79 +14895,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.15': + '@angular/compiler@20.3.16': dependencies: tslib: 2.8.1 - '@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)': + '@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.15 + '@angular/compiler': 20.3.16 zone.js: 0.15.1 - '@angular/forms@20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/forms@20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/language-service@20.3.15': {} + '@angular/language-service@20.3.16': {} - '@angular/material-moment-adapter@20.2.14(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/material@20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace))(moment@2.30.1)': + '@angular/material-moment-adapter@20.2.14(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/material@20.2.14(c2c5790ef8fa7b124c6339ef37293a82))(moment@2.30.1)': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/material': 20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/material': 20.2.14(c2c5790ef8fa7b124c6339ef37293a82) moment: 2.30.1 tslib: 2.8.1 - '@angular/material@20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace)': + '@angular/material@20.2.14(c2c5790ef8fa7b124c6339ef37293a82)': dependencies: - '@angular/cdk': 20.2.14(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': 20.2.14(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))': + '@angular/platform-browser-dynamic@20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.16)(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/compiler': 20.3.15 - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': 20.3.16 + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) tslib: 2.8.1 - '@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/animations': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) - '@angular/router@20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': + '@angular/router@20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/service-worker@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@angular/service-worker@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 '@antfu/install-pkg@1.1.0': dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.0.2 + package-manager-detector: 1.3.0 + tinyexec: 1.0.1 + + '@antfu/utils@9.2.0': {} '@apidevtools/json-schema-ref-parser@11.9.3': dependencies: @@ -14974,12 +14987,34 @@ snapshots: '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/compat-data@7.28.4': {} + '@babel/compat-data@7.28.5': {} + '@babel/core@7.23.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.23.7) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.4 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/core@7.28.3': dependencies: '@ampproject/remapping': 2.3.0 @@ -14993,7 +15028,7 @@ snapshots: '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -15013,7 +15048,7 @@ snapshots: '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -15042,9 +15077,9 @@ snapshots: '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.5 + '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.27.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -15073,7 +15108,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.11 transitivePeerDependencies: @@ -15095,11 +15130,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.23.7)': + dependencies: + '@babel/core': 7.23.7 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -15108,7 +15152,7 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -15150,6 +15194,8 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} @@ -15167,6 +15213,10 @@ snapshots: '@babel/template': 7.27.2 '@babel/types': 7.28.5 + '@babel/parser@7.28.4': + dependencies: + '@babel/types': 7.28.4 + '@babel/parser@7.28.5': dependencies: '@babel/types': 7.28.5 @@ -15712,7 +15762,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.47.0 + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15749,7 +15799,7 @@ snapshots: '@babel/runtime-corejs3@7.28.4': dependencies: - core-js-pure: 3.47.0 + core-js-pure: 3.46.0 '@babel/runtime@7.28.4': {} @@ -15767,10 +15817,15 @@ snapshots: '@babel/parser': 7.28.5 '@babel/template': 7.27.2 '@babel/types': 7.28.5 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color + '@babel/types@7.28.4': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -15778,42 +15833,42 @@ snapshots: '@braintree/sanitize-url@7.1.1': {} - '@bufbuild/buf-darwin-arm64@1.62.1': + '@bufbuild/buf-darwin-arm64@1.63.0': optional: true - '@bufbuild/buf-darwin-x64@1.62.1': + '@bufbuild/buf-darwin-x64@1.63.0': optional: true - '@bufbuild/buf-linux-aarch64@1.62.1': + '@bufbuild/buf-linux-aarch64@1.63.0': optional: true - '@bufbuild/buf-linux-armv7@1.62.1': + '@bufbuild/buf-linux-armv7@1.63.0': optional: true - '@bufbuild/buf-linux-x64@1.62.1': + '@bufbuild/buf-linux-x64@1.63.0': optional: true - '@bufbuild/buf-win32-arm64@1.62.1': + '@bufbuild/buf-win32-arm64@1.63.0': optional: true - '@bufbuild/buf-win32-x64@1.62.1': + '@bufbuild/buf-win32-x64@1.63.0': optional: true - '@bufbuild/buf@1.62.1': + '@bufbuild/buf@1.63.0': optionalDependencies: - '@bufbuild/buf-darwin-arm64': 1.62.1 - '@bufbuild/buf-darwin-x64': 1.62.1 - '@bufbuild/buf-linux-aarch64': 1.62.1 - '@bufbuild/buf-linux-armv7': 1.62.1 - '@bufbuild/buf-linux-x64': 1.62.1 - '@bufbuild/buf-win32-arm64': 1.62.1 - '@bufbuild/buf-win32-x64': 1.62.1 + '@bufbuild/buf-darwin-arm64': 1.63.0 + '@bufbuild/buf-darwin-x64': 1.63.0 + '@bufbuild/buf-linux-aarch64': 1.63.0 + '@bufbuild/buf-linux-armv7': 1.63.0 + '@bufbuild/buf-linux-x64': 1.63.0 + '@bufbuild/buf-win32-arm64': 1.63.0 + '@bufbuild/buf-win32-x64': 1.63.0 '@bufbuild/protobuf@2.10.2': {} - '@bufbuild/protocompile@0.0.1(@bufbuild/buf@1.62.1)': + '@bufbuild/protocompile@0.0.1(@bufbuild/buf@1.63.0)': dependencies: - '@bufbuild/buf': 1.62.1 + '@bufbuild/buf': 1.63.0 '@bufbuild/protobuf': 2.10.2 fflate: 0.8.2 @@ -15876,7 +15931,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.8(@types/node@25.0.3)': + '@changesets/cli@2.29.8(@types/node@24.10.4)': dependencies: '@changesets/apply-release-plan': 7.0.14 '@changesets/assemble-release-plan': 6.0.9 @@ -15892,7 +15947,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@25.0.3) + '@inquirer/external-editor': 1.0.2(@types/node@24.10.4) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -15988,7 +16043,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.3 + human-id: 4.1.1 prettier: 2.8.8 '@chevrotain/cst-dts-gen@11.0.3': @@ -16074,9 +16129,9 @@ snapshots: '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.6)': dependencies: @@ -16182,9 +16237,9 @@ snapshots: '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.6)': dependencies: @@ -16252,21 +16307,11 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.6) postcss: 8.5.6 - '@csstools/postcss-position-area-property@1.0.0(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 - '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.6)': dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-property-rule-prelude-list@1.0.0(postcss@8.5.6)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - '@csstools/postcss-random-function@2.0.1(postcss@8.5.6)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -16286,7 +16331,7 @@ snapshots: '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': dependencies: @@ -16302,17 +16347,6 @@ snapshots: '@csstools/css-tokenizer': 3.0.4 postcss: 8.5.6 - '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1(postcss@8.5.6)': - dependencies: - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - - '@csstools/postcss-system-ui-font-family@1.0.0(postcss@8.5.6)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.6)': dependencies: '@csstools/color-helpers': 5.1.0 @@ -16330,29 +16364,29 @@ snapshots: dependencies: postcss: 8.5.6 - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 '@csstools/utilities@2.0.0(postcss@8.5.6)': dependencies: postcss: 8.5.6 - '@ctrl/ngx-codemirror@6.1.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/forms@20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(codemirror@5.65.20)': + '@ctrl/ngx-codemirror@6.1.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/forms@20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2))(codemirror@5.65.20)': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) - '@angular/forms': 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) - '@types/codemirror': 5.60.17 + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': 20.3.16(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.16(@angular/animations@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@types/codemirror': 5.60.16 codemirror: 5.65.20 tslib: 2.8.1 '@ctrl/tinycolor@3.6.1': {} - '@cypress/request@3.0.10': + '@cypress/request@3.0.9': dependencies: aws-sign2: 0.7.0 aws4: 1.13.2 @@ -16360,14 +16394,14 @@ snapshots: combined-stream: 1.0.8 extend: 3.0.2 forever-agent: 0.6.1 - form-data: 4.0.5 + form-data: 4.0.4 http-signature: 1.4.0 is-typedarray: 1.0.0 isstream: 0.1.2 json-stringify-safe: 5.0.1 mime-types: 2.1.35 performance-now: 2.1.0 - qs: 6.14.1 + qs: 6.14.0 safe-buffer: 5.2.1 tough-cookie: 5.1.2 tunnel-agent: 0.6.0 @@ -16382,24 +16416,17 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@docsearch/core@4.4.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - optionalDependencies: - '@types/react': 19.2.7 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@docsearch/css@4.2.0': {} - '@docsearch/css@4.4.0': {} - - '@docsearch/react@4.4.0(@algolia/client-search@5.46.2)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)': + '@docsearch/react@4.2.0(@algolia/client-search@5.41.0)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)': dependencies: - '@ai-sdk/react': 2.0.119(react@19.2.3)(zod@4.3.5) - '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3) - '@docsearch/core': 4.4.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docsearch/css': 4.4.0 - ai: 5.0.117(zod@4.3.5) - algoliasearch: 5.46.2 - marked: 16.4.2 - zod: 4.3.5 + '@ai-sdk/react': 2.0.81(react@19.2.3)(zod@4.1.12) + '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3) + '@docsearch/css': 4.2.0 + ai: 5.0.81(zod@4.1.12) + algoliasearch: 5.41.0 + marked: 16.4.1 + zod: 4.1.12 optionalDependencies: '@types/react': 19.2.7 react: 19.2.3 @@ -16408,7 +16435,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/babel@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/babel@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -16421,9 +16448,9 @@ snapshots: '@babel/runtime-corejs3': 7.28.4 '@babel/traverse': 7.28.5 '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) babel-plugin-dynamic-import-node: 2.3.3 - fs-extra: 11.3.3 + fs-extra: 11.3.2 tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -16434,34 +16461,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 - '@docusaurus/babel': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/babel': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@docusaurus/cssnano-preset': 3.9.2 '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - css-loader: 6.11.0(@rspack/core@1.7.0(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + copy-webpack-plugin: 11.0.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + css-loader: 6.11.0(@rspack/core@1.5.3(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) cssnano: 6.1.2(postcss@8.5.6) - file-loader: 6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.4(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - null-loader: 4.0.1(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + mini-css-extract-plugin: 2.9.4(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + null-loader: 4.0.1(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) postcss: 8.5.6 - postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - postcss-preset-env: 10.6.0(postcss@8.5.6) - terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + postcss-preset-env: 10.4.0(postcss@8.5.6) + terser-webpack-plugin: 5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) - webpackbar: 6.0.1(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) + webpackbar: 6.0.1(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) optionalDependencies: - '@docusaurus/faster': 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18) + '@docusaurus/faster': 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -16477,15 +16504,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/babel': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/babel': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.3) boxen: 6.2.1 chalk: 4.1.2 @@ -16493,15 +16520,15 @@ snapshots: cli-table3: 0.6.5 combine-promises: 1.2.0 commander: 5.1.0 - core-js: 3.47.0 + core-js: 3.45.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 eval: 0.1.8 execa: 5.1.1 - fs-extra: 11.3.3 + fs-extra: 11.3.2 html-tags: 3.3.1 - html-webpack-plugin: 5.6.5(@rspack/core@1.7.0(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + html-webpack-plugin: 5.6.4(@rspack/core@1.5.3(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) leven: 3.1.0 lodash: 4.17.21 open: 8.4.2 @@ -16511,7 +16538,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.3)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.3))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.3))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) react-router: 5.3.4(react@19.2.3) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.3))(react@19.2.3) react-router-dom: 5.3.4(react@19.2.3) @@ -16520,9 +16547,9 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.2(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + webpack-dev-server: 5.2.2(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) webpack-merge: 6.0.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -16548,17 +16575,17 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.6) tslib: 2.8.1 - '@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18)': + '@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@rspack/core': 1.7.0(@swc/helpers@0.5.18) - '@swc/core': 1.15.8(@swc/helpers@0.5.18) - '@swc/html': 1.15.8 - browserslist: 4.28.1 - lightningcss: 1.30.2 - swc-loader: 0.2.6(@swc/core@1.15.8(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rspack/core': 1.5.3(@swc/helpers@0.5.17) + '@swc/core': 1.13.5(@swc/helpers@0.5.17) + '@swc/html': 1.13.5 + browserslist: 4.25.4 + lightningcss: 1.30.1 + swc-loader: 0.2.6(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17))) tslib: 2.8.1 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -16570,17 +16597,17 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/mdx-loader@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - fs-extra: 11.3.3 + file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + fs-extra: 11.3.2 image-size: 2.0.2 mdast-util-mdx: 3.0.0 mdast-util-to-string: 4.0.0 @@ -16595,9 +16622,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) vfile: 6.0.3 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -16605,9 +16632,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/module-type-aliases@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/history': 4.7.11 '@types/react': 19.2.7 '@types/react-router-config': 5.0.11 @@ -16623,20 +16650,20 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) cheerio: 1.0.0-rc.12 feed: 4.2.2 - fs-extra: 11.3.3 + fs-extra: 11.3.2 lodash: 4.17.21 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -16645,7 +16672,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -16664,20 +16691,20 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 - fs-extra: 11.3.3 + fs-extra: 11.3.2 js-yaml: 4.1.1 lodash: 4.17.21 react: 19.2.3 @@ -16685,7 +16712,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -16704,18 +16731,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-content-pages@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - fs-extra: 11.3.3 + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fs-extra: 11.3.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -16734,12 +16761,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -16761,12 +16788,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-debug@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - fs-extra: 11.3.3 + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fs-extra: 11.3.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) react-json-view-lite: 2.5.0(react@19.2.3) @@ -16789,11 +16816,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-google-analytics@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 @@ -16815,11 +16842,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-google-gtag@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/gtag.js': 0.0.12 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -16842,11 +16869,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 @@ -16868,15 +16895,15 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-sitemap@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - fs-extra: 11.3.3 + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fs-extra: 11.3.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) sitemap: 7.1.2 @@ -16899,18 +16926,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/plugin-svgr@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/webpack': 8.1.0(typescript@5.9.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -16929,23 +16956,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.46.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)': + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.41.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-debug': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-google-analytics': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-google-gtag': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-sitemap': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-svgr': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.46.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-debug': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-google-analytics': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-google-gtag': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-sitemap': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-svgr': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.41.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: @@ -16974,21 +17001,21 @@ snapshots: '@types/react': 19.2.7 react: 19.2.3 - '@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.3) clsx: 2.1.1 infima: 0.2.0-alpha.45 @@ -17021,13 +17048,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/history': 4.7.11 '@types/react': 19.2.7 '@types/react-router-config': 5.0.11 @@ -17045,14 +17072,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@docusaurus/theme-mermaid@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - mermaid: 11.12.2 + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + mermaid: 11.11.0 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 @@ -17075,21 +17102,21 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.46.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)': + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.41.0)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)': dependencies: - '@docsearch/react': 4.4.0(@algolia/client-search@5.46.2)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docsearch/react': 4.2.0(@algolia/client-search@5.41.0)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(search-insights@2.17.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - algoliasearch: 5.46.2 - algoliasearch-helper: 3.27.0(algoliasearch@5.46.2) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + algoliasearch: 5.41.0 + algoliasearch-helper: 3.26.0(algoliasearch@5.41.0) clsx: 2.1.1 eta: 2.2.0 - fs-extra: 11.3.3 + fs-extra: 11.3.2 lodash: 4.17.21 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -17118,10 +17145,10 @@ snapshots: '@docusaurus/theme-translations@3.9.2': dependencies: - fs-extra: 11.3.3 + fs-extra: 11.3.2 tslib: 2.8.1 - '@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -17133,7 +17160,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)' utility-types: 3.11.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -17142,9 +17169,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/utils-common@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -17155,12 +17182,12 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/utils-validation@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - fs-extra: 11.3.3 + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fs-extra: 11.3.2 joi: 17.13.3 js-yaml: 4.1.1 lodash: 4.17.21 @@ -17174,15 +17201,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@docusaurus/utils@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - fs-extra: 11.3.3 + file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + fs-extra: 11.3.2 github-slugger: 1.5.0 globby: 11.1.0 gray-matter: 4.0.3 @@ -17194,9 +17221,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) utility-types: 3.11.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -17206,15 +17233,26 @@ snapshots: - uglify-js - webpack-cli - '@emnapi/core@1.8.1': + '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 - '@emnapi/runtime@1.8.1': + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 @@ -17444,22 +17482,29 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -17494,14 +17539,14 @@ snapshots: '@floating-ui/utils': 0.2.10 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - tabbable: 6.4.0 + tabbable: 6.2.0 '@floating-ui/utils@0.2.10': {} - '@formatjs/ecma402-abstract@2.3.6': + '@formatjs/ecma402-abstract@2.3.4': dependencies: '@formatjs/fast-memoize': 2.2.7 - '@formatjs/intl-localematcher': 0.6.2 + '@formatjs/intl-localematcher': 0.6.1 decimal.js: 10.6.0 tslib: 2.8.1 @@ -17509,28 +17554,28 @@ snapshots: dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.11.4': + '@formatjs/icu-messageformat-parser@2.11.2': dependencies: - '@formatjs/ecma402-abstract': 2.3.6 - '@formatjs/icu-skeleton-parser': 1.8.16 + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/icu-skeleton-parser': 1.8.14 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.16': + '@formatjs/icu-skeleton-parser@1.8.14': dependencies: - '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/ecma402-abstract': 2.3.4 tslib: 2.8.1 '@formatjs/intl-localematcher@0.5.10': dependencies: tslib: 2.8.1 - '@formatjs/intl-localematcher@0.6.2': + '@formatjs/intl-localematcher@0.6.1': dependencies: tslib: 2.8.1 - '@fortawesome/angular-fontawesome@3.0.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))': + '@fortawesome/angular-fontawesome@3.0.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) '@fortawesome/fontawesome-svg-core': 7.1.0 tslib: 2.8.1 @@ -17574,7 +17619,7 @@ snapshots: '@hapi/pinpoint@2.0.1': {} - '@hapi/tlds@1.1.4': {} + '@hapi/tlds@1.1.3': {} '@hapi/topo@5.1.0': dependencies: @@ -17587,9 +17632,9 @@ snapshots: '@headlessui/react@2.2.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@react-aria/focus': 3.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@react-aria/interactions': 3.26.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@tanstack/react-virtual': 3.13.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-aria/focus': 3.21.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-aria/interactions': 3.25.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@tanstack/react-virtual': 3.13.12(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) use-sync-external-store: 1.6.0(react@19.2.3) @@ -17598,6 +17643,10 @@ snapshots: dependencies: react: 19.2.3 + '@hono/node-server@1.19.7(hono@4.11.3)': + dependencies: + hono: 4.11.3 + '@hookform/error-message@2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3)': dependencies: react: 19.2.3 @@ -17607,7 +17656,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -17620,11 +17669,18 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@3.1.0': + '@iconify/utils@3.0.1': dependencies: '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 9.2.0 '@iconify/types': 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 mlly: 1.8.0 + transitivePeerDependencies: + - supports-color '@img/colour@1.0.0': optional: true @@ -17711,7 +17767,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.7.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -17725,9 +17781,9 @@ snapshots: '@inkeep/cxkit-color-mode@0.5.112': {} - '@inkeep/cxkit-docusaurus@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5)': + '@inkeep/cxkit-docusaurus@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12)': dependencies: - '@inkeep/cxkit-react': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5) + '@inkeep/cxkit-react': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12) merge-anything: 5.1.7 path: 0.12.7 react: 19.2.3 @@ -17739,7 +17795,7 @@ snapshots: - supports-color - zod - '@inkeep/cxkit-primitives@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5)': + '@inkeep/cxkit-primitives@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12)': dependencies: '@inkeep/cxkit-color-mode': 0.5.112 '@inkeep/cxkit-theme': 0.5.112 @@ -17748,45 +17804,45 @@ snapshots: '@radix-ui/primitive': 1.1.3 '@radix-ui/react-avatar': 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-checkbox': 1.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-collection': 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.3(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-popover': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-scroll-area': 1.2.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-tooltip': 1.1.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@zag-js/focus-trap': 1.32.0 - '@zag-js/presence': 1.32.0 - '@zag-js/react': 1.32.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - altcha-lib: 1.4.1 + '@zag-js/focus-trap': 1.22.1 + '@zag-js/presence': 1.22.1 + '@zag-js/react': 1.22.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + altcha-lib: 1.3.0 aria-hidden: 1.2.6 dequal: 2.0.3 humps: 2.0.1 lucide-react: 0.503.0(react@19.2.3) marked: 15.0.12 merge-anything: 5.1.7 - openai: 4.78.1(encoding@0.1.13)(zod@4.3.5) + openai: 4.78.1(encoding@0.1.13)(zod@4.1.12) prism-react-renderer: 2.4.1(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - react-error-boundary: 6.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react-error-boundary: 6.0.0(react@19.2.3) react-hook-form: 7.54.2(react@19.2.3) react-markdown: 9.0.3(@types/react@19.2.7)(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) react-svg: 16.3.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react-textarea-autosize: 8.5.7(@types/react@19.2.7)(react@19.2.3) rehype-raw: 7.0.0 @@ -17800,9 +17856,9 @@ snapshots: - supports-color - zod - '@inkeep/cxkit-react@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5)': + '@inkeep/cxkit-react@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12)': dependencies: - '@inkeep/cxkit-styled': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5) + '@inkeep/cxkit-styled': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) lucide-react: 0.503.0(react@19.2.3) transitivePeerDependencies: @@ -17814,9 +17870,9 @@ snapshots: - supports-color - zod - '@inkeep/cxkit-styled@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5)': + '@inkeep/cxkit-styled@0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12)': dependencies: - '@inkeep/cxkit-primitives': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.3.5) + '@inkeep/cxkit-primitives': 0.5.112(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod@4.1.12) class-variance-authority: 0.7.1 clsx: 2.1.1 merge-anything: 5.1.7 @@ -17836,37 +17892,37 @@ snapshots: '@inkeep/cxkit-types@0.5.112': {} - '@inquirer/ansi@1.0.2': {} + '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.3.2(@types/node@22.19.3)': + '@inquirer/checkbox@4.2.4(@types/node@22.19.3)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.19.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.19.3 '@inquirer/confirm@5.1.14(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/confirm@5.1.21(@types/node@22.19.3)': + '@inquirer/confirm@5.1.18(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/core@10.3.2(@types/node@22.19.3)': + '@inquirer/core@10.2.2(@types/node@22.19.3)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.19.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 @@ -17875,103 +17931,103 @@ snapshots: optionalDependencies: '@types/node': 22.19.3 - '@inquirer/editor@4.2.23(@types/node@22.19.3)': + '@inquirer/editor@4.2.20(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/external-editor': 1.0.3(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/external-editor': 1.0.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/expand@4.0.23(@types/node@22.19.3)': + '@inquirer/expand@4.0.20(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.19.3 - '@inquirer/external-editor@1.0.3(@types/node@22.19.3)': + '@inquirer/external-editor@1.0.2(@types/node@22.19.3)': dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.1 + chardet: 2.1.0 + iconv-lite: 0.7.0 optionalDependencies: '@types/node': 22.19.3 - '@inquirer/external-editor@1.0.3(@types/node@25.0.3)': + '@inquirer/external-editor@1.0.2(@types/node@24.10.4)': dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.1 + chardet: 2.1.0 + iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 - '@inquirer/figures@1.0.15': {} + '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.3.1(@types/node@22.19.3)': + '@inquirer/input@4.2.4(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/number@3.0.23(@types/node@22.19.3)': + '@inquirer/number@3.0.20(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/password@4.0.23(@types/node@22.19.3)': + '@inquirer/password@4.0.20(@types/node@22.19.3)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 '@inquirer/prompts@7.8.2(@types/node@22.19.3)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@22.19.3) - '@inquirer/confirm': 5.1.21(@types/node@22.19.3) - '@inquirer/editor': 4.2.23(@types/node@22.19.3) - '@inquirer/expand': 4.0.23(@types/node@22.19.3) - '@inquirer/input': 4.3.1(@types/node@22.19.3) - '@inquirer/number': 3.0.23(@types/node@22.19.3) - '@inquirer/password': 4.0.23(@types/node@22.19.3) - '@inquirer/rawlist': 4.1.11(@types/node@22.19.3) - '@inquirer/search': 3.2.2(@types/node@22.19.3) - '@inquirer/select': 4.4.2(@types/node@22.19.3) + '@inquirer/checkbox': 4.2.4(@types/node@22.19.3) + '@inquirer/confirm': 5.1.18(@types/node@22.19.3) + '@inquirer/editor': 4.2.20(@types/node@22.19.3) + '@inquirer/expand': 4.0.20(@types/node@22.19.3) + '@inquirer/input': 4.2.4(@types/node@22.19.3) + '@inquirer/number': 3.0.20(@types/node@22.19.3) + '@inquirer/password': 4.0.20(@types/node@22.19.3) + '@inquirer/rawlist': 4.1.8(@types/node@22.19.3) + '@inquirer/search': 3.1.3(@types/node@22.19.3) + '@inquirer/select': 4.3.4(@types/node@22.19.3) optionalDependencies: '@types/node': 22.19.3 - '@inquirer/rawlist@4.1.11(@types/node@22.19.3)': + '@inquirer/rawlist@4.1.8(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.19.3 - '@inquirer/search@3.2.2(@types/node@22.19.3)': + '@inquirer/search@3.1.3(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.19.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.19.3 - '@inquirer/select@4.4.2(@types/node@22.19.3)': + '@inquirer/select@4.3.4(@types/node@22.19.3)': dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.3) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@22.19.3) + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@22.19.3) yoctocolors-cjs: 2.1.3 optionalDependencies: '@types/node': 22.19.3 - '@inquirer/type@3.0.10(@types/node@22.19.3)': + '@inquirer/type@3.0.8(@types/node@22.19.3)': optionalDependencies: '@types/node': 22.19.3 @@ -18006,15 +18062,15 @@ snapshots: '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.34.46 + '@sinclair/typebox': 0.34.41 '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.0.3 - '@types/yargs': 17.0.35 + '@types/node': 24.10.4 + '@types/yargs': 17.0.34 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -18086,7 +18142,7 @@ snapshots: '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@22.19.3))(@types/node@22.19.3)(listr2@9.0.1)': dependencies: '@inquirer/prompts': 7.8.2(@types/node@22.19.3) - '@inquirer/type': 3.0.10(@types/node@22.19.3) + '@inquirer/type': 3.0.8(@types/node@22.19.3) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -18136,7 +18192,7 @@ snapshots: node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 semver: 7.7.3 - tar: 7.5.2 + tar: 7.5.1 transitivePeerDependencies: - encoding - supports-color @@ -18177,12 +18233,13 @@ snapshots: '@types/react': 19.2.7 react: 19.2.3 - '@mermaid-js/parser@0.6.3': + '@mermaid-js/parser@0.6.2': dependencies: langium: 3.3.1 - '@modelcontextprotocol/sdk@1.24.0(zod@4.1.13)': + '@modelcontextprotocol/sdk@1.25.2(hono@4.11.3)(zod@4.1.13)': dependencies: + '@hono/node-server': 1.19.7(hono@4.11.3) ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) content-type: 1.0.5 @@ -18190,40 +18247,42 @@ snapshots: cross-spawn: 7.0.6 eventsource: 3.0.7 eventsource-parser: 3.0.6 - express: 5.2.1 - express-rate-limit: 7.5.1(express@5.2.1) + express: 5.1.0 + express-rate-limit: 7.5.1(express@5.1.0) jose: 6.1.3 - pkce-challenge: 5.0.1 - raw-body: 3.0.2 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.0 + raw-body: 3.0.1 zod: 4.1.13 zod-to-json-schema: 3.25.1(zod@4.1.13) transitivePeerDependencies: + - hono - supports-color - '@module-federation/error-codes@0.22.0': {} + '@module-federation/error-codes@0.18.0': {} - '@module-federation/runtime-core@0.22.0': + '@module-federation/runtime-core@0.18.0': dependencies: - '@module-federation/error-codes': 0.22.0 - '@module-federation/sdk': 0.22.0 + '@module-federation/error-codes': 0.18.0 + '@module-federation/sdk': 0.18.0 - '@module-federation/runtime-tools@0.22.0': + '@module-federation/runtime-tools@0.18.0': dependencies: - '@module-federation/runtime': 0.22.0 - '@module-federation/webpack-bundler-runtime': 0.22.0 + '@module-federation/runtime': 0.18.0 + '@module-federation/webpack-bundler-runtime': 0.18.0 - '@module-federation/runtime@0.22.0': + '@module-federation/runtime@0.18.0': dependencies: - '@module-federation/error-codes': 0.22.0 - '@module-federation/runtime-core': 0.22.0 - '@module-federation/sdk': 0.22.0 + '@module-federation/error-codes': 0.18.0 + '@module-federation/runtime-core': 0.18.0 + '@module-federation/sdk': 0.18.0 - '@module-federation/sdk@0.22.0': {} + '@module-federation/sdk@0.18.0': {} - '@module-federation/webpack-bundler-runtime@0.22.0': + '@module-federation/webpack-bundler-runtime@0.18.0': dependencies: - '@module-federation/runtime': 0.22.0 - '@module-federation/sdk': 0.22.0 + '@module-federation/runtime': 0.18.0 + '@module-federation/sdk': 0.18.0 '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': optional: true @@ -18317,28 +18376,28 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.0 optional: true '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.0.7': + '@napi-rs/wasm-runtime@1.0.4': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.0 optional: true '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.7.1 '@tybys/wasm-util': 0.10.1 optional: true @@ -18351,7 +18410,7 @@ snapshots: minimatch: 9.0.5 read-pkg: 9.0.1 semver: 7.7.3 - yaml: 2.8.2 + yaml: 2.8.1 yargs: 17.7.2 '@next/env@15.5.9': {} @@ -18384,10 +18443,10 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.7': optional: true - '@ng-icons/core@32.5.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': + '@ng-icons/core@32.5.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) rxjs: 7.8.2 tslib: 2.8.1 @@ -18395,10 +18454,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@ngx-translate/core@17.0.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))': + '@ngx-translate/core@17.0.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -18415,7 +18474,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.19.1 '@nolyfill/is-core-module@1.0.39': {} @@ -18454,7 +18513,7 @@ snapshots: '@npmcli/package-json@6.2.0': dependencies: '@npmcli/git': 6.0.3 - glob: 10.5.0 + glob: 10.4.5 hosted-git-info: 8.1.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 @@ -18472,40 +18531,40 @@ snapshots: '@npmcli/node-gyp': 4.0.0 '@npmcli/package-json': 6.2.0 '@npmcli/promise-spawn': 8.0.3 - node-gyp: 11.5.0 + node-gyp: 11.4.2 proc-log: 5.0.0 which: 5.0.0 transitivePeerDependencies: - supports-color - '@nx/nx-darwin-arm64@22.3.3': + '@nx/nx-darwin-arm64@21.6.3': optional: true - '@nx/nx-darwin-x64@22.3.3': + '@nx/nx-darwin-x64@21.6.3': optional: true - '@nx/nx-freebsd-x64@22.3.3': + '@nx/nx-freebsd-x64@21.6.3': optional: true - '@nx/nx-linux-arm-gnueabihf@22.3.3': + '@nx/nx-linux-arm-gnueabihf@21.6.3': optional: true - '@nx/nx-linux-arm64-gnu@22.3.3': + '@nx/nx-linux-arm64-gnu@21.6.3': optional: true - '@nx/nx-linux-arm64-musl@22.3.3': + '@nx/nx-linux-arm64-musl@21.6.3': optional: true - '@nx/nx-linux-x64-gnu@22.3.3': + '@nx/nx-linux-x64-gnu@21.6.3': optional: true - '@nx/nx-linux-x64-musl@22.3.3': + '@nx/nx-linux-x64-musl@21.6.3': optional: true - '@nx/nx-win32-arm64-msvc@22.3.3': + '@nx/nx-win32-arm64-msvc@21.6.3': optional: true - '@nx/nx-win32-x64-msvc@22.3.3': + '@nx/nx-win32-x64-msvc@21.6.3': optional: true '@opentelemetry/api@1.9.0': {} @@ -18669,6 +18728,8 @@ snapshots: dependencies: cross-spawn: 7.0.6 + '@posthog/types@1.315.1': {} + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -18694,16 +18755,15 @@ snapshots: '@puppeteer/browsers@2.3.0': dependencies: - debug: 4.4.3(supports-color@5.5.0) - extract-zip: 2.0.1 + debug: 4.4.3(supports-color@8.1.1) + extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 proxy-agent: 6.5.0 semver: 7.7.3 - tar-fs: 3.1.1 + tar-fs: 3.1.0 unbzip2-stream: 1.4.3 yargs: 17.7.2 transitivePeerDependencies: - - bare-abort-controller - bare-buffer - react-native-b4a - supports-color @@ -18784,18 +18844,6 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-collection@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 @@ -18820,12 +18868,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-context@1.1.3(@types/react@19.2.7)(react@19.2.3)': - dependencies: - react: 19.2.3 - optionalDependencies: - '@types/react': 19.2.7 - '@radix-ui/react-direction@1.1.0(@types/react@19.2.7)(react@19.2.3)': dependencies: react: 19.2.3 @@ -18900,10 +18942,10 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-focus-scope@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -18960,7 +19002,7 @@ snapshots: aria-hidden: 1.2.6 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react-remove-scroll: 2.7.1(@types/react@19.2.7)(react@19.2.3) optionalDependencies: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) @@ -19019,16 +19061,6 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-portal@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-portal@1.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -19106,15 +19138,6 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -19170,13 +19193,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.3)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - optionalDependencies: - '@types/react': 19.2.7 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -19349,67 +19365,67 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@react-aria/focus@3.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@react-aria/focus@3.21.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@react-aria/interactions': 3.26.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@react-aria/utils': 3.32.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@react-types/shared': 3.32.1(react@19.2.3) - '@swc/helpers': 0.5.18 + '@react-aria/interactions': 3.25.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-aria/utils': 3.30.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-types/shared': 3.32.0(react@19.2.3) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@react-aria/interactions@3.26.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@react-aria/interactions@3.25.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@react-aria/ssr': 3.9.10(react@19.2.3) - '@react-aria/utils': 3.32.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@react-aria/utils': 3.30.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.32.1(react@19.2.3) - '@swc/helpers': 0.5.18 + '@react-types/shared': 3.32.0(react@19.2.3) + '@swc/helpers': 0.5.17 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) '@react-aria/ssr@3.9.10(react@19.2.3)': dependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.17 react: 19.2.3 - '@react-aria/utils@3.32.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@react-aria/utils@3.30.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@react-aria/ssr': 3.9.10(react@19.2.3) '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.11.0(react@19.2.3) - '@react-types/shared': 3.32.1(react@19.2.3) - '@swc/helpers': 0.5.18 + '@react-stately/utils': 3.10.8(react@19.2.3) + '@react-types/shared': 3.32.0(react@19.2.3) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) '@react-stately/flags@3.1.2': dependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.17 - '@react-stately/utils@3.11.0(react@19.2.3)': + '@react-stately/utils@3.10.8(react@19.2.3)': dependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.17 react: 19.2.3 - '@react-types/shared@3.32.1(react@19.2.3)': + '@react-types/shared@3.32.0(react@19.2.3)': dependencies: react: 19.2.3 - '@redocly/ajv@8.17.1': + '@redocly/ajv@8.11.3': dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + uri-js-replace: 1.0.1 '@redocly/config@0.22.2': {} - '@redocly/openapi-core@1.34.6': + '@redocly/openapi-core@1.34.5': dependencies: - '@redocly/ajv': 8.17.1 + '@redocly/ajv': 8.11.3 '@redocly/config': 0.22.2 colorette: 1.4.0 https-proxy-agent: 7.0.6 @@ -19436,207 +19452,132 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.52.3': optional: true - '@rollup/rollup-android-arm-eabi@4.55.1': - optional: true - '@rollup/rollup-android-arm64@4.52.3': optional: true - '@rollup/rollup-android-arm64@4.55.1': - optional: true - '@rollup/rollup-darwin-arm64@4.52.3': optional: true - '@rollup/rollup-darwin-arm64@4.55.1': - optional: true - '@rollup/rollup-darwin-x64@4.52.3': optional: true - '@rollup/rollup-darwin-x64@4.55.1': - optional: true - '@rollup/rollup-freebsd-arm64@4.52.3': optional: true - '@rollup/rollup-freebsd-arm64@4.55.1': - optional: true - '@rollup/rollup-freebsd-x64@4.52.3': optional: true - '@rollup/rollup-freebsd-x64@4.55.1': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.52.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.55.1': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.52.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.55.1': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.55.1': - optional: true - '@rollup/rollup-linux-arm64-musl@4.52.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.55.1': - optional: true - '@rollup/rollup-linux-loong64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-loong64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-loong64-musl@4.55.1': - optional: true - '@rollup/rollup-linux-ppc64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.55.1': - optional: true - - '@rollup/rollup-linux-ppc64-musl@4.55.1': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.55.1': - optional: true - '@rollup/rollup-linux-riscv64-musl@4.52.3': optional: true - '@rollup/rollup-linux-riscv64-musl@4.55.1': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.52.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.55.1': - optional: true - '@rollup/rollup-linux-x64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.55.1': - optional: true - '@rollup/rollup-linux-x64-musl@4.52.3': optional: true - '@rollup/rollup-linux-x64-musl@4.55.1': - optional: true - - '@rollup/rollup-openbsd-x64@4.55.1': - optional: true - '@rollup/rollup-openharmony-arm64@4.52.3': optional: true - '@rollup/rollup-openharmony-arm64@4.55.1': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.52.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.55.1': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.52.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.55.1': - optional: true - '@rollup/rollup-win32-x64-gnu@4.52.3': optional: true - '@rollup/rollup-win32-x64-gnu@4.55.1': - optional: true - '@rollup/rollup-win32-x64-msvc@4.52.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.55.1': + '@rspack/binding-darwin-arm64@1.5.3': optional: true - '@rspack/binding-darwin-arm64@1.7.0': + '@rspack/binding-darwin-x64@1.5.3': optional: true - '@rspack/binding-darwin-x64@1.7.0': + '@rspack/binding-linux-arm64-gnu@1.5.3': optional: true - '@rspack/binding-linux-arm64-gnu@1.7.0': + '@rspack/binding-linux-arm64-musl@1.5.3': optional: true - '@rspack/binding-linux-arm64-musl@1.7.0': + '@rspack/binding-linux-x64-gnu@1.5.3': optional: true - '@rspack/binding-linux-x64-gnu@1.7.0': + '@rspack/binding-linux-x64-musl@1.5.3': optional: true - '@rspack/binding-linux-x64-musl@1.7.0': - optional: true - - '@rspack/binding-wasm32-wasi@1.7.0': + '@rspack/binding-wasm32-wasi@1.5.3': dependencies: - '@napi-rs/wasm-runtime': 1.0.7 + '@napi-rs/wasm-runtime': 1.0.4 optional: true - '@rspack/binding-win32-arm64-msvc@1.7.0': + '@rspack/binding-win32-arm64-msvc@1.5.3': optional: true - '@rspack/binding-win32-ia32-msvc@1.7.0': + '@rspack/binding-win32-ia32-msvc@1.5.3': optional: true - '@rspack/binding-win32-x64-msvc@1.7.0': + '@rspack/binding-win32-x64-msvc@1.5.3': optional: true - '@rspack/binding@1.7.0': + '@rspack/binding@1.5.3': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.7.0 - '@rspack/binding-darwin-x64': 1.7.0 - '@rspack/binding-linux-arm64-gnu': 1.7.0 - '@rspack/binding-linux-arm64-musl': 1.7.0 - '@rspack/binding-linux-x64-gnu': 1.7.0 - '@rspack/binding-linux-x64-musl': 1.7.0 - '@rspack/binding-wasm32-wasi': 1.7.0 - '@rspack/binding-win32-arm64-msvc': 1.7.0 - '@rspack/binding-win32-ia32-msvc': 1.7.0 - '@rspack/binding-win32-x64-msvc': 1.7.0 + '@rspack/binding-darwin-arm64': 1.5.3 + '@rspack/binding-darwin-x64': 1.5.3 + '@rspack/binding-linux-arm64-gnu': 1.5.3 + '@rspack/binding-linux-arm64-musl': 1.5.3 + '@rspack/binding-linux-x64-gnu': 1.5.3 + '@rspack/binding-linux-x64-musl': 1.5.3 + '@rspack/binding-wasm32-wasi': 1.5.3 + '@rspack/binding-win32-arm64-msvc': 1.5.3 + '@rspack/binding-win32-ia32-msvc': 1.5.3 + '@rspack/binding-win32-x64-msvc': 1.5.3 - '@rspack/core@1.7.0(@swc/helpers@0.5.18)': + '@rspack/core@1.5.3(@swc/helpers@0.5.17)': dependencies: - '@module-federation/runtime-tools': 0.22.0 - '@rspack/binding': 1.7.0 - '@rspack/lite-tapable': 1.1.0 + '@module-federation/runtime-tools': 0.18.0 + '@rspack/binding': 1.5.3 + '@rspack/lite-tapable': 1.0.1 optionalDependencies: - '@swc/helpers': 0.5.18 + '@swc/helpers': 0.5.17 - '@rspack/lite-tapable@1.1.0': {} + '@rspack/lite-tapable@1.0.1': {} '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.15.0': {} - '@schematics/angular@20.3.13(chokidar@4.0.3)': + '@schematics/angular@20.3.14(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.13(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.13(chokidar@4.0.3) + '@angular-devkit/core': 20.3.14(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.14(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -19649,14 +19590,14 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))': + '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - fs-extra: 11.3.3 + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + fs-extra: 11.3.2 hast-util-select: 6.0.4 hast-util-to-html: 9.0.5 hast-util-to-string: 3.0.1 - p-map: 7.0.4 + p-map: 7.0.3 rehype-parse: 9.0.1 rehype-remark: 10.0.1 remark-gfm: 4.0.1 @@ -19701,7 +19642,7 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@sinclair/typebox@0.34.46': {} + '@sinclair/typebox@0.34.41': {} '@sindresorhus/is@4.6.0': {} @@ -19725,7 +19666,7 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@standard-schema/spec@1.1.0': {} + '@standard-schema/spec@1.0.0': {} '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.5)': dependencies: @@ -19820,52 +19761,100 @@ snapshots: - supports-color - typescript - '@swc/core-darwin-arm64@1.15.8': + '@swc/core-darwin-arm64@1.13.5': optional: true - '@swc/core-darwin-x64@1.15.8': + '@swc/core-darwin-arm64@1.15.3': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.8': + '@swc/core-darwin-x64@1.13.5': optional: true - '@swc/core-linux-arm64-gnu@1.15.8': + '@swc/core-darwin-x64@1.15.3': optional: true - '@swc/core-linux-arm64-musl@1.15.8': + '@swc/core-linux-arm-gnueabihf@1.13.5': optional: true - '@swc/core-linux-x64-gnu@1.15.8': + '@swc/core-linux-arm-gnueabihf@1.15.3': optional: true - '@swc/core-linux-x64-musl@1.15.8': + '@swc/core-linux-arm64-gnu@1.13.5': optional: true - '@swc/core-win32-arm64-msvc@1.15.8': + '@swc/core-linux-arm64-gnu@1.15.3': optional: true - '@swc/core-win32-ia32-msvc@1.15.8': + '@swc/core-linux-arm64-musl@1.13.5': optional: true - '@swc/core-win32-x64-msvc@1.15.8': + '@swc/core-linux-arm64-musl@1.15.3': optional: true - '@swc/core@1.15.8(@swc/helpers@0.5.18)': + '@swc/core-linux-x64-gnu@1.13.5': + optional: true + + '@swc/core-linux-x64-gnu@1.15.3': + optional: true + + '@swc/core-linux-x64-musl@1.13.5': + optional: true + + '@swc/core-linux-x64-musl@1.15.3': + optional: true + + '@swc/core-win32-arm64-msvc@1.13.5': + optional: true + + '@swc/core-win32-arm64-msvc@1.15.3': + optional: true + + '@swc/core-win32-ia32-msvc@1.13.5': + optional: true + + '@swc/core-win32-ia32-msvc@1.15.3': + optional: true + + '@swc/core-win32-x64-msvc@1.13.5': + optional: true + + '@swc/core-win32-x64-msvc@1.15.3': + optional: true + + '@swc/core@1.13.5(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.25 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.8 - '@swc/core-darwin-x64': 1.15.8 - '@swc/core-linux-arm-gnueabihf': 1.15.8 - '@swc/core-linux-arm64-gnu': 1.15.8 - '@swc/core-linux-arm64-musl': 1.15.8 - '@swc/core-linux-x64-gnu': 1.15.8 - '@swc/core-linux-x64-musl': 1.15.8 - '@swc/core-win32-arm64-msvc': 1.15.8 - '@swc/core-win32-ia32-msvc': 1.15.8 - '@swc/core-win32-x64-msvc': 1.15.8 - '@swc/helpers': 0.5.18 + '@swc/core-darwin-arm64': 1.13.5 + '@swc/core-darwin-x64': 1.13.5 + '@swc/core-linux-arm-gnueabihf': 1.13.5 + '@swc/core-linux-arm64-gnu': 1.13.5 + '@swc/core-linux-arm64-musl': 1.13.5 + '@swc/core-linux-x64-gnu': 1.13.5 + '@swc/core-linux-x64-musl': 1.13.5 + '@swc/core-win32-arm64-msvc': 1.13.5 + '@swc/core-win32-ia32-msvc': 1.13.5 + '@swc/core-win32-x64-msvc': 1.13.5 + '@swc/helpers': 0.5.17 + + '@swc/core@1.15.3(@swc/helpers@0.5.17)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.25 + optionalDependencies: + '@swc/core-darwin-arm64': 1.15.3 + '@swc/core-darwin-x64': 1.15.3 + '@swc/core-linux-arm-gnueabihf': 1.15.3 + '@swc/core-linux-arm64-gnu': 1.15.3 + '@swc/core-linux-arm64-musl': 1.15.3 + '@swc/core-linux-x64-gnu': 1.15.3 + '@swc/core-linux-x64-musl': 1.15.3 + '@swc/core-win32-arm64-msvc': 1.15.3 + '@swc/core-win32-ia32-msvc': 1.15.3 + '@swc/core-win32-x64-msvc': 1.15.3 + '@swc/helpers': 0.5.17 + optional: true '@swc/counter@0.1.3': {} @@ -19873,54 +19862,54 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/helpers@0.5.18': + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - '@swc/html-darwin-arm64@1.15.8': + '@swc/html-darwin-arm64@1.13.5': optional: true - '@swc/html-darwin-x64@1.15.8': + '@swc/html-darwin-x64@1.13.5': optional: true - '@swc/html-linux-arm-gnueabihf@1.15.8': + '@swc/html-linux-arm-gnueabihf@1.13.5': optional: true - '@swc/html-linux-arm64-gnu@1.15.8': + '@swc/html-linux-arm64-gnu@1.13.5': optional: true - '@swc/html-linux-arm64-musl@1.15.8': + '@swc/html-linux-arm64-musl@1.13.5': optional: true - '@swc/html-linux-x64-gnu@1.15.8': + '@swc/html-linux-x64-gnu@1.13.5': optional: true - '@swc/html-linux-x64-musl@1.15.8': + '@swc/html-linux-x64-musl@1.13.5': optional: true - '@swc/html-win32-arm64-msvc@1.15.8': + '@swc/html-win32-arm64-msvc@1.13.5': optional: true - '@swc/html-win32-ia32-msvc@1.15.8': + '@swc/html-win32-ia32-msvc@1.13.5': optional: true - '@swc/html-win32-x64-msvc@1.15.8': + '@swc/html-win32-x64-msvc@1.13.5': optional: true - '@swc/html@1.15.8': + '@swc/html@1.13.5': dependencies: '@swc/counter': 0.1.3 optionalDependencies: - '@swc/html-darwin-arm64': 1.15.8 - '@swc/html-darwin-x64': 1.15.8 - '@swc/html-linux-arm-gnueabihf': 1.15.8 - '@swc/html-linux-arm64-gnu': 1.15.8 - '@swc/html-linux-arm64-musl': 1.15.8 - '@swc/html-linux-x64-gnu': 1.15.8 - '@swc/html-linux-x64-musl': 1.15.8 - '@swc/html-win32-arm64-msvc': 1.15.8 - '@swc/html-win32-ia32-msvc': 1.15.8 - '@swc/html-win32-x64-msvc': 1.15.8 + '@swc/html-darwin-arm64': 1.13.5 + '@swc/html-darwin-x64': 1.13.5 + '@swc/html-linux-arm-gnueabihf': 1.13.5 + '@swc/html-linux-arm64-gnu': 1.13.5 + '@swc/html-linux-arm64-musl': 1.13.5 + '@swc/html-linux-x64-gnu': 1.13.5 + '@swc/html-linux-x64-musl': 1.13.5 + '@swc/html-win32-arm64-msvc': 1.13.5 + '@swc/html-win32-ia32-msvc': 1.13.5 + '@swc/html-win32-x64-msvc': 1.13.5 '@swc/types@0.1.25': dependencies: @@ -19941,10 +19930,10 @@ snapshots: content-type: 1.0.5 tslib: 2.8.1 - '@tanstack/angular-query-experimental@5.90.20(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))': + '@tanstack/angular-query-experimental@5.90.20(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) '@tanstack/query-core': 5.90.16 optionalDependencies: '@tanstack/query-devtools': 5.92.0 @@ -19954,13 +19943,13 @@ snapshots: '@tanstack/query-devtools@5.92.0': optional: true - '@tanstack/react-virtual@3.13.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-virtual@3.13.12(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@tanstack/virtual-core': 3.13.16 + '@tanstack/virtual-core': 3.13.12 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@tanstack/virtual-core@3.13.16': {} + '@tanstack/virtual-core@3.13.12': {} '@testing-library/dom@10.4.1': dependencies: @@ -20004,6 +19993,11 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 + '@tybys/wasm-util@0.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -20044,30 +20038,30 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/bonjour@3.5.13': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 - '@types/codemirror@5.60.17': + '@types/codemirror@5.60.16': dependencies: '@types/tern': 0.23.9 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.7 - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/connect@3.4.38': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/cors@2.8.19': dependencies: '@types/node': 22.19.3 - '@types/d3-array@3.2.2': {} + '@types/d3-array@3.2.1': {} '@types/d3-axis@3.0.6': dependencies: @@ -20083,7 +20077,7 @@ snapshots: '@types/d3-contour@3.0.6': dependencies: - '@types/d3-array': 3.2.2 + '@types/d3-array': 3.2.1 '@types/geojson': 7946.0.16 '@types/d3-delaunay@6.0.4': {} @@ -20153,7 +20147,7 @@ snapshots: '@types/d3@7.4.3': dependencies: - '@types/d3-array': 3.2.2 + '@types/d3-array': 3.2.1 '@types/d3-axis': 3.0.6 '@types/d3-brush': 3.0.6 '@types/d3-chord': 3.0.6 @@ -20206,7 +20200,7 @@ snapshots: '@types/express-serve-static-core@4.19.7': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -20249,7 +20243,7 @@ snapshots: '@types/http-proxy@1.17.17': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/istanbul-lib-coverage@2.0.6': {} @@ -20292,12 +20286,12 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 18.19.130 - form-data: 4.0.5 + '@types/node': 24.10.4 + form-data: 4.0.4 '@types/node-forge@1.3.14': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/node@12.20.55': {} @@ -20315,10 +20309,6 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/node@25.0.3': - dependencies: - undici-types: 7.16.0 - '@types/normalize-package-data@2.4.4': {} '@types/opentype.js@1.3.8': {} @@ -20367,22 +20357,22 @@ snapshots: '@types/react@19.2.7': dependencies: - csstype: 3.2.3 + csstype: 3.1.3 '@types/retry@0.12.2': {} '@types/sax@1.2.7': dependencies: - '@types/node': 17.0.45 + '@types/node': 24.10.4 '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/send@1.2.1': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/serve-index@1.9.4': dependencies: @@ -20391,7 +20381,7 @@ snapshots: '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/send': 0.17.6 '@types/sinonjs__fake-timers@8.1.1': {} @@ -20400,7 +20390,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/tern@0.23.9': dependencies: @@ -20419,11 +20409,11 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.35': + '@types/yargs@17.0.34': dependencies: '@types/yargs-parser': 21.0.3 @@ -20470,7 +20460,7 @@ snapshots: '@typescript-eslint/types': 8.52.0 '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 5.9.2 transitivePeerDependencies: @@ -20482,7 +20472,7 @@ snapshots: '@typescript-eslint/types': 8.52.0 '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: @@ -20492,7 +20482,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.2) '@typescript-eslint/types': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -20501,7 +20491,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) '@typescript-eslint/types': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -20529,7 +20519,7 @@ snapshots: '@typescript-eslint/types': 8.52.0 '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.2) '@typescript-eslint/utils': 8.52.0(eslint@8.57.1)(typescript@5.9.2) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.4.0(typescript@5.9.2) typescript: 5.9.2 @@ -20541,7 +20531,7 @@ snapshots: '@typescript-eslint/types': 8.52.0 '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) '@typescript-eslint/utils': 8.52.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 @@ -20556,7 +20546,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0-alpha.20 '@typescript-eslint/visitor-keys': 8.0.0-alpha.20 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -20573,7 +20563,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.2) '@typescript-eslint/types': 8.52.0 '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 @@ -20588,7 +20578,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) '@typescript-eslint/types': 8.52.0 '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 @@ -20599,7 +20589,7 @@ snapshots: '@typescript-eslint/utils@8.0.0-alpha.20(eslint@8.57.1)(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) '@typescript-eslint/scope-manager': 8.0.0-alpha.20 '@typescript-eslint/types': 8.0.0-alpha.20 '@typescript-eslint/typescript-estree': 8.0.0-alpha.20(typescript@5.9.2) @@ -20703,13 +20693,13 @@ snapshots: '@vercel/git-hooks@1.0.0': {} - '@vercel/oidc@3.0.5': {} + '@vercel/oidc@3.0.3': {} - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.1)(yaml@2.8.2))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.44.0)(yaml@2.8.1))': dependencies: - vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.1)(yaml@2.8.2) + vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.44.0)(yaml@2.8.1) - '@vitejs/plugin-react@4.7.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2))': + '@vitejs/plugin-react@4.7.0(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -20717,7 +20707,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2) + vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -20728,21 +20718,21 @@ snapshots: chai: 5.3.3 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))': + '@vitest/mocker@2.1.9(vite@5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 0.30.19 optionalDependencies: - vite: 5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) - '@vitest/mocker@2.1.9(vite@5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1))': + '@vitest/mocker@2.1.9(vite@5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 0.30.19 optionalDependencies: - vite: 5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) '@vitest/pretty-format@2.1.9': dependencies: @@ -20756,7 +20746,7 @@ snapshots: '@vitest/snapshot@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 - magic-string: 0.30.21 + magic-string: 0.30.19 pathe: 1.1.2 '@vitest/spy@2.1.9': @@ -20853,46 +20843,46 @@ snapshots: '@yarnpkg/parsers@3.0.2': dependencies: - js-yaml: 3.14.2 + js-yaml: 3.14.1 tslib: 2.8.1 - '@zag-js/core@1.32.0': + '@zag-js/core@1.22.1': dependencies: - '@zag-js/dom-query': 1.32.0 - '@zag-js/utils': 1.32.0 + '@zag-js/dom-query': 1.22.1 + '@zag-js/utils': 1.22.1 - '@zag-js/dom-query@1.32.0': + '@zag-js/dom-query@1.22.1': dependencies: - '@zag-js/types': 1.32.0 + '@zag-js/types': 1.22.1 - '@zag-js/focus-trap@1.32.0': + '@zag-js/focus-trap@1.22.1': dependencies: - '@zag-js/dom-query': 1.32.0 + '@zag-js/dom-query': 1.22.1 - '@zag-js/presence@1.32.0': + '@zag-js/presence@1.22.1': dependencies: - '@zag-js/core': 1.32.0 - '@zag-js/dom-query': 1.32.0 - '@zag-js/types': 1.32.0 + '@zag-js/core': 1.22.1 + '@zag-js/dom-query': 1.22.1 + '@zag-js/types': 1.22.1 - '@zag-js/react@1.32.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@zag-js/react@1.22.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@zag-js/core': 1.32.0 - '@zag-js/store': 1.32.0 - '@zag-js/types': 1.32.0 - '@zag-js/utils': 1.32.0 + '@zag-js/core': 1.22.1 + '@zag-js/store': 1.22.1 + '@zag-js/types': 1.22.1 + '@zag-js/utils': 1.22.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@zag-js/store@1.32.0': + '@zag-js/store@1.22.1': dependencies: proxy-compare: 3.0.1 - '@zag-js/types@1.32.0': + '@zag-js/types@1.22.1': dependencies: - csstype: 3.2.3 + csstype: 3.1.3 - '@zag-js/utils@1.32.0': {} + '@zag-js/utils@1.22.1': {} '@zkochan/js-yaml@0.0.7': dependencies: @@ -20913,9 +20903,13 @@ snapshots: accepts@2.0.0: dependencies: - mime-types: 3.0.2 + mime-types: 3.0.1 negotiator: 1.0.0 + acorn-import-attributes@1.9.5(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-import-phases@1.0.4(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -20943,13 +20937,13 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@5.0.117(zod@4.3.5): + ai@5.0.81(zod@4.1.12): dependencies: - '@ai-sdk/gateway': 2.0.24(zod@4.3.5) - '@ai-sdk/provider': 2.0.1 - '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5) + '@ai-sdk/gateway': 2.0.2(zod@4.1.12) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.13(zod@4.1.12) '@opentelemetry/api': 1.9.0 - zod: 4.3.5 + zod: 4.1.12 ajv-draft-04@1.0.0(ajv@8.11.0): optionalDependencies: @@ -20997,10 +20991,10 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch-helper@3.27.0(algoliasearch@5.46.2): + algoliasearch-helper@3.26.0(algoliasearch@5.41.0): dependencies: '@algolia/events': 4.0.1 - algoliasearch: 5.46.2 + algoliasearch: 5.41.0 algoliasearch@5.35.0: dependencies: @@ -21019,38 +21013,38 @@ snapshots: '@algolia/requester-fetch': 5.35.0 '@algolia/requester-node-http': 5.35.0 - algoliasearch@5.46.2: + algoliasearch@5.41.0: dependencies: - '@algolia/abtesting': 1.12.2 - '@algolia/client-abtesting': 5.46.2 - '@algolia/client-analytics': 5.46.2 - '@algolia/client-common': 5.46.2 - '@algolia/client-insights': 5.46.2 - '@algolia/client-personalization': 5.46.2 - '@algolia/client-query-suggestions': 5.46.2 - '@algolia/client-search': 5.46.2 - '@algolia/ingestion': 1.46.2 - '@algolia/monitoring': 1.46.2 - '@algolia/recommend': 5.46.2 - '@algolia/requester-browser-xhr': 5.46.2 - '@algolia/requester-fetch': 5.46.2 - '@algolia/requester-node-http': 5.46.2 + '@algolia/abtesting': 1.7.0 + '@algolia/client-abtesting': 5.41.0 + '@algolia/client-analytics': 5.41.0 + '@algolia/client-common': 5.41.0 + '@algolia/client-insights': 5.41.0 + '@algolia/client-personalization': 5.41.0 + '@algolia/client-query-suggestions': 5.41.0 + '@algolia/client-search': 5.41.0 + '@algolia/ingestion': 1.41.0 + '@algolia/monitoring': 1.41.0 + '@algolia/recommend': 5.41.0 + '@algolia/requester-browser-xhr': 5.41.0 + '@algolia/requester-fetch': 5.41.0 + '@algolia/requester-node-http': 5.41.0 allof-merge@0.6.7: dependencies: json-crawl: 0.5.3 - altcha-lib@1.4.1: {} + altcha-lib@1.3.0: {} - angular-oauth2-oidc@20.0.2(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)): + angular-oauth2-oidc@20.0.2(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)): dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) tslib: 2.8.1 - angularx-qrcode@20.0.0(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)): + angularx-qrcode@20.0.0(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)): dependencies: - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) qrcode: 1.5.4 tslib: 2.8.1 @@ -21064,7 +21058,7 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@7.2.0: + ansi-escapes@7.1.0: dependencies: environment: 1.1.0 @@ -21121,7 +21115,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -21133,7 +21127,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -21143,7 +21137,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -21152,21 +21146,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -21175,7 +21169,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -21214,7 +21208,7 @@ snapshots: autoprefixer@10.4.23(postcss@8.5.6): dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001762 + caniuse-lite: 1.0.30001763 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 @@ -21228,12 +21222,20 @@ snapshots: aws4@1.13.2: {} - axe-core@4.11.0: {} + axe-core@4.10.3: {} + + axios@1.12.2: + dependencies: + follow-redirects: 1.15.11(debug@4.4.3) + form-data: 4.0.4 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug axios@1.13.2(debug@4.4.3): dependencies: follow-redirects: 1.15.11(debug@4.4.3) - form-data: 4.0.5 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -21244,15 +21246,15 @@ snapshots: axobject-query@4.1.0: {} - b4a@1.7.3: + b4a@1.7.1: optional: true - babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@babel/core': 7.28.5 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -21271,7 +21273,7 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.47.0 + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color @@ -21286,18 +21288,17 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.8.2: + bare-events@2.6.1: optional: true - bare-fs@4.5.2: + bare-fs@4.3.3: dependencies: - bare-events: 2.8.2 + bare-events: 2.6.1 bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.8.2) - bare-url: 2.3.2 + bare-stream: 2.7.0(bare-events@2.6.1) + bare-url: 2.2.2 fast-fifo: 1.3.2 transitivePeerDependencies: - - bare-abort-controller - react-native-b4a optional: true @@ -21309,17 +21310,16 @@ snapshots: bare-os: 3.6.2 optional: true - bare-stream@2.7.0(bare-events@2.8.2): + bare-stream@2.7.0(bare-events@2.6.1): dependencies: - streamx: 2.23.0 + streamx: 2.22.1 optionalDependencies: - bare-events: 2.8.2 + bare-events: 2.6.1 transitivePeerDependencies: - - bare-abort-controller - react-native-b4a optional: true - bare-url@2.3.2: + bare-url@2.2.2: dependencies: bare-path: 3.0.0 optional: true @@ -21328,9 +21328,11 @@ snapshots: base64id@2.0.0: {} - baseline-browser-mapping@2.9.11: {} + baseline-browser-mapping@2.8.20: {} - basic-ftp@5.1.0: + baseline-browser-mapping@2.9.12: {} + + basic-ftp@5.0.5: optional: true batch@0.6.1: {} @@ -21370,33 +21372,33 @@ snapshots: bluebird@3.7.2: {} - body-parser@1.20.4: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - http-errors: 2.0.1 + http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.14.1 - raw-body: 2.5.3 + qs: 6.13.0 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color - body-parser@2.2.1: + body-parser@2.2.0: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3(supports-color@5.5.0) - http-errors: 2.0.1 - iconv-lite: 0.7.1 + debug: 4.4.3(supports-color@8.1.1) + http-errors: 2.0.0 + iconv-lite: 0.6.3 on-finished: 2.4.1 - qs: 6.14.1 - raw-body: 3.0.2 + qs: 6.14.0 + raw-body: 3.0.1 type-is: 2.0.1 transitivePeerDependencies: - supports-color @@ -21445,10 +21447,25 @@ snapshots: browser-stdout@1.3.1: {} + browserslist@4.25.4: + dependencies: + caniuse-lite: 1.0.30001741 + electron-to-chromium: 1.5.217 + node-releases: 2.0.20 + update-browserslist-db: 1.1.3(browserslist@4.25.4) + + browserslist@4.27.0: + dependencies: + baseline-browser-mapping: 2.8.20 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.241 + node-releases: 2.0.26 + update-browserslist-db: 1.1.4(browserslist@4.27.0) + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.11 - caniuse-lite: 1.0.30001762 + baseline-browser-mapping: 2.9.12 + caniuse-lite: 1.0.30001763 electron-to-chromium: 1.5.267 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -21490,15 +21507,15 @@ snapshots: dependencies: '@npmcli/fs': 4.0.0 fs-minipass: 3.0.3 - glob: 10.5.0 + glob: 10.4.5 lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - p-map: 7.0.4 + p-map: 7.0.3 ssri: 12.0.0 - tar: 7.5.2 + tar: 7.5.1 unique-filename: 4.0.0 cacheable-lookup@7.0.0: {} @@ -21510,7 +21527,7 @@ snapshots: http-cache-semantics: 4.2.0 keyv: 4.5.4 mimic-response: 4.0.0 - normalize-url: 8.1.1 + normalize-url: 8.1.0 responselike: 3.0.0 cachedir@2.4.0: {} @@ -21551,12 +21568,16 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001762 + browserslist: 4.27.0 + caniuse-lite: 1.0.30001751 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001762: {} + caniuse-lite@1.0.30001741: {} + + caniuse-lite@1.0.30001751: {} + + caniuse-lite@1.0.30001763: {} case-anything@2.1.13: {} @@ -21567,7 +21588,7 @@ snapshots: chai@5.3.3: dependencies: assertion-error: 2.0.1 - check-error: 2.1.3 + check-error: 2.1.1 deep-eql: 5.0.2 loupe: 3.2.1 pathval: 2.0.1 @@ -21589,11 +21610,11 @@ snapshots: character-reference-invalid@2.0.1: {} - chardet@2.1.1: {} + chardet@2.1.0: {} charset@1.0.1: {} - check-error@2.1.3: {} + check-error@2.1.1: {} check-more-types@2.24.0: {} @@ -21619,7 +21640,7 @@ snapshots: chevrotain-allstar@0.3.1(chevrotain@11.0.3): dependencies: chevrotain: 11.0.3 - lodash-es: 4.17.22 + lodash-es: 4.17.21 chevrotain@11.0.3: dependencies: @@ -21662,7 +21683,7 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.3.1: {} + ci-info@4.3.0: {} class-variance-authority@0.7.1: dependencies: @@ -21840,6 +21861,8 @@ snapshots: confbox@0.1.8: {} + confbox@0.2.2: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -21872,7 +21895,9 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-disposition@1.0.1: {} + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 content-type@1.0.5: {} @@ -21880,10 +21905,12 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.7: {} + cookie-signature@1.0.6: {} cookie-signature@1.2.2: {} + cookie@0.7.1: {} + cookie@0.7.2: {} copy-anything@2.0.6: @@ -21891,13 +21918,13 @@ snapshots: is-what: 3.14.1 optional: true - copy-text-to-clipboard@3.2.2: {} + copy-text-to-clipboard@3.2.1: {} copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - copy-webpack-plugin@11.0.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + copy-webpack-plugin@11.0.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -21905,15 +21932,15 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) - core-js-compat@3.47.0: + core-js-compat@3.46.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 - core-js-pure@3.47.0: {} + core-js-pure@3.46.0: {} - core-js@3.47.0: {} + core-js@3.45.1: {} core-util-is@1.0.2: {} @@ -21966,20 +21993,20 @@ snapshots: css-blank-pseudo@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 - css-declaration-sorter@7.3.1(postcss@8.5.6): + css-declaration-sorter@7.3.0(postcss@8.5.6): dependencies: postcss: 8.5.6 css-has-pseudo@7.0.3(postcss@8.5.6): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.0(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + css-loader@6.11.0(@rspack/core@1.5.3(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -21990,10 +22017,10 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - '@rspack/core': 1.7.0(@swc/helpers@0.5.18) - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + '@rspack/core': 1.5.3(@swc/helpers@0.5.17) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.6) @@ -22001,7 +22028,7 @@ snapshots: postcss: 8.5.6 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) optionalDependencies: clean-css: 5.3.3 @@ -22033,7 +22060,7 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-selector-parser@3.3.0: {} + css-selector-parser@3.1.3: {} css-tree@2.2.1: dependencies: @@ -22051,14 +22078,14 @@ snapshots: css.escape@1.5.1: {} - cssdb@8.6.0: {} + cssdb@8.4.2: {} cssesc@3.0.0: {} cssnano-preset-advanced@6.1.2(postcss@8.5.6): dependencies: autoprefixer: 10.4.23(postcss@8.5.6) - browserslist: 4.28.1 + browserslist: 4.27.0 cssnano-preset-default: 6.1.2(postcss@8.5.6) postcss: 8.5.6 postcss-discard-unused: 6.0.5(postcss@8.5.6) @@ -22068,8 +22095,8 @@ snapshots: cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: - browserslist: 4.28.1 - css-declaration-sorter: 7.3.1(postcss@8.5.6) + browserslist: 4.27.0 + css-declaration-sorter: 7.3.0(postcss@8.5.6) cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-calc: 9.0.1(postcss@8.5.6) @@ -22119,7 +22146,7 @@ snapshots: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 - csstype@3.2.3: {} + csstype@3.1.3: {} custom-event@1.0.1: {} @@ -22127,7 +22154,7 @@ snapshots: cypress@14.5.4: dependencies: - '@cypress/request': 3.0.10 + '@cypress/request': 3.0.9 '@cypress/xvfb': 1.2.4(supports-color@8.1.1) '@types/sinonjs__fake-timers': 8.1.1 '@types/sizzle': 2.3.10 @@ -22138,13 +22165,13 @@ snapshots: cachedir: 2.4.0 chalk: 4.1.2 check-more-types: 2.24.0 - ci-info: 4.3.1 + ci-info: 4.3.0 cli-cursor: 3.1.0 cli-table3: 0.6.1 commander: 6.2.1 common-tags: 1.8.2 - dayjs: 1.11.19 - debug: 4.4.3(supports-color@8.1.1) + dayjs: 1.11.18 + debug: 4.4.1(supports-color@8.1.1) enquirer: 2.4.1 eventemitter2: 6.4.7 execa: 4.1.0 @@ -22165,7 +22192,7 @@ snapshots: process: 0.11.10 proxy-from-env: 1.0.0 request-progress: 3.0.0 - semver: 7.7.3 + semver: 7.7.2 supports-color: 8.1.1 tmp: 0.2.5 tree-kill: 1.2.2 @@ -22351,10 +22378,10 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.13: + dagre-d3-es@7.0.11: dependencies: d3: 7.9.0 - lodash-es: 4.17.22 + lodash-es: 4.17.21 damerau-levenshtein@1.0.8: {} @@ -22394,7 +22421,7 @@ snapshots: dateformat@4.6.3: {} - dayjs@1.11.19: {} + dayjs@1.11.18: {} debounce@1.2.1: {} @@ -22408,6 +22435,16 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.1(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + debug@4.4.3(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -22442,12 +22479,12 @@ snapshots: deepmerge@4.3.1: {} - default-browser-id@5.0.1: {} + default-browser-id@5.0.0: {} - default-browser@5.4.0: + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.1 + default-browser-id: 5.0.0 defaults@1.0.4: dependencies: @@ -22496,6 +22533,8 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.0.4: {} + detect-libc@2.1.2: {} detect-node-es@1.1.0: {} @@ -22509,7 +22548,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -22552,19 +22591,19 @@ snapshots: dependencies: esutils: 2.0.3 - docusaurus-plugin-image-zoom@3.0.1(@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): + docusaurus-plugin-image-zoom@3.0.1(@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): dependencies: - '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) medium-zoom: 1.1.0 validate-peer-dependencies: 2.2.0 - docusaurus-plugin-openapi-docs@4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3): + docusaurus-plugin-openapi-docs@4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3): dependencies: '@apidevtools/json-schema-ref-parser': 11.9.3 - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@redocly/openapi-core': 1.34.6 + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@docusaurus/utils': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@redocly/openapi-core': 1.34.5 allof-merge: 0.6.7 chalk: 4.1.2 clsx: 1.2.1 @@ -22583,20 +22622,20 @@ snapshots: - encoding - supports-color - docusaurus-plugin-sass@0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(sass@1.97.1)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + docusaurus-plugin-sass@0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(sass@1.97.2)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - sass: 1.97.1 - sass-loader: 16.0.6(@rspack/core@1.7.0(@swc/helpers@0.5.18))(sass@1.97.1)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + sass: 1.97.2 + sass-loader: 16.0.6(@rspack/core@1.5.3(@swc/helpers@0.5.17))(sass@1.97.2)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) transitivePeerDependencies: - '@rspack/core' - node-sass - sass-embedded - webpack - docusaurus-theme-github-codeblock@2.0.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + docusaurus-theme-github-codeblock@2.0.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/types': 3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) transitivePeerDependencies: - '@swc/core' - esbuild @@ -22606,18 +22645,18 @@ snapshots: - uglify-js - webpack-cli - docusaurus-theme-openapi-docs@4.5.1(6a37be6aa0b8b235116ce4589405f128): + docusaurus-theme-openapi-docs@4.5.1(282ae69948a5d34178ab9649da56ed03): dependencies: - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@hookform/error-message': 2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3) '@reduxjs/toolkit': 1.9.7(react-redux@7.2.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) allof-merge: 0.6.7 buffer: 6.0.3 clsx: 1.2.1 - copy-text-to-clipboard: 3.2.2 + copy-text-to-clipboard: 3.2.1 crypto-js: 4.2.0 - docusaurus-plugin-openapi-docs: 4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3) - docusaurus-plugin-sass: 0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.18))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(@swc/core@1.15.8(@swc/helpers@0.5.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@rspack/core@1.7.0(@swc/helpers@0.5.18))(sass@1.97.1)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + docusaurus-plugin-openapi-docs: 4.5.1(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@docusaurus/utils-validation@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@docusaurus/utils@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(encoding@0.1.13)(react@19.2.3) + docusaurus-plugin-sass: 0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@swc/helpers@0.5.17))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(@swc/core@1.13.5(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@rspack/core@1.5.3(@swc/helpers@0.5.17))(sass@1.97.2)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) file-saver: 2.0.5 lodash: 4.17.21 pako: 2.1.0 @@ -22635,8 +22674,8 @@ snapshots: react-redux: 7.2.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3) rehype-raw: 6.1.1 remark-gfm: 3.0.1 - sass: 1.97.1 - sass-loader: 16.0.6(@rspack/core@1.7.0(@swc/helpers@0.5.18))(sass@1.97.1)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + sass: 1.97.2 + sass-loader: 16.0.6(@rspack/core@1.5.3(@swc/helpers@0.5.17))(sass@1.97.2)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) unist-util-visit: 5.0.0 url: 0.11.4 xml-formatter: 2.6.1 @@ -22686,7 +22725,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.3.1: + dompurify@3.2.6: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -22726,7 +22765,7 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.4.7 + dotenv: 16.6.1 dotenv@16.4.7: {} @@ -22757,9 +22796,13 @@ snapshots: ee-first@1.1.1: {} + electron-to-chromium@1.5.217: {} + + electron-to-chromium@1.5.241: {} + electron-to-chromium@1.5.267: {} - emoji-regex@10.6.0: {} + emoji-regex@10.5.0: {} emoji-regex@8.0.0: {} @@ -22786,7 +22829,7 @@ snapshots: engine.io-parser@5.2.3: {} - engine.io@6.6.5: + engine.io@6.6.4: dependencies: '@types/cors': 2.8.19 '@types/node': 22.19.3 @@ -22794,18 +22837,18 @@ snapshots: base64id: 2.0.0 cookie: 0.7.2 cors: 2.8.5 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 engine.io-parser: 5.2.3 - ws: 8.18.3 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - enhanced-resolve@5.18.4: + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.2.3 enquirer@2.3.6: dependencies: @@ -22845,7 +22888,7 @@ snapshots: prr: 1.0.1 optional: true - error-ex@1.3.4: + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -22853,7 +22896,7 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.24.1: + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -22914,12 +22957,12 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.2.2: + es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -22935,8 +22978,6 @@ snapshots: es-module-lexer@1.7.0: {} - es-module-lexer@2.0.0: {} - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -23107,16 +23148,16 @@ snapshots: dependencies: debug: 3.2.7(supports-color@8.1.1) is-core-module: 2.16.1 - resolve: 1.22.11 + resolve: 1.22.10 transitivePeerDependencies: - supports-color eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) eslint: 8.57.1 - get-tsconfig: 4.13.0 + get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 @@ -23172,7 +23213,7 @@ snapshots: array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.0 + axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -23196,7 +23237,7 @@ snapshots: array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 + es-iterator-helpers: 1.2.1 eslint: 8.57.1 estraverse: 5.3.0 hasown: 2.0.2 @@ -23234,8 +23275,8 @@ snapshots: eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.2 + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 @@ -23245,13 +23286,13 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.7.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -23263,7 +23304,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.1 + js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -23283,7 +23324,7 @@ snapshots: esprima@4.0.1: {} - esquery@1.7.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -23361,7 +23402,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 require-like: 0.1.2 event-stream@3.3.4: @@ -23382,13 +23423,6 @@ snapshots: eventemitter3@5.0.1: {} - events-universal@1.0.1: - dependencies: - bare-events: 2.8.2 - transitivePeerDependencies: - - bare-abort-controller - optional: true - events@3.3.0: {} eventsource-parser@3.0.6: {} @@ -23439,83 +23473,84 @@ snapshots: exenv@1.2.2: {} - expect-type@1.3.0: {} + expect-type@1.2.2: {} - exponential-backoff@3.1.3: {} + exponential-backoff@3.1.2: {} - express-rate-limit@7.5.1(express@5.2.1): + express-rate-limit@7.5.1(express@5.1.0): dependencies: - express: 5.2.1 + express: 5.1.0 - express@4.22.1: + express@4.21.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.4 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 + cookie: 0.7.1 + cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.3.2 + finalhandler: 1.3.1 fresh: 0.5.2 - http-errors: 2.0.1 + http-errors: 2.0.0 merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 - statuses: 2.0.2 + statuses: 2.0.1 type-is: 1.6.18 utils-merge: 1.0.1 vary: 1.1.2 transitivePeerDependencies: - supports-color - express@5.2.1: + express@5.1.0: dependencies: accepts: 2.0.0 - body-parser: 2.2.1 - content-disposition: 1.0.1 + body-parser: 2.2.0 + content-disposition: 1.0.0 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@5.5.0) - depd: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 2.1.1 + finalhandler: 2.1.0 fresh: 2.0.0 - http-errors: 2.0.1 + http-errors: 2.0.0 merge-descriptors: 2.0.0 - mime-types: 3.0.2 + mime-types: 3.0.1 on-finished: 2.4.1 once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.14.0 range-parser: 1.2.1 router: 2.2.0 - send: 1.2.1 - serve-static: 2.2.1 - statuses: 2.0.2 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.1 type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: - supports-color + exsolve@1.0.7: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -23524,20 +23559,9 @@ snapshots: extendable-error@0.1.7: {} - extract-zip@2.0.1: - dependencies: - debug: 4.4.3(supports-color@5.5.0) - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - optional: true - extract-zip@2.0.1(supports-color@8.1.1): dependencies: - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.1(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -23576,7 +23600,7 @@ snapshots: fast-uri@3.1.0: {} - fastq@1.20.1: + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -23621,11 +23645,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) file-saver@2.0.5: {} @@ -23647,26 +23671,26 @@ snapshots: transitivePeerDependencies: - supports-color - finalhandler@1.3.2: + finalhandler@1.3.1: dependencies: debug: 2.6.9 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.2 + statuses: 2.0.1 unpipe: 1.0.0 transitivePeerDependencies: - supports-color - finalhandler@2.1.1: + finalhandler@2.1.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.2 + statuses: 2.0.1 transitivePeerDependencies: - supports-color @@ -23698,9 +23722,9 @@ snapshots: fix-dts-default-cjs-exports@1.0.1: dependencies: - magic-string: 0.30.21 + magic-string: 0.30.19 mlly: 1.8.0 - rollup: 4.55.1 + rollup: 4.52.3 flag-icons@7.5.0: {} @@ -23716,7 +23740,7 @@ snapshots: follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) for-each@0.3.5: dependencies: @@ -23735,7 +23759,7 @@ snapshots: form-data-encoder@2.1.4: {} - form-data@4.0.5: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -23770,7 +23794,7 @@ snapshots: front-matter@4.0.2: dependencies: - js-yaml: 3.14.2 + js-yaml: 3.14.1 fs-constants@1.0.0: {} @@ -23780,7 +23804,7 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-extra@11.3.3: + fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 @@ -23845,8 +23869,6 @@ snapshots: transitivePeerDependencies: - supports-color - generator-function@2.0.1: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -23889,15 +23911,15 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 get-uri@6.0.5: dependencies: - basic-ftp: 5.1.0 + basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color optional: true @@ -23926,7 +23948,7 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.5.0: + glob@10.4.5: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 @@ -23942,7 +23964,7 @@ snapshots: minimatch: 10.1.1 minipass: 7.1.2 package-json-from-dist: 1.0.1 - path-scurry: 2.0.1 + path-scurry: 2.0.0 glob@7.2.3: dependencies: @@ -23961,6 +23983,8 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@15.15.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -24015,7 +24039,7 @@ snapshots: gray-matter@4.0.3: dependencies: - js-yaml: 3.14.2 + js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 @@ -24168,9 +24192,9 @@ snapshots: '@types/unist': 3.0.3 '@ungap/structured-clone': 1.3.0 hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 parse5: 7.3.0 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -24184,7 +24208,7 @@ snapshots: '@types/unist': 3.0.3 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 - css-selector-parser: 3.3.0 + css-selector-parser: 3.1.3 devlop: 1.1.0 direction: 2.0.1 hast-util-has-property: 3.0.0 @@ -24232,7 +24256,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.21 + style-to-js: 1.1.17 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -24246,7 +24270,7 @@ snapshots: comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 @@ -24266,7 +24290,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.21 + style-to-js: 1.1.17 unist-util-position: 5.0.0 vfile-message: 4.0.3 transitivePeerDependencies: @@ -24282,7 +24306,7 @@ snapshots: hast-util-to-text: 4.0.2 hast-util-whitespace: 3.0.0 mdast-util-phrasing: 4.1.0 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 mdast-util-to-string: 4.0.0 rehype-minify-whitespace: 6.0.2 trim-trailing-lines: 2.1.0 @@ -24298,12 +24322,12 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-parse5@8.0.1: + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -24356,6 +24380,8 @@ snapshots: dependencies: react-is: 16.13.1 + hono@4.11.3: {} + hosted-git-info@7.0.2: dependencies: lru-cache: 10.4.3 @@ -24364,9 +24390,9 @@ snapshots: dependencies: lru-cache: 10.4.3 - hosted-git-info@9.0.2: + hosted-git-info@9.0.1: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.2.1 hpack.js@2.1.6: dependencies: @@ -24389,7 +24415,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.44.1 + terser: 5.44.0 html-minifier-terser@7.2.0: dependencies: @@ -24399,7 +24425,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.44.1 + terser: 5.44.0 html-tags@3.3.1: {} @@ -24409,7 +24435,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.5(@rspack/core@1.7.0(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + html-webpack-plugin@5.6.4(@rspack/core@1.5.3(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -24417,8 +24443,8 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - '@rspack/core': 1.7.0(@swc/helpers@0.5.18) - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + '@rspack/core': 1.5.3(@swc/helpers@0.5.17) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) htmlparser2@10.0.0: dependencies: @@ -24452,12 +24478,12 @@ snapshots: setprototypeof: 1.1.0 statuses: 1.5.0 - http-errors@2.0.1: + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 - statuses: 2.0.2 + statuses: 2.0.1 toidentifier: 1.0.1 http-parser-js@0.5.10: {} @@ -24465,7 +24491,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -24507,11 +24533,11 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color - human-id@4.1.3: {} + human-id@4.1.1: {} human-signals@1.1.1: {} @@ -24539,7 +24565,7 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.1: + iconv-lite@0.7.0: dependencies: safer-buffer: 2.1.2 @@ -24553,7 +24579,7 @@ snapshots: ignore-walk@8.0.0: dependencies: - minimatch: 10.1.1 + minimatch: 10.0.3 ignore@5.3.2: {} @@ -24566,7 +24592,7 @@ snapshots: immer@9.0.21: {} - immutable@5.1.4: {} + immutable@5.1.3: {} import-fresh@3.3.1: dependencies: @@ -24600,7 +24626,7 @@ snapshots: inline-style-parser@0.1.1: {} - inline-style-parser@0.2.7: {} + inline-style-parser@0.2.4: {} internal-slot@1.1.0: dependencies: @@ -24614,22 +24640,22 @@ snapshots: interpret@1.4.0: {} - intl-messageformat@10.7.18: + intl-messageformat@10.7.16: dependencies: - '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/ecma402-abstract': 2.3.4 '@formatjs/fast-memoize': 2.2.7 - '@formatjs/icu-messageformat-parser': 2.11.4 + '@formatjs/icu-messageformat-parser': 2.11.2 tslib: 2.8.1 invariant@2.2.4: dependencies: loose-envify: 1.4.0 - ip-address@10.1.0: {} + ip-address@10.0.1: {} ipaddr.js@1.9.1: {} - ipaddr.js@2.3.0: {} + ipaddr.js@2.2.0: {} is-alphabetical@2.0.1: {} @@ -24716,10 +24742,9 @@ snapshots: dependencies: get-east-asian-width: 1.4.0 - is-generator-function@1.1.2: + is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 - generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -24876,8 +24901,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 + '@babel/core': 7.23.7 + '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -24886,11 +24911,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.5 '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -24902,7 +24927,7 @@ snapshots: istanbul-lib-source-maps@3.0.6: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 2.0.5 make-dir: 2.1.0 rimraf: 2.7.1 @@ -24912,7 +24937,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -24952,17 +24977,17 @@ snapshots: javascript-stringify@2.1.0: {} - jest-diff@30.2.0: + jest-diff@30.1.2: dependencies: '@jest/diff-sequences': 30.0.1 '@jest/get-type': 30.1.0 chalk: 4.1.2 - pretty-format: 30.2.0 + pretty-format: 30.0.5 jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.0.3 + '@types/node': 24.10.4 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -24970,13 +24995,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 25.0.3 + '@types/node': 24.10.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -24993,15 +25018,15 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - joi@18.0.2: + joi@18.0.1: dependencies: '@hapi/address': 5.1.1 '@hapi/formula': 3.0.2 '@hapi/hoek': 11.0.7 '@hapi/pinpoint': 2.0.1 - '@hapi/tlds': 1.1.4 + '@hapi/tlds': 1.1.3 '@hapi/topo': 6.0.2 - '@standard-schema/spec': 1.1.0 + '@standard-schema/spec': 1.0.0 jose@5.10.0: {} @@ -25013,11 +25038,15 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.2: + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -25033,7 +25062,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 + nwsapi: 2.2.22 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -25044,7 +25073,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.19.0 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -25079,6 +25108,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-schema-typed@8.0.2: {} + json-schema@0.4.0: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -25184,7 +25215,7 @@ snapshots: karma@6.4.4: dependencies: '@colors/colors': 1.5.0 - body-parser: 1.20.4 + body-parser: 1.20.3 braces: 3.0.3 chokidar: 3.6.0 connect: 3.7.0 @@ -25202,7 +25233,7 @@ snapshots: qjobs: 1.2.0 range-parser: 1.2.1 rimraf: 3.0.2 - socket.io: 4.8.3 + socket.io: 4.8.1 source-map: 0.6.1 tmp: 0.2.5 ua-parser-js: 0.7.41 @@ -25213,7 +25244,7 @@ snapshots: - supports-color - utf-8-validate - katex@0.16.27: + katex@0.16.22: dependencies: commander: 8.3.0 @@ -25244,7 +25275,9 @@ snapshots: smol-toml: 1.6.0 strip-json-comments: 5.0.3 typescript: 5.9.3 - zod: 4.3.5 + zod: 4.1.12 + + kolorist@1.8.0: {} langium@3.3.1: dependencies: @@ -25299,54 +25332,50 @@ snapshots: libphonenumber-js@1.12.33: {} - lightningcss-android-arm64@1.30.2: + lightningcss-darwin-arm64@1.30.1: optional: true - lightningcss-darwin-arm64@1.30.2: + lightningcss-darwin-x64@1.30.1: optional: true - lightningcss-darwin-x64@1.30.2: + lightningcss-freebsd-x64@1.30.1: optional: true - lightningcss-freebsd-x64@1.30.2: + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true - lightningcss-linux-arm-gnueabihf@1.30.2: + lightningcss-linux-arm64-gnu@1.30.1: optional: true - lightningcss-linux-arm64-gnu@1.30.2: + lightningcss-linux-arm64-musl@1.30.1: optional: true - lightningcss-linux-arm64-musl@1.30.2: + lightningcss-linux-x64-gnu@1.30.1: optional: true - lightningcss-linux-x64-gnu@1.30.2: + lightningcss-linux-x64-musl@1.30.1: optional: true - lightningcss-linux-x64-musl@1.30.2: + lightningcss-win32-arm64-msvc@1.30.1: optional: true - lightningcss-win32-arm64-msvc@1.30.2: + lightningcss-win32-x64-msvc@1.30.1: optional: true - lightningcss-win32-x64-msvc@1.30.2: - optional: true - - lightningcss@1.30.2: + lightningcss@1.30.1: dependencies: - detect-libc: 2.1.2 + detect-libc: 2.0.4 optionalDependencies: - lightningcss-android-arm64: 1.30.2 - lightningcss-darwin-arm64: 1.30.2 - lightningcss-darwin-x64: 1.30.2 - lightningcss-freebsd-x64: 1.30.2 - lightningcss-linux-arm-gnueabihf: 1.30.2 - lightningcss-linux-arm64-gnu: 1.30.2 - lightningcss-linux-arm64-musl: 1.30.2 - lightningcss-linux-x64-gnu: 1.30.2 - lightningcss-linux-x64-musl: 1.30.2 - lightningcss-win32-arm64-msvc: 1.30.2 - lightningcss-win32-x64-msvc: 1.30.2 + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 lilconfig@2.1.0: {} @@ -25360,14 +25389,14 @@ snapshots: dependencies: chalk: 5.6.2 commander: 13.1.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) execa: 8.0.1 lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.8.2 + yaml: 2.8.1 transitivePeerDependencies: - supports-color @@ -25406,10 +25435,10 @@ snapshots: lmdb@3.4.2: dependencies: - msgpackr: 1.11.8 + msgpackr: 1.11.5 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 - ordered-binary: 1.6.1 + ordered-binary: 1.6.0 weak-lru-cache: 1.2.2 optionalDependencies: '@lmdb/lmdb-darwin-arm64': 3.4.2 @@ -25425,6 +25454,8 @@ snapshots: load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} + loader-runner@4.3.1: {} loader-utils@2.0.4: @@ -25433,6 +25464,12 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -25447,8 +25484,6 @@ snapshots: lodash-es@4.17.21: {} - lodash-es@4.17.22: {} - lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -25502,7 +25537,7 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.2.0 + ansi-escapes: 7.1.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 strip-ansi: 7.1.2 @@ -25511,7 +25546,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) flatted: 3.3.3 rfdc: 1.4.1 streamroller: 3.1.5 @@ -25536,7 +25571,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.4: {} + lru-cache@11.2.1: {} lru-cache@5.1.1: dependencies: @@ -25559,7 +25594,7 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.21: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -25600,7 +25635,7 @@ snapshots: marked@15.0.12: {} - marked@16.4.2: {} + marked@16.4.1: {} material-colors@1.2.6: {} @@ -25909,7 +25944,7 @@ snapshots: unist-util-position: 4.0.4 unist-util-visit: 4.1.2 - mdast-util-to-hast@13.2.1: + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -25956,9 +25991,9 @@ snapshots: mdn-data@2.0.30: {} - mdx-mermaid@2.0.3(mermaid@11.12.2)(react@19.2.3)(typescript@5.9.3)(unist-util-visit@5.0.0): + mdx-mermaid@2.0.3(mermaid@11.11.0)(react@19.2.3)(typescript@5.9.3)(unist-util-visit@5.0.0): dependencies: - mermaid: 11.12.2 + mermaid: 11.11.0 react: 19.2.3 unist-util-visit: 5.0.0 optionalDependencies: @@ -25971,7 +26006,6 @@ snapshots: micromark-extension-mdxjs: 1.0.1 puppeteer: 22.15.0(typescript@5.9.3) transitivePeerDependencies: - - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -25985,7 +26019,7 @@ snapshots: medium-zoom@1.1.0: {} - memfs@4.51.1: + memfs@4.50.0: dependencies: '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) @@ -26008,28 +26042,30 @@ snapshots: merge2@1.4.1: {} - mermaid@11.12.2: + mermaid@11.11.0: dependencies: '@braintree/sanitize-url': 7.1.1 - '@iconify/utils': 3.1.0 - '@mermaid-js/parser': 0.6.3 + '@iconify/utils': 3.0.1 + '@mermaid-js/parser': 0.6.2 '@types/d3': 7.4.3 cytoscape: 3.33.1 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) cytoscape-fcose: 2.2.0(cytoscape@3.33.1) d3: 7.9.0 d3-sankey: 0.12.3 - dagre-d3-es: 7.0.13 - dayjs: 1.11.19 - dompurify: 3.3.1 - katex: 0.16.27 + dagre-d3-es: 7.0.11 + dayjs: 1.11.18 + dompurify: 3.2.6 + katex: 0.16.22 khroma: 2.1.0 - lodash-es: 4.17.22 - marked: 16.4.2 + lodash-es: 4.17.21 + marked: 15.0.12 roughjs: 4.6.6 stylis: 4.3.6 ts-dedent: 2.2.0 uuid: 11.1.0 + transitivePeerDependencies: + - supports-color methods@1.1.2: {} @@ -26544,7 +26580,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.2.0 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -26566,7 +26602,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -26608,7 +26644,7 @@ snapshots: dependencies: mime-db: 1.52.0 - mime-types@3.0.2: + mime-types@3.0.1: dependencies: mime-db: 1.54.0 @@ -26628,16 +26664,20 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + mini-css-extract-plugin@2.9.4(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) mini-svg-data-uri@1.4.4: {} minimalistic-assert@1.0.1: {} + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@10.1.1: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -26725,7 +26765,7 @@ snapshots: diff: 7.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 10.5.0 + glob: 10.4.5 he: 1.2.0 js-yaml: 4.1.1 log-symbols: 4.1.0 @@ -26790,7 +26830,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 optional: true - msgpackr@1.11.8: + msgpackr@1.11.5: optionalDependencies: msgpackr-extract: 3.0.3 optional: true @@ -26812,14 +26852,14 @@ snapshots: nanoid@3.3.11: {} - napi-postinstall@0.3.4: {} + napi-postinstall@0.3.3: {} natural-compare@1.4.0: {} needle@3.3.1: dependencies: iconv-lite: 0.6.3 - sax: 1.4.3 + sax: 1.4.1 optional: true negotiator@0.6.3: {} @@ -26835,25 +26875,25 @@ snapshots: netmask@2.0.2: optional: true - next-intl@3.26.5(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1))(react@19.2.3): + next-intl@3.26.5(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3): dependencies: '@formatjs/intl-localematcher': 0.5.10 negotiator: 1.0.0 - next: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1) + next: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) react: 19.2.3 use-intl: 3.26.5(react@19.2.3) - next-themes@0.2.1(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-themes@0.2.1(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - next: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1) + next: 15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1): + next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): dependencies: '@next/env': 15.5.9 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001762 + caniuse-lite: 1.0.30001741 postcss: 8.4.31 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -26869,16 +26909,16 @@ snapshots: '@next/swc-win32-x64-msvc': 15.5.7 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.57.0 - sass: 1.97.1 + sass: 1.97.2 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - ngx-color@9.0.0(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)): + ngx-color@9.0.0(@angular/common@20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1)): dependencies: - '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) - '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/common': 20.3.16(@angular/core@20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/core': 20.3.16(@angular/compiler@20.3.16)(rxjs@7.8.2)(zone.js@0.15.1) '@ctrl/tinycolor': 3.6.1 material-colors: 1.2.6 tslib: 2.8.1 @@ -26929,23 +26969,23 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.3: {} + node-forge@1.3.1: {} node-gyp-build-optional-packages@5.2.2: dependencies: detect-libc: 2.1.2 optional: true - node-gyp@11.5.0: + node-gyp@11.4.2: dependencies: env-paths: 2.2.1 - exponential-backoff: 3.1.3 + exponential-backoff: 3.1.2 graceful-fs: 4.2.11 make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 semver: 7.7.3 - tar: 7.5.2 + tar: 7.5.1 tinyglobby: 0.2.15 which: 5.0.0 transitivePeerDependencies: @@ -26957,6 +26997,10 @@ snapshots: dependencies: es6-promise: 3.3.1 + node-releases@2.0.20: {} + + node-releases@2.0.26: {} + node-releases@2.0.27: {} nodemon@3.1.11: @@ -26984,7 +27028,7 @@ snapshots: normalize-path@3.0.0: {} - normalize-url@8.1.1: {} + normalize-url@8.1.0: {} npm-bundled@4.0.0: dependencies: @@ -27005,15 +27049,15 @@ snapshots: npm-package-arg@13.0.0: dependencies: - hosted-git-info: 9.0.2 + hosted-git-info: 9.0.1 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-name: 6.0.2 - npm-packlist@10.0.3: + npm-packlist@10.0.2: dependencies: ignore-walk: 8.0.0 - proc-log: 6.1.0 + proc-log: 5.0.0 npm-pick-manifest@10.0.0: dependencies: @@ -27049,21 +27093,21 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + null-loader@4.0.1(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) - nwsapi@2.2.23: {} + nwsapi@2.2.22: {} - nx@21.6.1(@swc/core@1.15.8(@swc/helpers@0.5.18)): + nx@21.6.1(@swc/core@1.15.3(@swc/helpers@0.5.17)): dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.13.2(debug@4.4.3) + axios: 1.12.2 chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -27075,7 +27119,7 @@ snapshots: flat: 5.0.2 front-matter: 4.0.2 ignore: 5.3.2 - jest-diff: 30.2.0 + jest-diff: 30.1.2 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 9.0.3 @@ -27084,28 +27128,28 @@ snapshots: open: 8.4.2 ora: 5.3.0 resolve.exports: 2.0.3 - semver: 7.7.3 + semver: 7.7.2 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.5 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.2 + yaml: 2.8.1 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.3.3 - '@nx/nx-darwin-x64': 22.3.3 - '@nx/nx-freebsd-x64': 22.3.3 - '@nx/nx-linux-arm-gnueabihf': 22.3.3 - '@nx/nx-linux-arm64-gnu': 22.3.3 - '@nx/nx-linux-arm64-musl': 22.3.3 - '@nx/nx-linux-x64-gnu': 22.3.3 - '@nx/nx-linux-x64-musl': 22.3.3 - '@nx/nx-win32-arm64-msvc': 22.3.3 - '@nx/nx-win32-x64-msvc': 22.3.3 - '@swc/core': 1.15.8(@swc/helpers@0.5.18) + '@nx/nx-darwin-arm64': 21.6.3 + '@nx/nx-darwin-x64': 21.6.3 + '@nx/nx-freebsd-x64': 21.6.3 + '@nx/nx-linux-arm-gnueabihf': 21.6.3 + '@nx/nx-linux-arm64-gnu': 21.6.3 + '@nx/nx-linux-arm64-musl': 21.6.3 + '@nx/nx-linux-x64-gnu': 21.6.3 + '@nx/nx-linux-x64-musl': 21.6.3 + '@nx/nx-win32-arm64-msvc': 21.6.3 + '@nx/nx-win32-x64-msvc': 21.6.3 + '@swc/core': 1.15.3(@swc/helpers@0.5.17) transitivePeerDependencies: - debug @@ -27177,14 +27221,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 object.values@1.2.1: dependencies: @@ -27223,7 +27267,7 @@ snapshots: open@10.2.0: dependencies: - default-browser: 5.4.0 + default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 wsl-utils: 0.1.0 @@ -27234,7 +27278,7 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@4.78.1(encoding@0.1.13)(zod@4.3.5): + openai@4.78.1(encoding@0.1.13)(zod@4.1.12): dependencies: '@types/node': 18.19.130 '@types/node-fetch': 2.6.13 @@ -27244,7 +27288,7 @@ snapshots: formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.13) optionalDependencies: - zod: 4.3.5 + zod: 4.1.12 transitivePeerDependencies: - encoding @@ -27256,7 +27300,7 @@ snapshots: async: 3.2.4 commander: 2.20.3 graphlib: 2.1.8 - js-yaml: 4.1.1 + js-yaml: 4.1.0 json-pointer: 0.6.2 json-schema-merge-allof: 0.8.1 lodash: 4.17.21 @@ -27291,7 +27335,7 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -27321,7 +27365,7 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.2 - ordered-binary@1.6.1: + ordered-binary@1.6.0: optional: true ospath@1.2.2: {} @@ -27375,7 +27419,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.2.2 + yocto-queue: 1.2.1 p-locate@4.1.0: dependencies: @@ -27395,7 +27439,7 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-map@7.0.4: {} + p-map@7.0.3: {} p-queue@6.6.2: dependencies: @@ -27418,7 +27462,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -27447,7 +27491,7 @@ snapshots: dependencies: quansync: 0.2.11 - package-manager-detector@1.6.0: {} + package-manager-detector@1.3.0: {} pacote@21.0.0: dependencies: @@ -27460,7 +27504,7 @@ snapshots: fs-minipass: 3.0.3 minipass: 7.1.2 npm-package-arg: 12.0.2 - npm-packlist: 10.0.3 + npm-packlist: 10.0.2 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 proc-log: 5.0.0 @@ -27495,7 +27539,7 @@ snapshots: parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.4 + error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -27571,9 +27615,9 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.1: + path-scurry@2.0.0: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.2.1 minipass: 7.1.2 path-to-regexp@0.1.12: {} @@ -27627,7 +27671,7 @@ snapshots: optionalDependencies: '@napi-rs/nice': 1.1.1 - pkce-challenge@5.0.1: {} + pkce-challenge@5.0.0: {} pkg-dir@7.0.0: dependencies: @@ -27639,6 +27683,12 @@ snapshots: mlly: 1.8.0 pathe: 2.0.3 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + playwright-core@1.57.0: {} playwright@1.57.0: @@ -27663,7 +27713,7 @@ snapshots: postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-calc@9.0.1(postcss@8.5.6): dependencies: @@ -27699,7 +27749,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 @@ -27707,7 +27757,7 @@ snapshots: postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -27734,12 +27784,12 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-discard-comments@6.0.2(postcss@8.5.6): dependencies: @@ -27772,12 +27822,12 @@ snapshots: postcss-focus-visible@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-focus-within@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-font-variant@5.0.0(postcss@8.5.6): dependencies: @@ -27798,9 +27848,9 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.11 + resolve: 1.22.10 - postcss-js@4.1.0(postcss@8.5.6): + postcss-js@4.0.1(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 postcss: 8.5.6 @@ -27817,33 +27867,33 @@ snapshots: postcss-load-config@4.0.2(postcss@8.5.6): dependencies: lilconfig: 3.1.3 - yaml: 2.8.2 + yaml: 2.8.1 optionalDependencies: postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.1): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 - yaml: 2.8.2 + yaml: 2.8.1 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 postcss: 8.5.6 - yaml: 2.8.2 + yaml: 2.8.1 - postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: cosmiconfig: 8.3.6(typescript@5.9.3) jiti: 1.21.7 postcss: 8.5.6 semver: 7.7.3 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - typescript @@ -27868,7 +27918,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 @@ -27888,7 +27938,7 @@ snapshots: postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -27906,13 +27956,13 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: @@ -27926,10 +27976,10 @@ snapshots: postcss-nesting@13.0.2(postcss@8.5.6): dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.1) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-normalize-charset@6.0.2(postcss@8.5.6): dependencies: @@ -27962,7 +28012,7 @@ snapshots: postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -28000,7 +28050,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-preset-env@10.6.0(postcss@8.5.6): + postcss-preset-env@10.4.0(postcss@8.5.6): dependencies: '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.6) '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.6) @@ -28029,25 +28079,21 @@ snapshots: '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6) '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.6) '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.6) - '@csstools/postcss-position-area-property': 1.0.0(postcss@8.5.6) '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) - '@csstools/postcss-property-rule-prelude-list': 1.0.0(postcss@8.5.6) '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.6) '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6) '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6) '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6) - '@csstools/postcss-syntax-descriptor-syntax-production': 1.0.1(postcss@8.5.6) - '@csstools/postcss-system-ui-font-family': 1.0.0(postcss@8.5.6) '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.6) '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) autoprefixer: 10.4.23(postcss@8.5.6) - browserslist: 4.28.1 + browserslist: 4.27.0 css-blank-pseudo: 7.0.1(postcss@8.5.6) css-has-pseudo: 7.0.3(postcss@8.5.6) css-prefers-color-scheme: 10.0.0(postcss@8.5.6) - cssdb: 8.6.0 + cssdb: 8.4.2 postcss: 8.5.6 postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6) postcss-clamp: 4.1.0(postcss@8.5.6) @@ -28078,7 +28124,7 @@ snapshots: postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-reduce-idents@6.0.3(postcss@8.5.6): dependencies: @@ -28087,7 +28133,7 @@ snapshots: postcss-reduce-initial@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 caniuse-api: 3.0.0 postcss: 8.5.6 @@ -28103,14 +28149,14 @@ snapshots: postcss-selector-not@8.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.0 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -28149,12 +28195,13 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-js@1.313.0: + posthog-js@1.315.1: dependencies: '@posthog/core': 1.9.0 - core-js: 3.47.0 + '@posthog/types': 1.315.1 + core-js: 3.45.1 fflate: 0.4.8 - preact: 10.28.1 + preact: 10.27.1 web-vitals: 4.2.4 postman-code-generators@1.14.2: @@ -28184,7 +28231,7 @@ snapshots: dependencies: punycode: 2.3.1 - preact@10.28.1: {} + preact@10.27.1: {} prelude-ls@1.2.1: {} @@ -28221,7 +28268,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@30.2.0: + pretty-format@30.0.5: dependencies: '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 @@ -28239,8 +28286,6 @@ snapshots: proc-log@5.0.0: {} - proc-log@6.1.0: {} - process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -28282,7 +28327,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 24.10.4 + '@types/node': 22.19.3 long: 5.3.2 proxy-addr@2.0.7: @@ -28293,7 +28338,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -28328,7 +28373,7 @@ snapshots: punycode@2.3.1: {} - pupa@3.3.0: + pupa@3.1.0: dependencies: escape-goat: 4.0.0 @@ -28336,11 +28381,10 @@ snapshots: dependencies: '@puppeteer/browsers': 2.3.0 chromium-bidi: 0.6.3(devtools-protocol@0.0.1312386) - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) devtools-protocol: 0.0.1312386 - ws: 8.19.0 + ws: 8.18.3 transitivePeerDependencies: - - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -28355,7 +28399,6 @@ snapshots: devtools-protocol: 0.0.1312386 puppeteer-core: 22.15.0 transitivePeerDependencies: - - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -28376,7 +28419,11 @@ snapshots: pngjs: 5.0.0 yargs: 15.4.1 - qs@6.14.1: + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -28394,25 +28441,25 @@ snapshots: range-parser@1.2.1: {} - raw-body@2.5.3: + raw-body@2.5.2: dependencies: bytes: 3.1.2 - http-errors: 2.0.1 + http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - raw-body@3.0.2: + raw-body@3.0.1: dependencies: bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.7.1 + http-errors: 2.0.0 + iconv-lite: 0.7.0 unpipe: 1.0.0 - raw-loader@4.0.2(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + raw-loader@4.0.2(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) rc@1.2.8: dependencies: @@ -28432,10 +28479,10 @@ snapshots: react: 19.2.3 scheduler: 0.27.0 - react-error-boundary@6.0.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-error-boundary@6.0.0(react@19.2.3): dependencies: + '@babel/runtime': 7.28.4 react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) react-fast-compare@3.2.2: {} @@ -28469,14 +28516,14 @@ snapshots: prism-react-renderer: 2.4.1(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - sucrase: 3.35.1 + sucrase: 3.35.0 use-editable: 2.3.3(react@19.2.3) - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.3))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.3))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@babel/runtime': 7.28.4 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.3)' - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) react-magic-dropzone@1.0.1: {} @@ -28509,7 +28556,7 @@ snapshots: devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 react: 19.2.3 remark-parse: 11.0.0 remark-rehype: 11.1.2 @@ -28559,7 +28606,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - react-remove-scroll@2.7.2(@types/react@19.2.7)(react@19.2.3): + react-remove-scroll@2.7.1(@types/react@19.2.7)(react@19.2.3): dependencies: react: 19.2.3 react-remove-scroll-bar: 2.3.8(@types/react@19.2.7)(react@19.2.3) @@ -28643,7 +28690,7 @@ snapshots: read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 - js-yaml: 3.14.2 + js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 @@ -28721,7 +28768,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -28890,7 +28937,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 @@ -28992,7 +29039,7 @@ snapshots: rimraf@5.0.10: dependencies: - glob: 10.5.0 + glob: 10.4.5 robust-predicates@3.0.2: {} @@ -29024,37 +29071,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.3 fsevents: 2.3.3 - rollup@4.55.1: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.55.1 - '@rollup/rollup-android-arm64': 4.55.1 - '@rollup/rollup-darwin-arm64': 4.55.1 - '@rollup/rollup-darwin-x64': 4.55.1 - '@rollup/rollup-freebsd-arm64': 4.55.1 - '@rollup/rollup-freebsd-x64': 4.55.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.55.1 - '@rollup/rollup-linux-arm-musleabihf': 4.55.1 - '@rollup/rollup-linux-arm64-gnu': 4.55.1 - '@rollup/rollup-linux-arm64-musl': 4.55.1 - '@rollup/rollup-linux-loong64-gnu': 4.55.1 - '@rollup/rollup-linux-loong64-musl': 4.55.1 - '@rollup/rollup-linux-ppc64-gnu': 4.55.1 - '@rollup/rollup-linux-ppc64-musl': 4.55.1 - '@rollup/rollup-linux-riscv64-gnu': 4.55.1 - '@rollup/rollup-linux-riscv64-musl': 4.55.1 - '@rollup/rollup-linux-s390x-gnu': 4.55.1 - '@rollup/rollup-linux-x64-gnu': 4.55.1 - '@rollup/rollup-linux-x64-musl': 4.55.1 - '@rollup/rollup-openbsd-x64': 4.55.1 - '@rollup/rollup-openharmony-arm64': 4.55.1 - '@rollup/rollup-win32-arm64-msvc': 4.55.1 - '@rollup/rollup-win32-ia32-msvc': 4.55.1 - '@rollup/rollup-win32-x64-gnu': 4.55.1 - '@rollup/rollup-win32-x64-msvc': 4.55.1 - fsevents: 2.3.3 - roughjs@4.6.6: dependencies: hachure-fill: 0.5.2 @@ -29064,7 +29080,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -29126,31 +29142,31 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.6(@rspack/core@1.7.0(@swc/helpers@0.5.18))(sass@1.97.1)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + sass-loader@16.0.6(@rspack/core@1.5.3(@swc/helpers@0.5.17))(sass@1.97.2)(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: neo-async: 2.6.2 optionalDependencies: - '@rspack/core': 1.7.0(@swc/helpers@0.5.18) - sass: 1.97.1 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + '@rspack/core': 1.5.3(@swc/helpers@0.5.17) + sass: 1.97.2 + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) sass@1.90.0: dependencies: chokidar: 4.0.3 - immutable: 5.1.4 + immutable: 5.1.3 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 - sass@1.97.1: + sass@1.97.2: dependencies: chokidar: 4.0.3 - immutable: 5.1.4 + immutable: 5.1.3 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 - sax@1.4.3: {} + sax@1.4.1: {} saxes@6.0.0: dependencies: @@ -29166,6 +29182,13 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.2: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 @@ -29185,7 +29208,7 @@ snapshots: selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.14 - node-forge: 1.3.3 + node-forge: 1.3.1 semver-diff@4.0.0: dependencies: @@ -29201,37 +29224,37 @@ snapshots: semver@7.7.3: {} - send@0.19.2: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - encodeurl: 2.0.0 + encodeurl: 1.0.2 escape-html: 1.0.3 etag: 1.8.1 fresh: 0.5.2 - http-errors: 2.0.1 + http-errors: 2.0.0 mime: 1.6.0 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.2 + statuses: 2.0.1 transitivePeerDependencies: - supports-color - send@1.2.1: + send@1.2.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 fresh: 2.0.0 - http-errors: 2.0.1 - mime-types: 3.0.2 + http-errors: 2.0.0 + mime-types: 3.0.1 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.2 + statuses: 2.0.1 transitivePeerDependencies: - supports-color @@ -29261,21 +29284,21 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.16.3: + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.19.2 + send: 0.19.0 transitivePeerDependencies: - supports-color - serve-static@2.2.1: + serve-static@2.2.0: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 1.2.1 + send: 1.2.0 transitivePeerDependencies: - supports-color @@ -29447,7 +29470,7 @@ snapshots: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 - sax: 1.4.3 + sax: 1.4.1 skin-tone@2.0.0: dependencies: @@ -29490,31 +29513,31 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - socket.io-adapter@2.5.6: + socket.io-adapter@2.5.5: dependencies: - debug: 4.4.3(supports-color@5.5.0) - ws: 8.18.3 + debug: 4.3.7 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socket.io-parser@4.2.5: + socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 transitivePeerDependencies: - supports-color - socket.io@4.8.3: + socket.io@4.8.1: dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.4.3(supports-color@5.5.0) - engine.io: 6.6.5 - socket.io-adapter: 2.5.6 - socket.io-parser: 4.2.5 + debug: 4.3.7 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color @@ -29529,14 +29552,14 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.7 transitivePeerDependencies: - supports-color socks@2.8.7: dependencies: - ip-address: 10.1.0 + ip-address: 10.0.1 smart-buffer: 4.2.0 sort-css-media-queries@2.2.0: {} @@ -29577,7 +29600,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -29588,7 +29611,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -29635,7 +29658,7 @@ snapshots: arg: 5.0.2 bluebird: 3.7.2 check-more-types: 2.24.0 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) execa: 5.1.1 lazy-ass: 1.6.0 ps-tree: 1.2.0 @@ -29645,7 +29668,7 @@ snapshots: statuses@1.5.0: {} - statuses@2.0.2: {} + statuses@2.0.1: {} std-env@3.10.0: {} @@ -29663,18 +29686,18 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color - streamx@2.23.0: + streamx@2.22.1: dependencies: - events-universal: 1.0.1 fast-fifo: 1.3.2 text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.6.1 transitivePeerDependencies: - - bare-abort-controller - react-native-b4a optional: true @@ -29694,7 +29717,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.6.0 + emoji-regex: 10.5.0 get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 @@ -29704,14 +29727,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -29725,7 +29748,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 string.prototype.trim@1.2.10: dependencies: @@ -29733,7 +29756,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -29795,17 +29818,17 @@ snapshots: strip-json-comments@5.0.3: {} - style-to-js@1.1.21: + style-to-js@1.1.17: dependencies: - style-to-object: 1.0.14 + style-to-object: 1.0.9 style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.14: + style-to-object@1.0.9: dependencies: - inline-style-parser: 0.2.7 + inline-style-parser: 0.2.4 styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): dependencies: @@ -29816,20 +29839,20 @@ snapshots: stylehacks@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.1 + browserslist: 4.27.0 postcss: 8.5.6 postcss-selector-parser: 6.1.2 stylis@4.3.6: {} - sucrase@3.35.1: + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 supports-color@5.5.0: @@ -29874,13 +29897,13 @@ snapshots: transitivePeerDependencies: - encoding - swc-loader@0.2.6(@swc/core@1.15.8(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + swc-loader@0.2.6(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: - '@swc/core': 1.15.8(@swc/helpers@0.5.18) + '@swc/core': 1.13.5(@swc/helpers@0.5.17) '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17)) - swr@2.3.8(react@19.2.3): + swr@2.3.6(react@19.2.3): dependencies: dequal: 2.0.3 react: 19.2.3 @@ -29888,7 +29911,7 @@ snapshots: symbol-tree@3.2.4: {} - tabbable@6.4.0: {} + tabbable@6.2.0: {} tailwind-merge@2.6.0: {} @@ -29910,16 +29933,16 @@ snapshots: picocolors: 1.1.1 postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) postcss-load-config: 4.0.2(postcss@8.5.6) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 - resolve: 1.22.11 - sucrase: 3.35.1 + resolve: 1.22.10 + sucrase: 3.35.0 transitivePeerDependencies: - ts-node - tailwindcss@3.4.19(yaml@2.8.2): + tailwindcss@3.4.19(yaml@2.8.1): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -29937,27 +29960,28 @@ snapshots: picocolors: 1.1.1 postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.1) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 - sucrase: 3.35.1 + sucrase: 3.35.0 transitivePeerDependencies: - tsx - yaml + tapable@2.2.3: {} + tapable@2.3.0: {} - tar-fs@3.1.1: + tar-fs@3.1.0: dependencies: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.5.2 + bare-fs: 4.3.3 bare-path: 3.0.0 transitivePeerDependencies: - - bare-abort-controller - bare-buffer - react-native-b4a optional: true @@ -29972,11 +29996,10 @@ snapshots: tar-stream@3.1.7: dependencies: - b4a: 1.7.3 + b4a: 1.7.1 fast-fifo: 1.3.2 - streamx: 2.23.0 + streamx: 2.22.1 transitivePeerDependencies: - - bare-abort-controller - react-native-b4a optional: true @@ -29989,7 +30012,7 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.5.2: + tar@7.5.1: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -30005,18 +30028,29 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + terser-webpack-plugin@5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.3 + schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + terser: 5.44.0 + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) optionalDependencies: - '@swc/core': 1.15.8(@swc/helpers@0.5.18) + '@swc/core': 1.13.5(@swc/helpers@0.5.17) - terser@5.44.1: + terser-webpack-plugin@5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17))): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.2 + serialize-javascript: 6.0.2 + terser: 5.44.0 + webpack: 5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17)) + optionalDependencies: + '@swc/core': 1.13.5(@swc/helpers@0.5.17) + + terser@5.44.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -30025,7 +30059,7 @@ snapshots: text-decoder@1.2.3: dependencies: - b4a: 1.7.3 + b4a: 1.7.1 transitivePeerDependencies: - react-native-b4a optional: true @@ -30066,7 +30100,7 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.0.2: {} + tinyexec@1.0.1: {} tinyglobby@0.2.14: dependencies: @@ -30178,27 +30212,27 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.1): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.27.2 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1) resolve-from: 5.0.0 - rollup: 4.55.1 + rollup: 4.52.3 source-map: 0.7.6 - sucrase: 3.35.1 + sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.15.8(@swc/helpers@0.5.18) + '@swc/core': 1.15.3(@swc/helpers@0.5.17) postcss: 8.5.6 typescript: 5.9.3 transitivePeerDependencies: @@ -30210,7 +30244,7 @@ snapshots: tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -30246,7 +30280,7 @@ snapshots: dependencies: content-type: 1.0.5 media-typer: 1.1.0 - mime-types: 3.0.2 + mime-types: 3.0.1 typed-array-buffer@1.0.3: dependencies: @@ -30372,6 +30406,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -30412,6 +30450,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 @@ -30426,8 +30469,8 @@ snapshots: unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - unist-util-visit-parents: 6.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 universalify@0.1.2: {} @@ -30437,7 +30480,7 @@ snapshots: unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.3.4 + napi-postinstall: 0.3.3 optionalDependencies: '@unrs/resolver-binding-android-arm-eabi': 1.11.1 '@unrs/resolver-binding-android-arm64': 1.11.1 @@ -30461,6 +30504,18 @@ snapshots: untildify@4.0.0: {} + update-browserslist-db@1.1.3(browserslist@4.25.4): + dependencies: + browserslist: 4.25.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + update-browserslist-db@1.1.4(browserslist@4.27.0): + dependencies: + browserslist: 4.27.0 + escalade: 3.2.0 + picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -30479,28 +30534,30 @@ snapshots: is-npm: 6.1.0 is-yarn-global: 0.4.1 latest-version: 7.0.0 - pupa: 3.3.0 + pupa: 3.1.0 semver: 7.7.3 semver-diff: 4.0.0 xdg-basedir: 5.1.0 + uri-js-replace@1.0.1: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) optionalDependencies: - file-loader: 6.2.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) + file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.1 + qs: 6.14.0 urlpattern-polyfill@10.0.0: optional: true @@ -30525,7 +30582,7 @@ snapshots: use-intl@3.26.5(react@19.2.3): dependencies: '@formatjs/fast-memoize': 2.2.7 - intl-messageformat: 10.7.18 + intl-messageformat: 10.7.16 react: 19.2.3 use-isomorphic-layout-effect@1.2.1(@types/react@19.2.7)(react@19.2.3): @@ -30649,13 +30706,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@2.1.9(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vite-node@2.1.9(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: cac: 6.7.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) transitivePeerDependencies: - '@types/node' - less @@ -30667,13 +30724,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vite-node@2.1.9(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: cac: 6.7.14 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) transitivePeerDependencies: - '@types/node' - less @@ -30685,44 +30742,44 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.4.1(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2) + vite: 7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vite@5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.55.1 + rollup: 4.52.3 optionalDependencies: '@types/node': 22.19.3 fsevents: 2.3.3 less: 4.1.3 - lightningcss: 1.30.2 - sass: 1.97.1 - terser: 5.44.1 + lightningcss: 1.30.1 + sass: 1.97.2 + terser: 5.44.0 - vite@5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vite@5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.55.1 + rollup: 4.52.3 optionalDependencies: '@types/node': 24.10.4 fsevents: 2.3.3 less: 4.1.3 - lightningcss: 1.30.2 - sass: 1.97.1 - terser: 5.44.1 + lightningcss: 1.30.1 + sass: 1.97.2 + terser: 5.44.0 - vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.8.2): + vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -30735,12 +30792,12 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 less: 4.1.3 - lightningcss: 1.30.2 - sass: 1.97.1 - terser: 5.44.1 - yaml: 2.8.2 + lightningcss: 1.30.1 + sass: 1.97.2 + terser: 5.44.0 + yaml: 2.8.1 - vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.1)(yaml@2.8.2): + vite@7.1.11(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.1)(sass@1.90.0)(terser@5.44.0)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -30752,32 +30809,32 @@ snapshots: '@types/node': 22.19.3 fsevents: 2.3.3 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.30.1 sass: 1.90.0 - terser: 5.44.1 - yaml: 2.8.2 + terser: 5.44.0 + yaml: 2.8.1 - vitest@2.1.9(@types/node@22.19.3)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vitest@2.1.9(@types/node@22.19.3)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(vite@5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 chai: 5.3.3 - debug: 4.4.3(supports-color@5.5.0) - expect-type: 1.3.0 - magic-string: 0.30.21 + debug: 4.4.3(supports-color@8.1.1) + expect-type: 1.2.2 + magic-string: 0.30.19 pathe: 1.1.2 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) - vite-node: 2.1.9(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) + vite-node: 2.1.9(@types/node@22.19.3)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.3 @@ -30793,27 +30850,27 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@24.10.4)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1): + vitest@2.1.9(@types/node@24.10.4)(jsdom@26.1.0)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(vite@5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 chai: 5.3.3 - debug: 4.4.3(supports-color@5.5.0) - expect-type: 1.3.0 - magic-string: 0.30.21 + debug: 4.4.3(supports-color@8.1.1) + expect-type: 1.2.2 + magic-string: 0.30.19 pathe: 1.1.2 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) - vite-node: 2.1.9(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1) + vite: 5.4.20(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) + vite-node: 2.1.9(@types/node@24.10.4)(less@4.1.3)(lightningcss@1.30.1)(sass@1.97.2)(terser@5.44.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.10.4 @@ -30855,7 +30912,7 @@ snapshots: wait-on@9.0.3(debug@4.4.3): dependencies: axios: 1.13.2(debug@4.4.3) - joi: 18.0.2 + joi: 18.0.1 lodash: 4.17.21 minimist: 1.2.8 rxjs: 7.8.2 @@ -30873,11 +30930,6 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - watchpack@2.5.0: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 @@ -30919,18 +30971,18 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + webpack-dev-middleware@7.4.5(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: colorette: 2.0.20 - memfs: 4.51.1 - mime-types: 3.0.2 + memfs: 4.50.0 + mime-types: 3.0.1 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) - webpack-dev-server@5.2.2(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -30946,10 +30998,10 @@ snapshots: colorette: 2.0.20 compression: 1.8.1 connect-history-api-fallback: 2.0.0 - express: 4.22.1 + express: 4.21.2 graceful-fs: 4.2.11 http-proxy-middleware: 2.0.9(@types/express@4.17.25) - ipaddr.js: 2.3.0 + ipaddr.js: 2.2.0 launch-editor: 2.12.0 open: 10.2.0 p-retry: 6.2.1 @@ -30958,10 +31010,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - ws: 8.19.0 + webpack-dev-middleware: 7.4.5(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + ws: 8.18.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - bufferutil - debug @@ -30982,7 +31034,7 @@ snapshots: webpack-sources@3.3.3: {} - webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)): + webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -30992,10 +31044,10 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.1 + browserslist: 4.27.0 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.4 - es-module-lexer: 2.0.0 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -31006,15 +31058,45 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))) - watchpack: 2.5.0 + terser-webpack-plugin: 5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))) + watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))): + webpack@5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17)): + dependencies: + '@types/estree': 1.0.8 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + browserslist: 4.25.4 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.3 + terser-webpack-plugin: 5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.95.0(@swc/core@1.13.5(@swc/helpers@0.5.17))) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpackbar@6.0.1(webpack@5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -31023,7 +31105,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.10.0 - webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18)) + webpack: 5.102.1(@swc/core@1.13.5(@swc/helpers@0.5.17)) wrap-ansi: 7.0.0 websocket-driver@0.7.4: @@ -31066,7 +31148,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -31155,9 +31237,9 @@ snapshots: ws@7.5.10: {} - ws@8.18.3: {} + ws@8.17.1: {} - ws@8.19.0: {} + ws@8.18.3: {} wsl-utils@0.1.0: dependencies: @@ -31171,7 +31253,7 @@ snapshots: xml-js@1.6.11: dependencies: - sax: 1.4.3 + sax: 1.4.1 xml-name-validator@5.0.0: {} @@ -31195,11 +31277,11 @@ snapshots: dependencies: javascript-stringify: 2.1.0 loader-utils: 2.0.4 - yaml: 2.8.2 + yaml: 2.8.1 yaml@1.10.2: {} - yaml@2.8.2: {} + yaml@2.8.1: {} yargs-parser@18.1.3: dependencies: @@ -31269,7 +31351,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.2: {} + yocto-queue@1.2.1: {} yoctocolors-cjs@2.1.3: {} @@ -31280,9 +31362,9 @@ snapshots: zod@3.23.8: optional: true - zod@4.1.13: {} + zod@4.1.12: {} - zod@4.3.5: {} + zod@4.1.13: {} zone.js@0.15.1: {}