Compare commits

..

19 Commits

Author SHA1 Message Date
Owen
756f3f32ca Merge branch 'dev' 2026-02-17 21:57:49 -08:00
Owen Schwartz
362981ad19 Merge pull request #2498 from fosrl/crowdin_dev
New Crowdin updates
2026-02-17 21:57:14 -08:00
Owen Schwartz
fa4f7e4ac2 New translations en-us.json (Norwegian Bokmal) 2026-02-17 21:56:24 -08:00
Owen Schwartz
c6bca4e2ab New translations en-us.json (Chinese Simplified) 2026-02-17 21:56:23 -08:00
Owen Schwartz
e28b361e05 New translations en-us.json (Turkish) 2026-02-17 21:56:22 -08:00
Owen Schwartz
a18691011b New translations en-us.json (Russian) 2026-02-17 21:56:20 -08:00
Owen Schwartz
c4a6403cba New translations en-us.json (Portuguese) 2026-02-17 21:56:19 -08:00
Owen Schwartz
1851bf941a New translations en-us.json (Polish) 2026-02-17 21:56:18 -08:00
Owen Schwartz
b7ab3c2e92 New translations en-us.json (Dutch) 2026-02-17 21:56:16 -08:00
Owen Schwartz
ce1ad032ba New translations en-us.json (Korean) 2026-02-17 21:56:15 -08:00
Owen Schwartz
8446c68e1b New translations en-us.json (Italian) 2026-02-17 21:56:14 -08:00
Owen Schwartz
40ed388b0f New translations en-us.json (German) 2026-02-17 21:56:12 -08:00
Owen Schwartz
ce1693aa2f New translations en-us.json (Czech) 2026-02-17 21:56:11 -08:00
Owen Schwartz
11d16a1552 New translations en-us.json (Bulgarian) 2026-02-17 21:56:10 -08:00
Owen Schwartz
0ac54a2c88 New translations en-us.json (Spanish) 2026-02-17 21:56:08 -08:00
Owen Schwartz
b7d8b32123 New translations en-us.json (French) 2026-02-17 21:56:07 -08:00
Owen
5987f6b2cd Allow enterprise 2026-02-17 21:55:57 -08:00
miloschwartz
7ad76f5683 allow type hyphen in orgID 2026-02-17 21:54:55 -08:00
Owen
09a9457021 Fix transaction issue 2026-02-17 21:27:23 -08:00
22 changed files with 450 additions and 92 deletions

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Изберете протокол",
"resourcePortNumber": "Номер на порт",
"resourcePortNumberDescription": "Външен номер на порт за прокси заявки.",
"back": "Назад",
"cancel": "Отмяна",
"resourceConfig": "Конфигурационни фрагменти",
"resourceConfigDescription": "Копирайте и поставете тези конфигурационни отрязъци, за да настроите TCP/UDP ресурса",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Възникна грешка при изтриването на организацията.",
"orgDeleted": "Организацията е изтрита",
"orgDeletedMessage": "Организацията и нейните данни са изтрити.",
"deleteAccount": "Изтриване на профил",
"deleteAccountDescription": "Перманентно изтрийте своя профил, всички организации, които притежавате, и всички данни в тези организации. Това не може да бъде отменено.",
"deleteAccountButton": "Изтриване на профил",
"deleteAccountConfirmTitle": "Изтрий профила",
"deleteAccountConfirmMessage": "Това ще изтрие перманентно вашия профил, всички организации, които притежавате, и всички данни в тези организации. Това не може да бъде отменено.",
"deleteAccountConfirmString": "изтриване на профил",
"deleteAccountSuccess": "Профилът е изтрит",
"deleteAccountSuccessMessage": "Вашият профил е изтрит.",
"deleteAccountError": "Неуспешно изтриване на профил",
"deleteAccountPreviewAccount": "Вашият профил",
"deleteAccountPreviewOrgs": "Организации, които притежавате (и всички техни данни)",
"orgMissing": "Липсва идентификатор на организация",
"orgMissingMessage": "Невъзможност за регенериране на покана без идентификатор на организация.",
"accessUsersManage": "Управление на потребители",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Филтрирайте по състояние на одобрение",
"approvalListEmpty": "Няма одобрения",
"approvalState": "Състояние на одобрение",
"approvalLoadMore": "Заредете още",
"loadingApprovals": "Зарежда се одобрение",
"approve": "Одобряване",
"approved": "Одобрен",
"denied": "Отказан",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Настройка - Pangolin",
"orgNameRequired": "Името на организацията е задължително",
"orgIdRequired": "ID на организацията е задължително",
"orgIdMaxLength": "ID на организация трябва да бъде най-много 32 символа",
"orgErrorCreate": "Възникна грешка при създаване на организация",
"pageNotFound": "Страницата не е намерена",
"pageNotFoundDescription": "О, не! Страницата, която търсите, не съществува.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Преглед на дневници",
"noneSelected": "Нищо не е избрано",
"orgNotFound2": "Няма намерени организации.",
"searchProgress": "Търсене...",
"searchPlaceholder": "Търсене...",
"emptySearchOptions": "Няма намерени опции",
"create": "Създаване",
"orgs": "Организации",
"loginError": "Възникна неочаквана грешка. Моля, опитайте отново.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Лог & Анализи",
"sidebarBluePrints": "Чертежи",
"sidebarOrganization": "Организация",
"sidebarBillingAndLicenses": "Фактуриране & Лицензи",
"sidebarLogsAnalytics": "Анализи",
"blueprints": "Чертежи",
"blueprintsDescription": "Прилагайте декларативни конфигурации и преглеждайте предишни изпълнения",
@@ -1412,6 +1429,7 @@
"billingSites": "Сайтове",
"billingUsers": "Потребители",
"billingDomains": "Домейни",
"billingOrganizations": "Организации",
"billingRemoteExitNodes": "Дистанционни възли",
"billingNoLimitConfigured": "Няма конфигуриран лимит",
"billingEstimatedPeriod": "Очакван период на фактуриране",
@@ -1454,6 +1472,7 @@
"failed": "Неуспешно",
"createNewOrgDescription": "Създайте нова организация",
"organization": "Организация",
"primary": "Основно",
"port": "Порт",
"securityKeyManage": "Управление на ключове за защита",
"securityKeyDescription": "Добавяне или премахване на ключове за защита за удостоверяване без парола",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Сигурни ли сте, че искате да премахнете брандинга за страниците за автентификация?",
"authPageBrandingDeleteConfirm": "Потвърждение на изтриване на брандинга.",
"brandingLogoURL": "URL адрес на логото.",
"brandingLogoURLOrPath": "URL или Път към лого",
"brandingLogoPathDescription": "Въведете URL или локален път.",
"brandingLogoURLDescription": "Въведете публично достъпен URL към вашето лого изображение.",
"brandingPrimaryColor": "Основен цвят.",
"brandingLogoWidth": "Ширина (px).",
"brandingLogoHeight": "Височина (px).",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Vybrat protokol",
"resourcePortNumber": "Číslo portu",
"resourcePortNumberDescription": "Externí port k požadavkům proxy serveru.",
"back": "Zpět",
"cancel": "Zrušit",
"resourceConfig": "Konfigurační snippety",
"resourceConfigDescription": "Zkopírujte a vložte tyto konfigurační textové bloky pro nastavení TCP/UDP zdroje",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Došlo k chybě při odstraňování organizace.",
"orgDeleted": "Organizace odstraněna",
"orgDeletedMessage": "Organizace a její data byla smazána.",
"deleteAccount": "Odstranit účet",
"deleteAccountDescription": "Trvale smazat svůj účet, všechny organizace, které vlastníte, a všechna data těchto organizací. Tuto akci nelze vrátit zpět.",
"deleteAccountButton": "Odstranit účet",
"deleteAccountConfirmTitle": "Odstranit účet",
"deleteAccountConfirmMessage": "Toto trvale vymaže váš účet, všechny organizace, které vlastníte, a všechna data v rámci těchto organizací. Tuto akci nelze vrátit zpět.",
"deleteAccountConfirmString": "smazat účet",
"deleteAccountSuccess": "Účet odstraněn",
"deleteAccountSuccessMessage": "Váš účet byl odstraněn.",
"deleteAccountError": "Nepodařilo se odstranit účet",
"deleteAccountPreviewAccount": "Váš účet",
"deleteAccountPreviewOrgs": "Organizace, které vlastníte (a všechny jejich údaje)",
"orgMissing": "Chybí ID organizace",
"orgMissingMessage": "Nelze obnovit pozvánku bez ID organizace.",
"accessUsersManage": "Spravovat uživatele",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtrovat podle státu schválení",
"approvalListEmpty": "Žádná schválení",
"approvalState": "Země schválení",
"approvalLoadMore": "Načíst více",
"loadingApprovals": "Načítání schválení",
"approve": "Schválit",
"approved": "Schváleno",
"denied": "Zamítnuto",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Setup - Pangolin",
"orgNameRequired": "Je vyžadován název organizace",
"orgIdRequired": "Je vyžadováno ID organizace",
"orgIdMaxLength": "ID organizace musí mít nejvýše 32 znaků",
"orgErrorCreate": "Při vytváření org došlo k chybě",
"pageNotFound": "Stránka nenalezena",
"pageNotFoundDescription": "Jejda! Stránka, kterou hledáte, neexistuje.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Zobrazit logy",
"noneSelected": "Není vybráno",
"orgNotFound2": "Nebyly nalezeny žádné organizace.",
"searchProgress": "Hledat...",
"searchPlaceholder": "Hledat...",
"emptySearchOptions": "Nebyly nalezeny žádné možnosti",
"create": "Vytvořit",
"orgs": "Organizace",
"loginError": "Došlo k neočekávané chybě. Zkuste to prosím znovu.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Plány",
"sidebarOrganization": "Organizace",
"sidebarBillingAndLicenses": "Fakturace a licence",
"sidebarLogsAnalytics": "Analytici",
"blueprints": "Plány",
"blueprintsDescription": "Použít deklarativní konfigurace a zobrazit předchozí běhy",
@@ -1412,6 +1429,7 @@
"billingSites": "Stránky",
"billingUsers": "Uživatelé",
"billingDomains": "Domény",
"billingOrganizations": "Tělo",
"billingRemoteExitNodes": "Vzdálené uzly",
"billingNoLimitConfigured": "Žádný limit nenastaven",
"billingEstimatedPeriod": "Odhadované období fakturace",
@@ -1454,6 +1472,7 @@
"failed": "Selhalo",
"createNewOrgDescription": "Vytvořit novou organizaci",
"organization": "Organizace",
"primary": "Primární",
"port": "Přístav",
"securityKeyManage": "Správa bezpečnostních klíčů",
"securityKeyDescription": "Přidat nebo odebrat bezpečnostní klíče pro bezheslou autentizaci",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Jste si jisti, že chcete odstranit branding autentizačních stránek?",
"authPageBrandingDeleteConfirm": "Potvrzení odstranění brandingu",
"brandingLogoURL": "URL loga",
"brandingLogoURLOrPath": "URL nebo cesta k logu",
"brandingLogoPathDescription": "Zadejte URL nebo místní cestu.",
"brandingLogoURLDescription": "Zadejte veřejně přístupnou adresu URL vašeho loga.",
"brandingPrimaryColor": "Primární barva",
"brandingLogoWidth": "Šířka (px)",
"brandingLogoHeight": "Výška (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Wählen Sie ein Protokoll",
"resourcePortNumber": "Portnummer",
"resourcePortNumberDescription": "Die externe Portnummer für Proxy-Anfragen.",
"back": "Zurück",
"cancel": "Abbrechen",
"resourceConfig": "Konfiguration Snippets",
"resourceConfigDescription": "Kopieren und fügen Sie diese Konfigurations-Snippets ein, um die TCP/UDP Ressource einzurichten",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Beim Löschen der Organisation ist ein Fehler aufgetreten.",
"orgDeleted": "Organisation gelöscht",
"orgDeletedMessage": "Die Organisation und ihre Daten wurden gelöscht.",
"deleteAccount": "Konto löschen",
"deleteAccountDescription": "Lösche dein Konto, alle Organisationen, die du besitzt, und alle Daten innerhalb dieser Organisationen. Dies kann nicht rückgängig gemacht werden.",
"deleteAccountButton": "Konto löschen",
"deleteAccountConfirmTitle": "Konto löschen",
"deleteAccountConfirmMessage": "Dies wird Ihr Konto dauerhaft löschen, alle Organisationen, die Sie besitzen, und alle Daten innerhalb dieser Organisationen. Dies kann nicht rückgängig gemacht werden.",
"deleteAccountConfirmString": "Konto löschen",
"deleteAccountSuccess": "Konto gelöscht",
"deleteAccountSuccessMessage": "Ihr Konto wurde gelöscht.",
"deleteAccountError": "Konto konnte nicht gelöscht werden",
"deleteAccountPreviewAccount": "Ihr Konto",
"deleteAccountPreviewOrgs": "Organisationen, die Sie besitzen (und ihre Daten)",
"orgMissing": "Organisations-ID fehlt",
"orgMissingMessage": "Einladung kann ohne Organisations-ID nicht neu generiert werden.",
"accessUsersManage": "Benutzer verwalten",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtern nach Genehmigungsstatus",
"approvalListEmpty": "Keine Genehmigungen",
"approvalState": "Genehmigungsstatus",
"approvalLoadMore": "Mehr laden",
"loadingApprovals": "Genehmigungen werden geladen",
"approve": "Bestätigen",
"approved": "Genehmigt",
"denied": "Verweigert",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Einrichtung - Pangolin",
"orgNameRequired": "Organisationsname ist erforderlich",
"orgIdRequired": "Organisations-ID ist erforderlich",
"orgIdMaxLength": "Organisations-ID darf höchstens 32 Zeichen lang sein",
"orgErrorCreate": "Beim Erstellen der Organisation ist ein Fehler aufgetreten",
"pageNotFound": "Seite nicht gefunden",
"pageNotFoundDescription": "Hoppla! Die gesuchte Seite existiert nicht.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Logs anzeigen",
"noneSelected": "Keine ausgewählt",
"orgNotFound2": "Keine Organisationen gefunden.",
"searchProgress": "Suche...",
"searchPlaceholder": "Suche...",
"emptySearchOptions": "Keine Optionen gefunden",
"create": "Erstellen",
"orgs": "Organisationen",
"loginError": "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es erneut.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Log & Analytik",
"sidebarBluePrints": "Blaupausen",
"sidebarOrganization": "Organisation",
"sidebarBillingAndLicenses": "Abrechnung & Lizenzen",
"sidebarLogsAnalytics": "Analytik",
"blueprints": "Blaupausen",
"blueprintsDescription": "Deklarative Konfigurationen anwenden und vorherige Abläufe anzeigen",
@@ -1412,6 +1429,7 @@
"billingSites": "Seiten",
"billingUsers": "Benutzergeräte",
"billingDomains": "Domänen",
"billingOrganizations": "Orden",
"billingRemoteExitNodes": "Entfernte Knoten",
"billingNoLimitConfigured": "Kein Limit konfiguriert",
"billingEstimatedPeriod": "Geschätzter Abrechnungszeitraum",
@@ -1454,6 +1472,7 @@
"failed": "Fehlgeschlagen",
"createNewOrgDescription": "Eine neue Organisation erstellen",
"organization": "Organisation",
"primary": "Primär",
"port": "Port",
"securityKeyManage": "Sicherheitsschlüssel verwalten",
"securityKeyDescription": "Sicherheitsschlüssel für passwortlose Authentifizierung hinzufügen oder entfernen",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Sind Sie sicher, dass Sie das Branding für Authentifizierungsseiten entfernen möchten?",
"authPageBrandingDeleteConfirm": "Branding löschen bestätigen",
"brandingLogoURL": "Logo URL",
"brandingLogoURLOrPath": "Logo-URL oder Pfad",
"brandingLogoPathDescription": "Geben Sie eine URL oder einen lokalen Pfad ein.",
"brandingLogoURLDescription": "Geben Sie eine öffentlich zugängliche URL zu Ihrem Logobild ein.",
"brandingPrimaryColor": "Primär-Farbe",
"brandingLogoWidth": "Breite (px)",
"brandingLogoHeight": "Höhe (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Seleccionar un protocolo",
"resourcePortNumber": "Número de puerto",
"resourcePortNumberDescription": "El número de puerto externo a las solicitudes de proxy.",
"back": "Atrás",
"cancel": "Cancelar",
"resourceConfig": "Fragmentos de configuración",
"resourceConfigDescription": "Copia y pega estos fragmentos de configuración para configurar el recurso TCP/UDP",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Se ha producido un error al eliminar la organización.",
"orgDeleted": "Organización eliminada",
"orgDeletedMessage": "La organización y sus datos han sido eliminados.",
"deleteAccount": "Eliminar cuenta",
"deleteAccountDescription": "Elimina permanentemente tu cuenta, todas las organizaciones que posees y todos los datos dentro de esas organizaciones. Esto no se puede deshacer.",
"deleteAccountButton": "Eliminar cuenta",
"deleteAccountConfirmTitle": "Eliminar cuenta",
"deleteAccountConfirmMessage": "Esto borrará permanentemente tu cuenta, todas las organizaciones que posees y todos los datos dentro de esas organizaciones. Esto no se puede deshacer.",
"deleteAccountConfirmString": "eliminar cuenta",
"deleteAccountSuccess": "Cuenta eliminada",
"deleteAccountSuccessMessage": "Tu cuenta ha sido eliminada.",
"deleteAccountError": "Error al eliminar la cuenta",
"deleteAccountPreviewAccount": "Tu cuenta",
"deleteAccountPreviewOrgs": "Organizaciones que tienes (y todos sus datos)",
"orgMissing": "Falta el ID de la organización",
"orgMissingMessage": "No se puede regenerar la invitación sin el ID de la organización.",
"accessUsersManage": "Administrar usuarios",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtrar por estado de aprobación",
"approvalListEmpty": "No hay aprobaciones",
"approvalState": "Estado de aprobación",
"approvalLoadMore": "Cargar más",
"loadingApprovals": "Cargando aprobaciones",
"approve": "Aprobar",
"approved": "Aprobado",
"denied": "Denegado",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Configuración - Pangolin",
"orgNameRequired": "El nombre de la organización es obligatorio",
"orgIdRequired": "El ID de la organización es obligatorio",
"orgIdMaxLength": "El ID de la organización debe tener como máximo 32 caracteres",
"orgErrorCreate": "Se ha producido un error al crear el org",
"pageNotFound": "Página no encontrada",
"pageNotFoundDescription": "¡Vaya! La página que estás buscando no existe.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Ver registros",
"noneSelected": "Ninguno seleccionado",
"orgNotFound2": "No se encontraron organizaciones.",
"searchProgress": "Buscar...",
"searchPlaceholder": "Buscar...",
"emptySearchOptions": "No se encontraron opciones",
"create": "Crear",
"orgs": "Organizaciones",
"loginError": "Ocurrió un error inesperado. Por favor, inténtelo de nuevo.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Registro y análisis",
"sidebarBluePrints": "Planos",
"sidebarOrganization": "Organización",
"sidebarBillingAndLicenses": "Facturación y licencias",
"sidebarLogsAnalytics": "Analíticas",
"blueprints": "Planos",
"blueprintsDescription": "Aplicar configuraciones declarativas y ver ejecuciones anteriores",
@@ -1412,6 +1429,7 @@
"billingSites": "Sitios",
"billingUsers": "Usuarios",
"billingDomains": "Dominios",
"billingOrganizations": "Orgánico",
"billingRemoteExitNodes": "Nodos remotos",
"billingNoLimitConfigured": "No se ha configurado ningún límite",
"billingEstimatedPeriod": "Período de facturación estimado",
@@ -1454,6 +1472,7 @@
"failed": "Fallido",
"createNewOrgDescription": "Crear una nueva organización",
"organization": "Organización",
"primary": "Principal",
"port": "Puerto",
"securityKeyManage": "Gestionar llaves de seguridad",
"securityKeyDescription": "Agregar o eliminar llaves de seguridad para autenticación sin contraseña",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "¿Está seguro de que desea eliminar la marca de las páginas de autenticación?",
"authPageBrandingDeleteConfirm": "Confirmar eliminación de la marca",
"brandingLogoURL": "URL del logotipo",
"brandingLogoURLOrPath": "URL o ruta de Logo",
"brandingLogoPathDescription": "Introduzca una URL o una ruta local.",
"brandingLogoURLDescription": "Introduzca una URL de acceso público a su imagen de logotipo.",
"brandingPrimaryColor": "Color primario",
"brandingLogoWidth": "Ancho (px)",
"brandingLogoHeight": "Altura (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Choisir un protocole",
"resourcePortNumber": "Numéro de port",
"resourcePortNumberDescription": "Le numéro de port externe pour les requêtes de proxy.",
"back": "Précédent",
"cancel": "Abandonner",
"resourceConfig": "Snippets de configuration",
"resourceConfigDescription": "Copiez et collez ces extraits de configuration pour configurer la ressource TCP/UDP",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Une erreur s'est produite lors de la suppression de l'organisation.",
"orgDeleted": "Organisation supprimée",
"orgDeletedMessage": "L'organisation et ses données ont été supprimées.",
"deleteAccount": "Supprimer le compte",
"deleteAccountDescription": "Supprimer définitivement votre compte, toutes les organisations que vous possédez et toutes les données au sein de ces organisations. Cela ne peut pas être annulé.",
"deleteAccountButton": "Supprimer le compte",
"deleteAccountConfirmTitle": "Supprimer le compte",
"deleteAccountConfirmMessage": "Cela effacera définitivement votre compte, toutes les organisations que vous possédez et toutes les données au sein de ces organisations. Cela ne peut pas être annulé.",
"deleteAccountConfirmString": "supprimer le compte",
"deleteAccountSuccess": "Compte supprimé",
"deleteAccountSuccessMessage": "Votre compte a été supprimé.",
"deleteAccountError": "Échec de la suppression du compte",
"deleteAccountPreviewAccount": "Votre Compte",
"deleteAccountPreviewOrgs": "Organisations que vous possédez (et toutes leurs données)",
"orgMissing": "ID d'organisation manquant",
"orgMissingMessage": "Impossible de régénérer l'invitation sans un ID d'organisation.",
"accessUsersManage": "Gérer les utilisateurs",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtrer par État d'Approbation",
"approvalListEmpty": "Aucune approbation",
"approvalState": "État d'approbation",
"approvalLoadMore": "Charger plus",
"loadingApprovals": "Chargement des approbations",
"approve": "Approuver",
"approved": "Approuvé",
"denied": "Refusé",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Configuration - Pangolin",
"orgNameRequired": "Le nom de l'organisation est requis",
"orgIdRequired": "L'ID de l'organisation est requis",
"orgIdMaxLength": "L'identifiant de l'organisation doit comporter au plus 32 caractères",
"orgErrorCreate": "Une erreur s'est produite lors de la création de l'organisation",
"pageNotFound": "Page non trouvée",
"pageNotFoundDescription": "Oups! La page que vous recherchez n'existe pas.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Voir les logs",
"noneSelected": "Aucune sélection",
"orgNotFound2": "Aucune organisation trouvée.",
"searchProgress": "Rechercher...",
"searchPlaceholder": "Recherche...",
"emptySearchOptions": "Aucune option trouvée",
"create": "Créer",
"orgs": "Organisations",
"loginError": "Une erreur inattendue s'est produite. Veuillez réessayer.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Journaux & Analytiques",
"sidebarBluePrints": "Configs",
"sidebarOrganization": "Organisation",
"sidebarBillingAndLicenses": "Facturation & Licences",
"sidebarLogsAnalytics": "Analyses",
"blueprints": "Configs",
"blueprintsDescription": "Appliquer les configurations déclaratives et afficher les exécutions précédentes",
@@ -1412,6 +1429,7 @@
"billingSites": "Nœuds",
"billingUsers": "Utilisateurs",
"billingDomains": "Domaines",
"billingOrganizations": "Organes",
"billingRemoteExitNodes": "Nœuds distants",
"billingNoLimitConfigured": "Aucune limite configurée",
"billingEstimatedPeriod": "Période de facturation estimée",
@@ -1454,6 +1472,7 @@
"failed": "Échec",
"createNewOrgDescription": "Créer une nouvelle organisation",
"organization": "Organisation",
"primary": "Primaire",
"port": "Port",
"securityKeyManage": "Gérer les clés de sécurité",
"securityKeyDescription": "Ajouter ou supprimer des clés de sécurité pour l'authentification sans mot de passe",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Êtes-vous sûr de vouloir supprimer la marque des pages d'authentification ?",
"authPageBrandingDeleteConfirm": "Confirmer la suppression de la marque",
"brandingLogoURL": "URL du logo",
"brandingLogoURLOrPath": "URL du logo ou du chemin d'accès",
"brandingLogoPathDescription": "Entrez une URL ou un chemin local.",
"brandingLogoURLDescription": "Entrez une URL accessible au public à votre image de logo.",
"brandingPrimaryColor": "Couleur principale",
"brandingLogoWidth": "Largeur (px)",
"brandingLogoHeight": "Hauteur (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Seleziona un protocollo",
"resourcePortNumber": "Numero Porta",
"resourcePortNumberDescription": "Il numero di porta esterna per le richieste di proxy.",
"back": "Indietro",
"cancel": "Annulla",
"resourceConfig": "Snippet Di Configurazione",
"resourceConfigDescription": "Copia e incolla questi snippet di configurazione per configurare la risorsa TCP/UDP",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Si è verificato un errore durante l'eliminazione dell'organizzazione.",
"orgDeleted": "Organizzazione eliminata",
"orgDeletedMessage": "L'organizzazione e i suoi dati sono stati eliminati.",
"deleteAccount": "Elimina Account",
"deleteAccountDescription": "Elimina definitivamente il tuo account, tutte le organizzazioni che possiedi e tutti i dati all'interno di tali organizzazioni. Questo non può essere annullato.",
"deleteAccountButton": "Elimina Account",
"deleteAccountConfirmTitle": "Elimina Account",
"deleteAccountConfirmMessage": "Questo cancellerà definitivamente il tuo account, tutte le organizzazioni che possiedi e tutti i dati all'interno di tali organizzazioni. Questo non può essere annullato.",
"deleteAccountConfirmString": "elimina account",
"deleteAccountSuccess": "Account Eliminato",
"deleteAccountSuccessMessage": "Il tuo account è stato eliminato.",
"deleteAccountError": "Impossibile eliminare l'account",
"deleteAccountPreviewAccount": "Il Tuo Account",
"deleteAccountPreviewOrgs": "Organizzazioni che possiedi (e tutti i loro dati)",
"orgMissing": "ID Organizzazione Mancante",
"orgMissingMessage": "Impossibile rigenerare l'invito senza un ID organizzazione.",
"accessUsersManage": "Gestisci Utenti",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtra Per Stato Di Approvazione",
"approvalListEmpty": "Nessuna approvazione",
"approvalState": "Stato Di Approvazione",
"approvalLoadMore": "Carica altro",
"loadingApprovals": "Caricamento Approvazioni",
"approve": "Approva",
"approved": "Approvato",
"denied": "Negato",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Configurazione - Pangolin",
"orgNameRequired": "Il nome dell'organizzazione è obbligatorio",
"orgIdRequired": "L'ID dell'organizzazione è obbligatorio",
"orgIdMaxLength": "L'ID dell'organizzazione deve contenere al massimo 32 caratteri",
"orgErrorCreate": "Si è verificato un errore durante la creazione dell'organizzazione",
"pageNotFound": "Pagina Non Trovata",
"pageNotFoundDescription": "Oops! La pagina che stai cercando non esiste.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Visualizza Log",
"noneSelected": "Nessuna selezione",
"orgNotFound2": "Nessuna organizzazione trovata.",
"searchProgress": "Ricerca...",
"searchPlaceholder": "Cerca...",
"emptySearchOptions": "Nessuna opzione trovata",
"create": "Crea",
"orgs": "Organizzazioni",
"loginError": "Si è verificato un errore imprevisto. Riprova.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Progetti",
"sidebarOrganization": "Organizzazione",
"sidebarBillingAndLicenses": "Fatturazione E Licenze",
"sidebarLogsAnalytics": "Analisi",
"blueprints": "Progetti",
"blueprintsDescription": "Applica le configurazioni dichiarative e visualizza le partite precedenti",
@@ -1412,6 +1429,7 @@
"billingSites": "Siti",
"billingUsers": "Utenti",
"billingDomains": "Domini",
"billingOrganizations": "Organi",
"billingRemoteExitNodes": "Nodi Remoti",
"billingNoLimitConfigured": "Nessun limite configurato",
"billingEstimatedPeriod": "Periodo di Fatturazione Stimato",
@@ -1454,6 +1472,7 @@
"failed": "Fallito",
"createNewOrgDescription": "Crea una nuova organizzazione",
"organization": "Organizzazione",
"primary": "Principale",
"port": "Porta",
"securityKeyManage": "Gestisci chiavi di sicurezza",
"securityKeyDescription": "Aggiungi o rimuovi chiavi di sicurezza per l'autenticazione senza password",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Sei sicuro di voler rimuovere il branding per le pagine di autenticazione?",
"authPageBrandingDeleteConfirm": "Conferma Eliminazione Branding",
"brandingLogoURL": "URL Logo",
"brandingLogoURLOrPath": "URL o percorso del logo",
"brandingLogoPathDescription": "Inserisci un URL o un percorso locale.",
"brandingLogoURLDescription": "Inserisci un URL accessibile al pubblico per la tua immagine del logo.",
"brandingPrimaryColor": "Colore Primario",
"brandingLogoWidth": "Larghezza (px)",
"brandingLogoHeight": "Altezza (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "프로토콜 선택",
"resourcePortNumber": "포트 번호",
"resourcePortNumberDescription": "요청을 프록시하기 위한 외부 포트 번호입니다.",
"back": "뒤로",
"cancel": "취소",
"resourceConfig": "구성 스니펫",
"resourceConfigDescription": "TCP/UDP 리소스를 설정하기 위해 이 구성 스니펫을 복사하여 붙여넣습니다.",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "조직을 삭제하는 중 오류가 발생했습니다.",
"orgDeleted": "조직이 삭제되었습니다.",
"orgDeletedMessage": "조직과 그 데이터가 삭제되었습니다.",
"deleteAccount": "계정 삭제",
"deleteAccountDescription": "계정, 소유한 모든 조직 및 조직 내의 모든 데이터를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.",
"deleteAccountButton": "계정 삭제",
"deleteAccountConfirmTitle": "계정 삭제",
"deleteAccountConfirmMessage": "이 작업은 귀하의 계정, 소유한 모든 조직 및 조직 내 모든 데이터를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.",
"deleteAccountConfirmString": "계정 삭제",
"deleteAccountSuccess": "계정 삭제됨",
"deleteAccountSuccessMessage": "계정이 삭제되었습니다.",
"deleteAccountError": "계정 삭제 실패",
"deleteAccountPreviewAccount": "귀하의 계정",
"deleteAccountPreviewOrgs": "귀하가 소유한 조직(포함된 모든 데이터)",
"orgMissing": "조직 ID가 누락되었습니다",
"orgMissingMessage": "조직 ID 없이 초대장을 재생성할 수 없습니다.",
"accessUsersManage": "사용자 관리",
@@ -461,6 +473,8 @@
"filterByApprovalState": "승인 상태로 필터링",
"approvalListEmpty": "승인이 없습니다.",
"approvalState": "승인 상태",
"approvalLoadMore": "더 불러오기",
"loadingApprovals": "승인 불러오는 중",
"approve": "승인",
"approved": "승인됨",
"denied": "거부됨",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "설정 - 판골린",
"orgNameRequired": "조직 이름은 필수입니다.",
"orgIdRequired": "조직 ID가 필요합니다",
"orgIdMaxLength": "조직 ID는 최대 32자 이내여야 합니다",
"orgErrorCreate": "조직 생성 중 오류가 발생했습니다.",
"pageNotFound": "페이지를 찾을 수 없습니다",
"pageNotFoundDescription": "앗! 찾고 있는 페이지가 존재하지 않습니다.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "로그 보기",
"noneSelected": "선택된 항목 없음",
"orgNotFound2": "조직이 없습니다.",
"searchProgress": "검색...",
"searchPlaceholder": "검색...",
"emptySearchOptions": "옵션이 없습니다",
"create": "생성",
"orgs": "조직",
"loginError": "예기치 않은 오류가 발생했습니다. 다시 시도해주세요.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "로그 & 통계",
"sidebarBluePrints": "청사진",
"sidebarOrganization": "조직",
"sidebarBillingAndLicenses": "결제 및 라이선스",
"sidebarLogsAnalytics": "분석",
"blueprints": "청사진",
"blueprintsDescription": "선언적 구성을 적용하고 이전 실행을 봅니다",
@@ -1412,6 +1429,7 @@
"billingSites": "사이트",
"billingUsers": "사용자",
"billingDomains": "도메인",
"billingOrganizations": "조직",
"billingRemoteExitNodes": "원격 노드",
"billingNoLimitConfigured": "구성된 한도가 없습니다.",
"billingEstimatedPeriod": "예상 청구 기간",
@@ -1454,6 +1472,7 @@
"failed": "실패",
"createNewOrgDescription": "새 조직 생성",
"organization": "조직",
"primary": "기본",
"port": "포트",
"securityKeyManage": "보안 키 관리",
"securityKeyDescription": "비밀번호 없는 인증을 위해 보안 키를 추가하거나 제거합니다.",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "인증 페이지의 브랜딩을 제거하시겠습니까?",
"authPageBrandingDeleteConfirm": "브랜딩 삭제 확인",
"brandingLogoURL": "로고 URL",
"brandingLogoURLOrPath": "로고 URL 또는 경로",
"brandingLogoPathDescription": "URL 또는 로컬 경로를 입력하세요.",
"brandingLogoURLDescription": "로고 이미지에 대한 공용 URL을 입력하십시오.",
"brandingPrimaryColor": "기본 색상",
"brandingLogoWidth": "너비(px)",
"brandingLogoHeight": "높이(px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Velg en protokoll",
"resourcePortNumber": "Portnummer",
"resourcePortNumberDescription": "Det eksterne portnummeret for proxy forespørsler.",
"back": "Tilbake",
"cancel": "Avbryt",
"resourceConfig": "Konfigurasjonsutdrag",
"resourceConfigDescription": "Kopier og lim inn disse konfigurasjons-øyeblikkene for å sette opp TCP/UDP ressursen",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Det oppsto en feil under sletting av organisasjonen.",
"orgDeleted": "Organisasjon slettet",
"orgDeletedMessage": "Organisasjonen og tilhørende data er slettet.",
"deleteAccount": "Slett konto",
"deleteAccountDescription": "Slett kontoen din permanent, alle organisasjoner du eier, og alle data i disse organisasjonene. Dette kan ikke angres.",
"deleteAccountButton": "Slett konto",
"deleteAccountConfirmTitle": "Slett konto",
"deleteAccountConfirmMessage": "Dette vil slette kontoen din, alle organisasjoner du eier og alle data i disse organisasjonene. Dette kan ikke gjøres om.",
"deleteAccountConfirmString": "Slett konto",
"deleteAccountSuccess": "Kontoen er slettet",
"deleteAccountSuccessMessage": "Kontoen din er slettet.",
"deleteAccountError": "Kunne ikke slette konto",
"deleteAccountPreviewAccount": "Din konto",
"deleteAccountPreviewOrgs": "Organisasjoner du eier (og alle deres data)",
"orgMissing": "Organisasjons-ID Mangler",
"orgMissingMessage": "Kan ikke regenerere invitasjon uten en organisasjons-ID.",
"accessUsersManage": "Administrer brukere",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtrer etter godkjenningsstatus",
"approvalListEmpty": "Ingen godkjenninger",
"approvalState": "Godkjennings tilstand",
"approvalLoadMore": "Last mer",
"loadingApprovals": "Laster inn godkjenninger",
"approve": "Godkjenn",
"approved": "Godkjent",
"denied": "Avvist",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Oppsett - Pangolin",
"orgNameRequired": "Organisasjonsnavn er påkrevd",
"orgIdRequired": "Organisasjons-ID er påkrevd",
"orgIdMaxLength": "Organisasjons-ID må maksimalt være 32 tegn",
"orgErrorCreate": "En feil oppstod under oppretting av organisasjon",
"pageNotFound": "Siden ble ikke funnet",
"pageNotFoundDescription": "Oops! Siden du leter etter finnes ikke.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Vis logger",
"noneSelected": "Ingen valgt",
"orgNotFound2": "Ingen organisasjoner funnet.",
"searchProgress": "Søker...",
"searchPlaceholder": "Søk...",
"emptySearchOptions": "Ingen valg funnet",
"create": "Opprett",
"orgs": "Organisasjoner",
"loginError": "En uventet feil oppstod. Vennligst prøv igjen.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Logg og analyser",
"sidebarBluePrints": "Tegninger",
"sidebarOrganization": "Organisasjon",
"sidebarBillingAndLicenses": "Fakturering & lisenser",
"sidebarLogsAnalytics": "Analyser",
"blueprints": "Tegninger",
"blueprintsDescription": "Bruk deklarative konfigurasjoner og vis tidligere kjøringer",
@@ -1412,6 +1429,7 @@
"billingSites": "Områder",
"billingUsers": "Brukere",
"billingDomains": "Domener",
"billingOrganizations": "Orger",
"billingRemoteExitNodes": "Eksterne Noder",
"billingNoLimitConfigured": "Ingen grense konfigurert",
"billingEstimatedPeriod": "Estimert faktureringsperiode",
@@ -1454,6 +1472,7 @@
"failed": "Mislyktes",
"createNewOrgDescription": "Opprett en ny organisasjon",
"organization": "Organisasjon",
"primary": "Primær",
"port": "Port",
"securityKeyManage": "Administrer sikkerhetsnøkler",
"securityKeyDescription": "Legg til eller fjern sikkerhetsnøkler for passordløs autentisering",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Er du sikker på at du vil fjerne merkevarebyggingen for autentiseringssider?",
"authPageBrandingDeleteConfirm": "Bekreft sletting av merkevarebygging",
"brandingLogoURL": "Logo URL",
"brandingLogoURLOrPath": "Logoen URL eller sti",
"brandingLogoPathDescription": "Skriv inn en URL eller en lokal bane.",
"brandingLogoURLDescription": "Skriv inn en offentlig tilgjengelig nettadresse til din logobilde.",
"brandingPrimaryColor": "Primærfarge",
"brandingLogoWidth": "Bredde (px)",
"brandingLogoHeight": "Høyde (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Selecteer een protocol",
"resourcePortNumber": "Nummer van poort",
"resourcePortNumberDescription": "Het externe poortnummer naar proxyverzoeken.",
"back": "Achterzijde",
"cancel": "Annuleren",
"resourceConfig": "Configuratie tekstbouwstenen",
"resourceConfigDescription": "Kopieer en plak deze configuratie-snippets om de TCP/UDP-bron in te stellen",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Er is een fout opgetreden tijdens het verwijderen van de organisatie.",
"orgDeleted": "Organisatie verwijderd",
"orgDeletedMessage": "De organisatie en haar gegevens zijn verwijderd.",
"deleteAccount": "Verwijder account",
"deleteAccountDescription": "Verwijdert permanent uw account, alle organisaties die u bezit, en alle gegevens binnen deze organisaties. Dit kan niet ongedaan worden gemaakt.",
"deleteAccountButton": "Verwijder account",
"deleteAccountConfirmTitle": "Verwijder account",
"deleteAccountConfirmMessage": "Dit zal uw account permanent wissen, alle organisaties die u bezit, en alle gegevens binnen deze organisaties. Dit kan niet ongedaan worden gemaakt.",
"deleteAccountConfirmString": "verwijder account",
"deleteAccountSuccess": "Account verwijderd",
"deleteAccountSuccessMessage": "Uw account is verwijderd.",
"deleteAccountError": "Kan account niet verwijderen",
"deleteAccountPreviewAccount": "Uw account",
"deleteAccountPreviewOrgs": "Organisaties die je bezit (en al hun gegevens)",
"orgMissing": "Organisatie-ID ontbreekt",
"orgMissingMessage": "Niet in staat om de uitnodiging te regenereren zonder organisatie-ID.",
"accessUsersManage": "Gebruikers beheren",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filter op goedkeuringsstatus",
"approvalListEmpty": "Geen goedkeuringen",
"approvalState": "Goedkeuring status",
"approvalLoadMore": "Meer laden",
"loadingApprovals": "Goedkeuringen laden",
"approve": "Goedkeuren",
"approved": "Goedgekeurd",
"denied": "Geweigerd",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Instellen - Pangolin",
"orgNameRequired": "Organisatienaam is vereist",
"orgIdRequired": "Organisatie-ID is vereist",
"orgIdMaxLength": "Organisatie-ID mag maximaal 32 tekens lang zijn",
"orgErrorCreate": "Fout opgetreden tijdens het aanmaken org",
"pageNotFound": "Pagina niet gevonden",
"pageNotFoundDescription": "Oeps! De pagina die je zoekt bestaat niet.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Logboeken bekijken",
"noneSelected": "Niet geselecteerd",
"orgNotFound2": "Geen organisaties gevonden.",
"searchProgress": "Zoeken...",
"searchPlaceholder": "Zoeken...",
"emptySearchOptions": "Geen opties gevonden",
"create": "Aanmaken",
"orgs": "Organisaties",
"loginError": "Er is een onverwachte fout opgetreden. Probeer het opnieuw.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Blauwdrukken",
"sidebarOrganization": "Organisatie",
"sidebarBillingAndLicenses": "Facturatie & Licenties",
"sidebarLogsAnalytics": "Analyses",
"blueprints": "Blauwdrukken",
"blueprintsDescription": "Gebruik declaratieve configuraties en bekijk vorige uitvoeringen.",
@@ -1412,6 +1429,7 @@
"billingSites": "Sites",
"billingUsers": "Gebruikers",
"billingDomains": "Domeinen",
"billingOrganizations": "Ordenen",
"billingRemoteExitNodes": "Externe knooppunten",
"billingNoLimitConfigured": "Geen limiet ingesteld",
"billingEstimatedPeriod": "Geschatte Facturatie Periode",
@@ -1454,6 +1472,7 @@
"failed": "Mislukt",
"createNewOrgDescription": "Maak een nieuwe organisatie",
"organization": "Organisatie",
"primary": "Primair",
"port": "Poort",
"securityKeyManage": "Beveiligingssleutels beheren",
"securityKeyDescription": "Voeg beveiligingssleutels toe of verwijder ze voor wachtwoordloze authenticatie",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Weet u zeker dat u de branding voor Auth-pagina's wilt verwijderen?",
"authPageBrandingDeleteConfirm": "Bevestig verwijder Branding",
"brandingLogoURL": "Het logo-URL",
"brandingLogoURLOrPath": "Logo URL of pad",
"brandingLogoPathDescription": "Voer een URL of een lokaal pad in.",
"brandingLogoURLDescription": "Voer een openbaar toegankelijke URL in voor uw logo afbeelding.",
"brandingPrimaryColor": "Primaire kleur",
"brandingLogoWidth": "Breedte (px)",
"brandingLogoHeight": "Hoogte (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Wybierz protokół",
"resourcePortNumber": "Numer portu",
"resourcePortNumberDescription": "Numer portu zewnętrznego do żądań proxy.",
"back": "Powrót",
"cancel": "Anuluj",
"resourceConfig": "Snippety konfiguracji",
"resourceConfigDescription": "Skopiuj i wklej te fragmenty konfiguracji, aby skonfigurować zasób TCP/UDP",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Wystąpił błąd podczas usuwania organizacji.",
"orgDeleted": "Organizacja usunięta",
"orgDeletedMessage": "Organizacja i jej dane zostały usunięte.",
"deleteAccount": "Usuń konto",
"deleteAccountDescription": "Trwale usuń swoje konto, wszystkie organizacje, które posiadasz, oraz wszystkie dane w ramach tych organizacji. Tej operacji nie można cofnąć.",
"deleteAccountButton": "Usuń konto",
"deleteAccountConfirmTitle": "Usuń konto",
"deleteAccountConfirmMessage": "Spowoduje to trwałe usunięcie konta, wszystkich organizacji, które posiadasz, oraz wszystkich danych w tych organizacjach. Tej operacji nie można cofnąć.",
"deleteAccountConfirmString": "usuń konto",
"deleteAccountSuccess": "Konto usunięte",
"deleteAccountSuccessMessage": "Twoje konto zostało usunięte.",
"deleteAccountError": "Nie udało się usunąć konta",
"deleteAccountPreviewAccount": "Twoje konto",
"deleteAccountPreviewOrgs": "Organizacje, które jesteś właścicielem (i wszystkie ich dane)",
"orgMissing": "Brak ID organizacji",
"orgMissingMessage": "Nie można ponownie wygenerować zaproszenia bez ID organizacji.",
"accessUsersManage": "Zarządzaj użytkownikami",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtruj według państwa zatwierdzenia",
"approvalListEmpty": "Brak zatwierdzeń",
"approvalState": "Państwo zatwierdzające",
"approvalLoadMore": "Załaduj więcej",
"loadingApprovals": "Wczytywanie zatwierdzeń",
"approve": "Zatwierdź",
"approved": "Zatwierdzone",
"denied": "Odmowa",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Konfiguracja - Pangolin",
"orgNameRequired": "Nazwa organizacji jest wymagana",
"orgIdRequired": "ID organizacji jest wymagane",
"orgIdMaxLength": "Identyfikator organizacji musi mieć co najwyżej 32 znaki",
"orgErrorCreate": "Wystąpił błąd podczas tworzenia organizacji",
"pageNotFound": "Nie znaleziono strony",
"pageNotFoundDescription": "Ups! Strona, której szukasz, nie istnieje.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Zobacz dzienniki",
"noneSelected": "Nie wybrano",
"orgNotFound2": "Nie znaleziono organizacji.",
"searchProgress": "Szukaj...",
"searchPlaceholder": "Szukaj...",
"emptySearchOptions": "Nie znaleziono opcji",
"create": "Utwórz",
"orgs": "Organizacje",
"loginError": "Wystąpił nieoczekiwany błąd. Spróbuj ponownie.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Dziennik & Analityka",
"sidebarBluePrints": "Schematy",
"sidebarOrganization": "Organizacja",
"sidebarBillingAndLicenses": "Płatność i licencje",
"sidebarLogsAnalytics": "Analityka",
"blueprints": "Schematy",
"blueprintsDescription": "Zastosuj konfiguracje deklaracyjne i wyświetl poprzednie operacje",
@@ -1412,6 +1429,7 @@
"billingSites": "Witryny",
"billingUsers": "Użytkownicy",
"billingDomains": "Domeny",
"billingOrganizations": "O masie całkowitej pojazdu przekraczającej 5 ton, ale nieprzekraczającej 5 ton",
"billingRemoteExitNodes": "Zdalne węzły",
"billingNoLimitConfigured": "Nie skonfigurowano limitu",
"billingEstimatedPeriod": "Szacowany Okres Rozliczeniowy",
@@ -1454,6 +1472,7 @@
"failed": "Niepowodzenie",
"createNewOrgDescription": "Utwórz nową organizację",
"organization": "Organizacja",
"primary": "Podstawowy",
"port": "Port",
"securityKeyManage": "Zarządzaj kluczami bezpieczeństwa",
"securityKeyDescription": "Dodaj lub usuń klucze bezpieczeństwa do uwierzytelniania bez hasła",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Czy na pewno chcesz usunąć branding dla stron uwierzytelniania?",
"authPageBrandingDeleteConfirm": "Potwierdź usunięcie brandingu",
"brandingLogoURL": "URL logo",
"brandingLogoURLOrPath": "Adres URL logo lub ścieżka",
"brandingLogoPathDescription": "Wprowadź adres URL lub ścieżkę lokalną.",
"brandingLogoURLDescription": "Wprowadź publicznie dostępny adres URL do obrazu logo.",
"brandingPrimaryColor": "Główny kolor",
"brandingLogoWidth": "Szerokość (piksele)",
"brandingLogoHeight": "Wysokość (piksele)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Selecione um protocolo",
"resourcePortNumber": "Número da Porta",
"resourcePortNumberDescription": "O número da porta externa para requisições de proxy.",
"back": "Anterior",
"cancel": "cancelar",
"resourceConfig": "Snippets de Configuração",
"resourceConfigDescription": "Copie e cole estes snippets de configuração para configurar o recurso TCP/UDP",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Ocorreu um erro ao apagar a organização.",
"orgDeleted": "Organização excluída",
"orgDeletedMessage": "A organização e seus dados foram excluídos.",
"deleteAccount": "Excluir Conta",
"deleteAccountDescription": "Exclua permanentemente sua conta, todas as organizações que você possui e todos os dados nessas organizações. Isso não pode ser desfeito.",
"deleteAccountButton": "Excluir Conta",
"deleteAccountConfirmTitle": "Excluir Conta",
"deleteAccountConfirmMessage": "Isto limpará permanentemente sua conta, todas as organizações que você possui e todos os dados dentro dessas organizações. Isso não pode ser desfeito.",
"deleteAccountConfirmString": "excluir conta",
"deleteAccountSuccess": "Conta excluída",
"deleteAccountSuccessMessage": "Sua conta foi excluída.",
"deleteAccountError": "Falha ao excluir conta",
"deleteAccountPreviewAccount": "Sua conta",
"deleteAccountPreviewOrgs": "Organizações que você possui (e todos os dados deles)",
"orgMissing": "ID da Organização Ausente",
"orgMissingMessage": "Não é possível regenerar o convite sem um ID de organização.",
"accessUsersManage": "Gerir Utilizadores",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Filtrar por estado de aprovação",
"approvalListEmpty": "Sem aprovações",
"approvalState": "Estado de aprovação",
"approvalLoadMore": "Carregue mais",
"loadingApprovals": "Carregando aprovações",
"approve": "Aprovar",
"approved": "Aceito",
"denied": "Negado",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Configuração - Pangolin",
"orgNameRequired": "O nome da organização é obrigatório",
"orgIdRequired": "O ID da organização é obrigatório",
"orgIdMaxLength": "ID da organização deve ter no máximo 32 caracteres",
"orgErrorCreate": "Ocorreu um erro ao criar a organização",
"pageNotFound": "Página Não Encontrada",
"pageNotFoundDescription": "Ops! A página que você está procurando não existe.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Visualizar registros",
"noneSelected": "Nenhum selecionado",
"orgNotFound2": "Nenhuma organização encontrada.",
"searchProgress": "Pesquisar...",
"searchPlaceholder": "Buscar...",
"emptySearchOptions": "Nenhuma opção encontrada",
"create": "Criar",
"orgs": "Organizações",
"loginError": "Ocorreu um erro inesperado. Por favor, tente novamente.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Registo & Análise",
"sidebarBluePrints": "Diagramas",
"sidebarOrganization": "Organização",
"sidebarBillingAndLicenses": "Faturamento e Licenças",
"sidebarLogsAnalytics": "Análises",
"blueprints": "Diagramas",
"blueprintsDescription": "Aplicar configurações declarativas e ver execuções anteriores",
@@ -1412,6 +1429,7 @@
"billingSites": "sites",
"billingUsers": "Utilizadores",
"billingDomains": "Domínios",
"billingOrganizations": "Órgãos",
"billingRemoteExitNodes": "Nós remotos",
"billingNoLimitConfigured": "Nenhum limite configurado",
"billingEstimatedPeriod": "Período Estimado de Cobrança",
@@ -1454,6 +1472,7 @@
"failed": "Falhou",
"createNewOrgDescription": "Crie uma nova organização",
"organization": "Organização",
"primary": "Primário",
"port": "Porta",
"securityKeyManage": "Gerir chaves de segurança",
"securityKeyDescription": "Adicionar ou remover chaves de segurança para autenticação sem senha",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Tem certeza de que deseja remover a marcação das Páginas de Autenticação?",
"authPageBrandingDeleteConfirm": "Confirmar Exclusão de Marca",
"brandingLogoURL": "URL do Logo",
"brandingLogoURLOrPath": "URL ou caminho do logotipo",
"brandingLogoPathDescription": "Insira uma URL ou um caminho local.",
"brandingLogoURLDescription": "Digite uma URL publicamente acessível para a sua imagem do logotipo.",
"brandingPrimaryColor": "Cor Primária",
"brandingLogoWidth": "Largura (px)",
"brandingLogoHeight": "Altura (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Выберите протокол",
"resourcePortNumber": "Номер порта",
"resourcePortNumberDescription": "Внешний номер порта для проксирования запросов.",
"back": "Назад",
"cancel": "Отмена",
"resourceConfig": "Фрагменты конфигурации",
"resourceConfigDescription": "Скопируйте и вставьте эти сниппеты для настройки TCP/UDP ресурса",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Произошла ошибка при удалении организации.",
"orgDeleted": "Организация удалена",
"orgDeletedMessage": "Организация и её данные были удалены.",
"deleteAccount": "Удалить аккаунт",
"deleteAccountDescription": "Окончательно удалить учетную запись, все организации, которые вы владеете, и все данные этих организаций не могут быть отменены.",
"deleteAccountButton": "Удалить аккаунт",
"deleteAccountConfirmTitle": "Удалить аккаунт",
"deleteAccountConfirmMessage": "Это очистит ваш аккаунт, все организации, которым вы владеете, и все данные этих организаций не могут быть отменены.",
"deleteAccountConfirmString": "удалить аккаунт",
"deleteAccountSuccess": "Учетная запись удалена",
"deleteAccountSuccessMessage": "Ваша учетная запись удалена.",
"deleteAccountError": "Не удалось удалить аккаунт",
"deleteAccountPreviewAccount": "Ваша учетная запись",
"deleteAccountPreviewOrgs": "Организации, которые вы владеете (и все их данные)",
"orgMissing": "Отсутствует ID организации",
"orgMissingMessage": "Невозможно восстановить приглашение без ID организации.",
"accessUsersManage": "Управление пользователями",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Фильтр по состоянию утверждения",
"approvalListEmpty": "Нет утверждений",
"approvalState": "Состояние одобрения",
"approvalLoadMore": "Загрузить еще",
"loadingApprovals": "Загрузка утверждений",
"approve": "Одобрить",
"approved": "Одобрено",
"denied": "Отказано",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Настройка - Pangolin",
"orgNameRequired": "Название организации обязательно",
"orgIdRequired": "ID организации обязателен",
"orgIdMaxLength": "ID организации должен быть не более 32 символов",
"orgErrorCreate": "Произошла ошибка при создании организации",
"pageNotFound": "Страница не найдена",
"pageNotFoundDescription": "Упс! Страница, которую вы ищете, не существует.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Просмотр журналов",
"noneSelected": "Ничего не выбрано",
"orgNotFound2": "Организации не найдены.",
"searchProgress": "Поиск...",
"searchPlaceholder": "Поиск...",
"emptySearchOptions": "Опции не найдены",
"create": "Создать",
"orgs": "Организации",
"loginError": "Произошла непредвиденная ошибка. Пожалуйста, попробуйте еще раз.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Журнал и аналитика",
"sidebarBluePrints": "Чертежи",
"sidebarOrganization": "Организация",
"sidebarBillingAndLicenses": "Биллинг и лицензии",
"sidebarLogsAnalytics": "Статистика",
"blueprints": "Чертежи",
"blueprintsDescription": "Применить декларирующие конфигурации и просмотреть предыдущие запуски",
@@ -1412,6 +1429,7 @@
"billingSites": "Сайты",
"billingUsers": "Пользователи",
"billingDomains": "Домены",
"billingOrganizations": "Орги",
"billingRemoteExitNodes": "Удаленные узлы",
"billingNoLimitConfigured": "Лимит не установлен",
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
@@ -1454,6 +1472,7 @@
"failed": "Ошибка",
"createNewOrgDescription": "Создать новую организацию",
"organization": "Организация",
"primary": "Первичный",
"port": "Порт",
"securityKeyManage": "Управление ключами безопасности",
"securityKeyDescription": "Добавить или удалить ключи безопасности для аутентификации без пароля",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Вы уверены, что хотите удалить брендирование для страниц аутентификации?",
"authPageBrandingDeleteConfirm": "Подтвердить удаление брендирования",
"brandingLogoURL": "URL логотипа",
"brandingLogoURLOrPath": "URL логотипа или путь",
"brandingLogoPathDescription": "Введите URL или локальный путь.",
"brandingLogoURLDescription": "Введите публичный URL для изображения вашего логотипа.",
"brandingPrimaryColor": "Основной цвет",
"brandingLogoWidth": "Ширина (px)",
"brandingLogoHeight": "Высота (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "Bir protokol seçin",
"resourcePortNumber": "Port Numarası",
"resourcePortNumberDescription": "Vekil istekler için harici port numarası.",
"back": "Geri",
"cancel": "İptal",
"resourceConfig": "Yapılandırma Parçaları",
"resourceConfigDescription": "TCP/UDP kaynağınızı kurmak için bu yapılandırma parçalarını kopyalayıp yapıştırın",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "Organizasyon silinirken bir hata oluştu.",
"orgDeleted": "Organizasyon silindi",
"orgDeletedMessage": "Organizasyon ve verileri silindi.",
"deleteAccount": "Hesabı Sil",
"deleteAccountDescription": "Hesabınızı, sahip olduğunuz tüm organizasyonları ve bu organizasyonlardaki tüm verileri kalıcı olarak silin. Bu geri alınamaz.",
"deleteAccountButton": "Hesabı Sil",
"deleteAccountConfirmTitle": "Hesabı Sil",
"deleteAccountConfirmMessage": "Bu işlem, hesabınızı, sahip olduğunuz tüm organizasyonları ve bu organizasyonlardaki tüm verileri kalıcı olarak silecektir. Bu geri alınamaz.",
"deleteAccountConfirmString": "hesabı sil",
"deleteAccountSuccess": "Hesap Silindi",
"deleteAccountSuccessMessage": "Hesabınız silindi.",
"deleteAccountError": "Hesabı silme başarısız oldu",
"deleteAccountPreviewAccount": "Hesabınız",
"deleteAccountPreviewOrgs": "Sahip olduğunuz organizasyonlar (ve tüm verileri)",
"orgMissing": "Organizasyon Kimliği Eksik",
"orgMissingMessage": "Organizasyon kimliği olmadan daveti yeniden oluşturmanız mümkün değildir.",
"accessUsersManage": "Kullanıcıları Yönet",
@@ -461,6 +473,8 @@
"filterByApprovalState": "Onay Durumuna Göre Filtrele",
"approvalListEmpty": "Onay yok",
"approvalState": "Onay Durumu",
"approvalLoadMore": "Daha fazla yükle",
"loadingApprovals": "Onaylar Yükleniyor",
"approve": "Onayla",
"approved": "Onaylandı",
"denied": "Reddedildi",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "Kurulum - Pangolin",
"orgNameRequired": "Kuruluş adı gereklidir",
"orgIdRequired": "Kuruluş ID gereklidir",
"orgIdMaxLength": "Organizasyon kimliği en fazla 32 karakter olmalıdır",
"orgErrorCreate": "Kuruluş oluşturulurken bir hata oluştu",
"pageNotFound": "Sayfa Bulunamadı",
"pageNotFoundDescription": "Oops! Aradığınız sayfa mevcut değil.",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "Kayıtları Görüntüle",
"noneSelected": "Hiçbiri seçili değil",
"orgNotFound2": "Hiçbir organizasyon bulunamadı.",
"searchProgress": "Ara...",
"searchPlaceholder": "Ara...",
"emptySearchOptions": "Seçenek bulunamadı",
"create": "Oluştur",
"orgs": "Organizasyonlar",
"loginError": "Beklenmeyen bir hata oluştu. Lütfen tekrar deneyin.",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "Kayıt & Analiz",
"sidebarBluePrints": "Planlar",
"sidebarOrganization": "Organizasyon",
"sidebarBillingAndLicenses": "Faturalandırma & Lisanslar",
"sidebarLogsAnalytics": "Analitik",
"blueprints": "Planlar",
"blueprintsDescription": "Deklaratif yapılandırmaları uygulayın ve önceki çalışmaları görüntüleyin",
@@ -1412,6 +1429,7 @@
"billingSites": "Siteler",
"billingUsers": "Kullanıcılar",
"billingDomains": "Alan Adları",
"billingOrganizations": "Organizasyonlar",
"billingRemoteExitNodes": "Uzak Düğümler",
"billingNoLimitConfigured": "Hiçbir limit yapılandırılmadı",
"billingEstimatedPeriod": "Tahmini Fatura Dönemi",
@@ -1454,6 +1472,7 @@
"failed": "Başarısız",
"createNewOrgDescription": "Yeni bir organizasyon oluşturun",
"organization": "Kuruluş",
"primary": "Birincil",
"port": "Bağlantı Noktası",
"securityKeyManage": "Güvenlik Anahtarlarını Yönet",
"securityKeyDescription": "Şifresiz kimlik doğrulama için güvenlik anahtarları ekleyin veya kaldırın",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "Kimlik Sayfaları için markayı kaldırmak istediğinizden emin misiniz?",
"authPageBrandingDeleteConfirm": "Markayı Silmeyi Onayla",
"brandingLogoURL": "Logo URL",
"brandingLogoURLOrPath": "Logo URL veya Yol",
"brandingLogoPathDescription": "Bir URL veya yerel bir yol girin.",
"brandingLogoURLDescription": "Logo resminiz için genel olarak erişilebilir bir URL girin.",
"brandingPrimaryColor": "Ana Renk",
"brandingLogoWidth": "Genişlik (px)",
"brandingLogoHeight": "Yükseklik (px)",

View File

@@ -201,6 +201,7 @@
"protocolSelect": "选择协议",
"resourcePortNumber": "端口号",
"resourcePortNumberDescription": "代理请求的外部端口号。",
"back": "后退",
"cancel": "取消",
"resourceConfig": "配置片段",
"resourceConfigDescription": "复制并粘贴这些配置片段以设置 TCP/UDP 资源",
@@ -246,6 +247,17 @@
"orgErrorDeleteMessage": "删除组织时出错。",
"orgDeleted": "组织已删除",
"orgDeletedMessage": "组织及其数据已被删除。",
"deleteAccount": "删除帐户",
"deleteAccountDescription": "永久删除您的帐户、您拥有的所有组织以及这些组织中的所有数据。此操作无法撤消。",
"deleteAccountButton": "删除帐户",
"deleteAccountConfirmTitle": "删除帐户",
"deleteAccountConfirmMessage": "这将永久擦除您的帐户、您拥有的所有组织以及这些组织中的所有数据。这不能撤消。",
"deleteAccountConfirmString": "删除帐户",
"deleteAccountSuccess": "账户已删除",
"deleteAccountSuccessMessage": "您的帐户已被删除。",
"deleteAccountError": "删除帐户失败",
"deleteAccountPreviewAccount": "您的帐户",
"deleteAccountPreviewOrgs": "您拥有的组织 (和所有数据)",
"orgMissing": "缺少组织 ID",
"orgMissingMessage": "没有组织ID无法重新生成邀请。",
"accessUsersManage": "管理用户",
@@ -461,6 +473,8 @@
"filterByApprovalState": "按批准状态过滤",
"approvalListEmpty": "无批准",
"approvalState": "审批状态",
"approvalLoadMore": "加载更多",
"loadingApprovals": "正在加载批准",
"approve": "批准",
"approved": "已批准",
"denied": "被拒绝",
@@ -1017,6 +1031,7 @@
"pangolinSetup": "认证 - Pangolin",
"orgNameRequired": "组织名称是必需的",
"orgIdRequired": "组织ID是必需的",
"orgIdMaxLength": "组织 ID 必须至少 32 个字符",
"orgErrorCreate": "创建组织时出错",
"pageNotFound": "找不到页面",
"pageNotFoundDescription": "哎呀!您正在查找的页面不存在。",
@@ -1169,7 +1184,8 @@
"actionViewLogs": "查看日志",
"noneSelected": "未选择",
"orgNotFound2": "未找到组织。",
"searchProgress": "搜索...",
"searchPlaceholder": "搜索...",
"emptySearchOptions": "未找到选项",
"create": "创建",
"orgs": "组织",
"loginError": "发生意外错误。请重试。",
@@ -1251,6 +1267,7 @@
"sidebarLogAndAnalytics": "日志与分析",
"sidebarBluePrints": "蓝图",
"sidebarOrganization": "组织",
"sidebarBillingAndLicenses": "帐单和许可证",
"sidebarLogsAnalytics": "分析",
"blueprints": "蓝图",
"blueprintsDescription": "应用声明配置并查看先前运行的",
@@ -1412,6 +1429,7 @@
"billingSites": "站点",
"billingUsers": "用户",
"billingDomains": "域",
"billingOrganizations": "球队",
"billingRemoteExitNodes": "远程节点",
"billingNoLimitConfigured": "未配置限制",
"billingEstimatedPeriod": "估计结算周期",
@@ -1454,6 +1472,7 @@
"failed": "失败",
"createNewOrgDescription": "创建一个新组织",
"organization": "组织",
"primary": "主要的",
"port": "端口",
"securityKeyManage": "管理安全密钥",
"securityKeyDescription": "添加或删除用于无密码认证的安全密钥",
@@ -1916,6 +1935,9 @@
"authPageBrandingQuestionRemove": "您确定要移除授权页面的品牌吗?",
"authPageBrandingDeleteConfirm": "确认删除品牌",
"brandingLogoURL": "Logo URL",
"brandingLogoURLOrPath": "徽标URL或路径",
"brandingLogoPathDescription": "输入网址或本地路径。",
"brandingLogoURLDescription": "请在您的徽标图片中输入一个可公开访问的 URL。",
"brandingPrimaryColor": "主要颜色",
"brandingLogoWidth": "宽度px",
"brandingLogoHeight": "高度px",

168
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "0.0.0",
"license": "SEE LICENSE IN LICENSE AND README.md",
"dependencies": {
"@asteasolutions/zod-to-openapi": "8.4.1",
"@asteasolutions/zod-to-openapi": "8.4.0",
"@aws-sdk/client-s3": "3.989.0",
"@faker-js/faker": "10.3.0",
"@headlessui/react": "2.2.9",
@@ -58,7 +58,7 @@
"drizzle-orm": "0.45.1",
"express": "5.2.1",
"express-rate-limit": "8.2.1",
"glob": "13.0.5",
"glob": "13.0.3",
"helmet": "8.1.0",
"http-errors": "2.0.1",
"input-otp": "1.4.2",
@@ -70,14 +70,14 @@
"maxmind": "5.0.5",
"moment": "2.30.1",
"next": "15.5.12",
"next-intl": "4.8.3",
"next-intl": "4.8.2",
"next-themes": "0.4.6",
"nextjs-toploader": "3.9.17",
"node-cache": "5.1.2",
"nodemailer": "8.0.1",
"oslo": "1.2.1",
"pg": "8.18.0",
"posthog-node": "5.24.16",
"posthog-node": "5.24.15",
"qrcode.react": "4.2.0",
"react": "19.2.4",
"react-day-picker": "9.13.2",
@@ -92,7 +92,7 @@
"sshpk": "^1.18.0",
"stripe": "20.3.1",
"swagger-ui-express": "5.0.1",
"tailwind-merge": "3.4.1",
"tailwind-merge": "3.4.0",
"topojson-client": "3.1.0",
"tw-animate-css": "1.4.0",
"use-debounce": "^10.1.0",
@@ -179,9 +179,9 @@
}
},
"node_modules/@asteasolutions/zod-to-openapi": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/@asteasolutions/zod-to-openapi/-/zod-to-openapi-8.4.1.tgz",
"integrity": "sha512-WmJUsFINbnWxGvHSd16aOjgKf+5GsfdxruO2YDLcgplsidakCauik1lhlk83YDH06265Yd1XtUyF24o09uygpw==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/@asteasolutions/zod-to-openapi/-/zod-to-openapi-8.4.0.tgz",
"integrity": "sha512-Ckp971tmTw4pnv+o7iK85ldBHBKk6gxMaoNyLn3c2Th/fKoTG8G3jdYuOanpdGqwlDB0z01FOjry2d32lfTqrA==",
"license": "MIT",
"dependencies": {
"openapi3-ts": "^4.1.2"
@@ -1086,6 +1086,7 @@
"integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.26.2",
@@ -2661,6 +2662,16 @@
"tslib": "^2.8.1"
}
},
"node_modules/@formatjs/ecma402-abstract/node_modules/@formatjs/intl-localematcher": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz",
"integrity": "sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==",
"license": "MIT",
"dependencies": {
"@formatjs/fast-memoize": "3.1.0",
"tslib": "^2.8.1"
}
},
"node_modules/@formatjs/fast-memoize": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.0.tgz",
@@ -2692,13 +2703,12 @@
}
},
"node_modules/@formatjs/intl-localematcher": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz",
"integrity": "sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==",
"version": "0.5.10",
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz",
"integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==",
"license": "MIT",
"dependencies": {
"@formatjs/fast-memoize": "3.1.0",
"tslib": "^2.8.1"
"tslib": "2"
}
},
"node_modules/@headlessui/react": {
@@ -2808,6 +2818,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -2830,6 +2841,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -2852,6 +2864,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2868,6 +2881,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2884,6 +2898,7 @@
"cpu": [
"arm"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2900,6 +2915,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2916,6 +2932,7 @@
"cpu": [
"ppc64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2932,6 +2949,7 @@
"cpu": [
"s390x"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2948,6 +2966,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2964,6 +2983,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2980,6 +3000,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -2996,6 +3017,7 @@
"cpu": [
"arm"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3018,6 +3040,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3040,6 +3063,7 @@
"cpu": [
"ppc64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3062,6 +3086,7 @@
"cpu": [
"s390x"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3084,6 +3109,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3106,6 +3132,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3128,6 +3155,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -3150,6 +3178,7 @@
"cpu": [
"wasm32"
],
"dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
"optional": true,
"dependencies": {
@@ -3169,6 +3198,7 @@
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -3188,6 +3218,7 @@
"cpu": [
"ia32"
],
"dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -3207,6 +3238,7 @@
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -3488,6 +3520,7 @@
"integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": "^14.21.3 || >=16"
},
@@ -4620,10 +4653,9 @@
}
},
"node_modules/@posthog/core": {
"version": "1.23.0",
"resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.23.0.tgz",
"integrity": "sha512-WXYL4+trl27iV8/Y+ESADOYDB7jBhbEj6q3AEQdn+9ygYG06Q3rZSdWk4ZVn8FdrD3mlq8fEqkUgRCekzp2W4g==",
"license": "MIT",
"version": "1.22.0",
"resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.22.0.tgz",
"integrity": "sha512-WkmOnq95aAOu6yk6r5LWr5cfXsQdpVbWDCwOxQwxSne8YV6GuZET1ziO5toSQXgrgbdcjrSz2/GopAfiL6iiAA==",
"dependencies": {
"cross-spawn": "^7.0.6"
}
@@ -7918,6 +7950,7 @@
"resolved": "https://registry.npmjs.org/@react-email/text/-/text-0.1.6.tgz",
"integrity": "sha512-TYqkioRS45wTR5il3dYk/SbUjjEdhSwh9BtRNB99qNH1pXAwA45H7rAuxehiu8iJQJH0IyIr+6n62gBz9ezmsw==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=20.0.0"
},
@@ -9336,6 +9369,7 @@
"version": "5.90.21",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.21.tgz",
"integrity": "sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==",
"peer": true,
"dependencies": {
"@tanstack/query-core": "5.90.20"
},
@@ -9451,6 +9485,7 @@
"integrity": "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==",
"devOptional": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@types/node": "*"
}
@@ -9791,6 +9826,7 @@
"integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^5.0.0",
@@ -9885,6 +9921,7 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz",
"integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==",
"devOptional": true,
"peer": true,
"dependencies": {
"undici-types": "~7.16.0"
}
@@ -9912,6 +9949,7 @@
"integrity": "sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==",
"devOptional": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@types/node": "*",
"pg-protocol": "*",
@@ -9937,6 +9975,7 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
"integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"devOptional": true,
"peer": true,
"dependencies": {
"csstype": "^3.2.2"
}
@@ -9947,6 +9986,7 @@
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
"devOptional": true,
"license": "MIT",
"peer": true,
"peerDependencies": {
"@types/react": "^19.2.0"
}
@@ -10033,8 +10073,7 @@
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT",
"optional": true,
"peer": true
"optional": true
},
"node_modules/@types/ws": {
"version": "8.18.1",
@@ -10105,6 +10144,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz",
"integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==",
"dev": true,
"peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.55.0",
"@typescript-eslint/types": "8.55.0",
@@ -10594,6 +10634,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -11058,6 +11099,7 @@
"integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==",
"devOptional": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@babel/types": "^7.26.0"
}
@@ -11124,6 +11166,7 @@
"integrity": "sha512-Ba0KR+Fzxh2jDRhdg6TSH0SJGzb8C0aBY4hR8w8madIdIzzC6Y1+kx5qR6eS1Z+Gy20h6ZU28aeyg0z1VIrShQ==",
"hasInstallScript": true,
"license": "MIT",
"peer": true,
"dependencies": {
"bindings": "^1.5.0",
"prebuild-install": "^7.1.1"
@@ -11250,6 +11293,7 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759",
@@ -12203,6 +12247,7 @@
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
"license": "ISC",
"peer": true,
"engines": {
"node": ">=12"
}
@@ -12643,7 +12688,6 @@
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz",
"integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==",
"license": "(MPL-2.0 OR Apache-2.0)",
"peer": true,
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
@@ -13757,6 +13801,7 @@
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"peer": true,
"bin": {
"esbuild": "bin/esbuild"
},
@@ -13855,6 +13900,7 @@
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -14040,6 +14086,7 @@
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.9",
@@ -14359,6 +14406,7 @@
"resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
"integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
"license": "MIT",
"peer": true,
"dependencies": {
"accepts": "^2.0.0",
"body-parser": "^2.2.1",
@@ -15015,12 +15063,11 @@
"license": "MIT"
},
"node_modules/glob": {
"version": "13.0.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz",
"integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==",
"license": "BlueOak-1.0.0",
"version": "13.0.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz",
"integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==",
"dependencies": {
"minimatch": "^10.2.1",
"minimatch": "^10.2.0",
"minipass": "^7.1.2",
"path-scurry": "^2.0.0"
},
@@ -15048,7 +15095,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
"integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
"license": "MIT",
"dependencies": {
"jackspeak": "^4.2.3"
},
@@ -15060,7 +15106,6 @@
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
"integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
},
@@ -15069,10 +15114,9 @@
}
},
"node_modules/glob/node_modules/minimatch": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz",
"integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==",
"license": "BlueOak-1.0.0",
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
"integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
"dependencies": {
"brace-expansion": "^5.0.2"
},
@@ -15345,9 +15389,9 @@
}
},
"node_modules/icu-minify": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/icu-minify/-/icu-minify-4.8.3.tgz",
"integrity": "sha512-65Av7FLosNk7bPbmQx5z5XG2Y3T2GFppcjiXh4z1idHeVgQxlDpAmkGoYI0eFzAvrOnjpWTL5FmPDhsdfRMPEA==",
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/icu-minify/-/icu-minify-4.8.2.tgz",
"integrity": "sha512-LHBQV+skKkjZSPd590pZ7ZAHftUgda3eFjeuNwA8/15L8T8loCNBktKQyTlkodAU86KovFXeg/9WntlAo5wA5A==",
"funding": [
{
"type": "individual",
@@ -16872,7 +16916,6 @@
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.55.1.tgz",
"integrity": "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==",
"license": "MIT",
"peer": true,
"dependencies": {
"dompurify": "3.2.7",
"marked": "14.0.0"
@@ -16883,7 +16926,6 @@
"resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz",
"integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==",
"license": "MIT",
"peer": true,
"bin": {
"marked": "bin/marked.js"
},
@@ -16971,6 +17013,7 @@
"version": "15.5.12",
"resolved": "https://registry.npmjs.org/next/-/next-15.5.12.tgz",
"integrity": "sha512-Fi/wQ4Etlrn60rz78bebG1i1SR20QxvV8tVp6iJspjLUSHcZoeUXCt+vmWoEcza85ElZzExK/jJ/F6SvtGktjA==",
"peer": true,
"dependencies": {
"@next/env": "15.5.12",
"@swc/helpers": "0.5.15",
@@ -17019,9 +17062,9 @@
}
},
"node_modules/next-intl": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/next-intl/-/next-intl-4.8.3.tgz",
"integrity": "sha512-PvdBDWg+Leh7BR7GJUQbCDVVaBRn37GwDBWc9sv0rVQOJDQ5JU1rVzx9EEGuOGYo0DHAl70++9LQ7HxTawdL7w==",
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/next-intl/-/next-intl-4.8.2.tgz",
"integrity": "sha512-GuuwyvyEI49/oehQbBXEoY8KSIYCzmfMLhmIwhMXTb+yeBmly1PnJcpgph3KczQ+HTJMXwXCmkizgtT8jBMf3A==",
"funding": [
{
"type": "individual",
@@ -17030,14 +17073,14 @@
],
"license": "MIT",
"dependencies": {
"@formatjs/intl-localematcher": "^0.8.1",
"@formatjs/intl-localematcher": "^0.5.4",
"@parcel/watcher": "^2.4.1",
"@swc/core": "^1.15.2",
"icu-minify": "^4.8.3",
"icu-minify": "^4.8.2",
"negotiator": "^1.0.0",
"next-intl-swc-plugin-extractor": "^4.8.3",
"next-intl-swc-plugin-extractor": "^4.8.2",
"po-parser": "^2.1.1",
"use-intl": "^4.8.3"
"use-intl": "^4.8.2"
},
"peerDependencies": {
"next": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
@@ -17051,9 +17094,9 @@
}
},
"node_modules/next-intl-swc-plugin-extractor": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/next-intl-swc-plugin-extractor/-/next-intl-swc-plugin-extractor-4.8.3.tgz",
"integrity": "sha512-YcaT+R9z69XkGhpDarVFWUprrCMbxgIQYPUaXoE6LGVnLjGdo8hu3gL6bramDVjNKViYY8a/pXPy7Bna0mXORg==",
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/next-intl-swc-plugin-extractor/-/next-intl-swc-plugin-extractor-4.8.2.tgz",
"integrity": "sha512-sHDs36L1VZmFHj3tPHsD+KZJtnsRudHlNvT0ieIe3iFVn5OpGLTxW3d/Zc/2LXSj5GpGuR6wQeikbhFjU9tMQQ==",
"license": "MIT"
},
"node_modules/next-themes": {
@@ -17905,6 +17948,7 @@
"resolved": "https://registry.npmjs.org/pg/-/pg-8.18.0.tgz",
"integrity": "sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"pg-connection-string": "^2.11.0",
"pg-pool": "^3.11.0",
@@ -18123,12 +18167,11 @@
}
},
"node_modules/posthog-node": {
"version": "5.24.16",
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-5.24.16.tgz",
"integrity": "sha512-CBQ1W6MuhXN+7o9PK20BfJQKb7oz6ZaAuglH73HDJ/5CHL14wvprzy7snhZ+tbLZ7Czxsxm80SyLQ2Mc9j8s5Q==",
"license": "MIT",
"version": "5.24.15",
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-5.24.15.tgz",
"integrity": "sha512-0QnWVOZAPwEAlp+r3r0jIGfk2IaNYM/2YnEJJhBMJZXs4LpHcTu7mX42l+e95o9xX87YpVuZU0kOkmtQUxgnOA==",
"dependencies": {
"@posthog/core": "1.23.0"
"@posthog/core": "1.22.0"
},
"engines": {
"node": "^20.20.0 || >=22.22.0"
@@ -18400,6 +18443,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -18429,6 +18473,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
@@ -19245,6 +19290,7 @@
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.71.1.tgz",
"integrity": "sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=18.0.0"
},
@@ -20701,9 +20747,9 @@
}
},
"node_modules/tailwind-merge": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.1.tgz",
"integrity": "sha512-2OA0rFqWOkITEAOFWSBSApYkDeH9t2B3XSJuI4YztKBzK3mX0737A2qtxDZ7xkw9Zfh0bWl+r34sF3HXV+Ig7Q==",
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz",
"integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==",
"license": "MIT",
"funding": {
"type": "github",
@@ -20714,7 +20760,8 @@
"version": "4.1.18",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
"integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
"license": "MIT"
"license": "MIT",
"peer": true
},
"node_modules/tapable": {
"version": "2.3.0",
@@ -21188,6 +21235,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"devOptional": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -21377,9 +21425,9 @@
}
},
"node_modules/use-intl": {
"version": "4.8.3",
"resolved": "https://registry.npmjs.org/use-intl/-/use-intl-4.8.3.tgz",
"integrity": "sha512-nLxlC/RH+le6g3amA508Itnn/00mE+J22ui21QhOWo5V9hCEC43+WtnRAITbJW0ztVZphev5X9gvOf2/Dk9PLA==",
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/use-intl/-/use-intl-4.8.2.tgz",
"integrity": "sha512-3VNXZgDnPFqhIYosQ9W1Hc6K5q+ZelMfawNbexdwL/dY7BTHbceLUBX5Eeex9lgogxTp0pf1SjHuhYNAjr9H3g==",
"funding": [
{
"type": "individual",
@@ -21390,7 +21438,7 @@
"dependencies": {
"@formatjs/fast-memoize": "^3.1.0",
"@schummar/icu-type-parser": "1.21.5",
"icu-minify": "^4.8.3",
"icu-minify": "^4.8.2",
"intl-messageformat": "^11.1.0"
},
"peerDependencies": {
@@ -21614,6 +21662,7 @@
"resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz",
"integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@colors/colors": "^1.6.0",
"@dabh/diagnostics": "^2.0.8",
@@ -21820,6 +21869,7 @@
"resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
"integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
"license": "MIT",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}

View File

@@ -32,7 +32,7 @@
"format": "prettier --write ."
},
"dependencies": {
"@asteasolutions/zod-to-openapi": "8.4.1",
"@asteasolutions/zod-to-openapi": "8.4.0",
"@aws-sdk/client-s3": "3.989.0",
"@faker-js/faker": "10.3.0",
"@headlessui/react": "2.2.9",
@@ -81,7 +81,7 @@
"drizzle-orm": "0.45.1",
"express": "5.2.1",
"express-rate-limit": "8.2.1",
"glob": "13.0.5",
"glob": "13.0.3",
"helmet": "8.1.0",
"http-errors": "2.0.1",
"input-otp": "1.4.2",
@@ -93,14 +93,14 @@
"maxmind": "5.0.5",
"moment": "2.30.1",
"next": "15.5.12",
"next-intl": "4.8.3",
"next-intl": "4.8.2",
"next-themes": "0.4.6",
"nextjs-toploader": "3.9.17",
"node-cache": "5.1.2",
"nodemailer": "8.0.1",
"oslo": "1.2.1",
"pg": "8.18.0",
"posthog-node": "5.24.16",
"posthog-node": "5.24.15",
"qrcode.react": "4.2.0",
"react": "19.2.4",
"react-day-picker": "9.13.2",
@@ -115,7 +115,7 @@
"sshpk": "^1.18.0",
"stripe": "20.3.1",
"swagger-ui-express": "5.0.1",
"tailwind-merge": "3.4.1",
"tailwind-merge": "3.4.0",
"topojson-client": "3.1.0",
"tw-animate-css": "1.4.0",
"use-debounce": "^10.1.0",

View File

@@ -46,8 +46,6 @@ export class UsageService {
return null;
}
let orgIdToUse = await this.getBillingOrg(orgId, transaction);
// Truncate value to 11 decimal places
value = this.truncateValue(value);
@@ -59,6 +57,7 @@ export class UsageService {
try {
let usage;
if (transaction) {
const orgIdToUse = await this.getBillingOrg(orgId, transaction);
usage = await this.internalAddUsage(
orgIdToUse,
featureId,
@@ -67,6 +66,7 @@ export class UsageService {
);
} else {
await db.transaction(async (trx) => {
const orgIdToUse = await this.getBillingOrg(orgId, trx);
usage = await this.internalAddUsage(
orgIdToUse,
featureId,
@@ -92,7 +92,7 @@ export class UsageService {
const delay = baseDelay + jitter;
logger.warn(
`Deadlock detected for ${orgIdToUse}/${featureId}, retrying attempt ${attempt}/${maxRetries} after ${delay.toFixed(0)}ms`
`Deadlock detected for ${orgId}/${featureId}, retrying attempt ${attempt}/${maxRetries} after ${delay.toFixed(0)}ms`
);
await new Promise((resolve) => setTimeout(resolve, delay));
@@ -100,7 +100,7 @@ export class UsageService {
}
logger.error(
`Failed to add usage for ${orgIdToUse}/${featureId} after ${attempt} attempts:`,
`Failed to add usage for ${orgId}/${featureId} after ${attempt} attempts:`,
error
);
break;
@@ -169,7 +169,7 @@ export class UsageService {
return;
}
let orgIdToUse = await this.getBillingOrg(orgId);
const orgIdToUse = await this.getBillingOrg(orgId);
try {
// Truncate value to 11 decimal places if provided
@@ -227,7 +227,7 @@ export class UsageService {
orgId: string,
featureId: FeatureId
): Promise<string | null> {
let orgIdToUse = await this.getBillingOrg(orgId);
const orgIdToUse = await this.getBillingOrg(orgId);
const cacheKey = `customer_${orgIdToUse}_${featureId}`;
const cached = cache.get<string>(cacheKey);
@@ -274,7 +274,7 @@ export class UsageService {
return null;
}
let orgIdToUse = await this.getBillingOrg(orgId, trx);
const orgIdToUse = await this.getBillingOrg(orgId, trx);
const usageId = `${orgIdToUse}-${featureId}`;
@@ -382,7 +382,7 @@ export class UsageService {
return false;
}
let orgIdToUse = await this.getBillingOrg(orgId, trx);
const orgIdToUse = await this.getBillingOrg(orgId, trx);
// This method should check the current usage against the limits set for the organization
// and kick out all of the sites on the org

View File

@@ -78,7 +78,8 @@ export async function getOrgTierData(
if (
subscription.type === "tier1" ||
subscription.type === "tier2" ||
subscription.type === "tier3"
subscription.type === "tier3" ||
subscription.type === "enterprise"
) {
tier = subscription.type;
active = true;

View File

@@ -197,7 +197,6 @@ export async function updateSiteBandwidth(
usageService
.checkLimitSet(
orgId,
FeatureId.EGRESS_DATA_MB,
bandwidthUsage
)

View File

@@ -149,7 +149,6 @@ export default function StepperForm() {
.replace(/\s+/g, "-")
.replace(/[^a-z0-9_-]/g, "")
.replace(/-+/g, "-")
.replace(/^-+|-+$/g, "")
.slice(0, 32);
};

View File

@@ -20,7 +20,7 @@ export const isOrgSubscribed = cache(async (orgId: string) => {
try {
const subRes = await getCachedSubscription(orgId);
subscribed =
(subRes.data.data.tier == "tier1" || subRes.data.data.tier == "tier2" || subRes.data.data.tier == "tier3") &&
(subRes.data.data.tier == "tier1" || subRes.data.data.tier == "tier2" || subRes.data.data.tier == "tier3" || subRes.data.data.tier == "enterprise") &&
subRes.data.data.active;
} catch {}
}

View File

@@ -42,7 +42,8 @@ export function SubscriptionStatusProvider({
if (
subscription.type == "tier1" ||
subscription.type == "tier2" ||
subscription.type == "tier3"
subscription.type == "tier3" ||
subscription.type == "enterprise"
) {
return {
tier: subscription.type,
@@ -61,7 +62,7 @@ export function SubscriptionStatusProvider({
const isSubscribed = () => {
const { tier, active } = getTier();
return (
(tier == "tier1" || tier == "tier2" || tier == "tier3") &&
(tier == "tier1" || tier == "tier2" || tier == "tier3" || tier == "enterprise") &&
active
);
};