1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-22 09:00:10 +00:00

userpage: use form langfile, move login strings to common

login-related stuff was moved into common using the langmover script, so
that the user page doesn't have to use the admin language files.
This commit is contained in:
Harvey Tindall 2023-06-17 12:48:28 +01:00
parent 96c62f556b
commit d3c5feaf1b
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
131 changed files with 569 additions and 474 deletions

3
.gitignore vendored
View File

@ -21,3 +21,6 @@ cl.md
mautrix/
tempts/
matacc.txt
scripts/langmover/lang
scripts/langmover/lang2
scripts/langmover/out

View File

@ -2,6 +2,23 @@ package main
import "github.com/gin-gonic/gin"
func (app *appContext) HelloWorld(gc *gin.Context) {
gc.JSON(200, stringResponse{"It worked!", "none"})
// @Summary Returns the logged-in user's Jellyfin ID & Username.
// @Produce json
// @Success 200 {object} MyDetailsDTO
// @Router /my/details [get]
// @tags User Page
func (app *appContext) MyDetails(gc *gin.Context) {
resp := MyDetailsDTO{
Id: gc.GetString("jfId"),
}
user, status, err := app.jf.UserByID(resp.Id, false)
if status != 200 || err != nil {
app.err.Printf("Failed to get Jellyfin user (%d): %+v\n", status, err)
respond(500, "Failed to get user", gc)
return
}
resp.Username = user.Name
gc.JSON(200, resp)
}

View File

@ -44,7 +44,7 @@
{{ template "login-modal.html" . }}
<div class="page-container">
<div class="card @low dark:~d_neutral mb-4" id="card-user">
Not logged in.
<span class="heading"></span>
</div>
</div>
<script src="{{ .urlBase }}/js/user.js" type="module"></script>

View File

@ -15,8 +15,6 @@
"warning": "Advarsel",
"inviteInfiniteUsesWarning": "invitationer med uendelig brug kan blive misbrugt",
"inviteSendToEmail": "Send til",
"login": "Log på",
"logout": "Log ud",
"create": "Opret",
"apply": "Anvend",
"delete": "Slet",
@ -128,13 +126,9 @@
"updateAppliedRefresh": "Opdatering anvendt, genindlæs venligst siden.",
"telegramVerified": "Telegram konto verificeret.",
"accountConnected": "Konto tilsluttet.",
"errorConnection": "Kunne ikke oprette forbindelse til jfa-go.",
"error401Unauthorized": "Adgang nægtet. Prøv at genindlæse siden.",
"errorSettingsAppliedNoHomescreenLayout": "Indstillingerne blev anvendt, men anvendelse af startskærmens layout mislykkedes muligvis.",
"errorHomescreenAppliedNoSettings": "Startskærmens layout blev anvendt, men anvendelsen af indstillingerne mislykkedes muligvis.",
"errorSettingsFailed": "Ansøgningen mislykkedes.",
"errorLoginBlank": "Brugernavnet og/eller adgangskoden blev efterladt tomme.",
"errorUnknown": "Ukendt fejl.",
"errorSaveEmail": "Kunne ikke gemme e-mail.",
"errorBlankFields": "Felter blev efterladt tomme",
"errorDeleteProfile": "Kunne ikke slette profilen {n}",

View File

@ -13,8 +13,6 @@
"warning": "Warnung",
"inviteInfiniteUsesWarning": "Invites mit unendlich vielen Verwendungen können missbräuchlich verwendet werden",
"inviteSendToEmail": "Senden an",
"login": "Anmelden",
"logout": "Abmelden",
"create": "Erstellen",
"apply": "Anwenden",
"delete": "Löschen",
@ -122,13 +120,9 @@
"createProfile": "Profil {n} erstellt.",
"saveSettings": "Einstellungen wurden gespeichert",
"setOmbiDefaults": "Ombi-Standardeinstellungen gespeichert.",
"errorConnection": "Konnte keine Verbindung zu jfa-go herstellen.",
"error401Unauthorized": "Unberechtigt. Versuch, die Seite zu aktualisieren.",
"errorSettingsAppliedNoHomescreenLayout": "Einstellungen wurden angewendet, aber die Anwendung des Startbildschirmlayouts ist möglicherweise fehlgeschlagen.",
"errorHomescreenAppliedNoSettings": "Startbildschirmlayout wurde angewendet, aber die Anwendung der Einstellungen ist möglicherweise fehlgeschlagen.",
"errorSettingsFailed": "Anwendung ist fehlgeschlagen.",
"errorLoginBlank": "Der Benutzername und/oder das Passwort wurden nicht ausgefüllt.",
"errorUnknown": "Unbekannter Fehler.",
"errorBlankFields": "Felder wurden nicht ausgefüllt",
"errorDeleteProfile": "Fehler beim Löschen des Profils {n}",
"errorLoadProfiles": "Fehler beim Laden der Profile.",

View File

@ -13,8 +13,6 @@
"warning": "Προσοχή",
"inviteInfiniteUsesWarning": "μπορεί να γίνει κατάχρηση των προσκλήσεων με άπειρες χρήσεις",
"inviteSendToEmail": "Αποστολή σε",
"login": "Σύνδεση",
"logout": "Αποσύνδεση",
"create": "Δημιουργία",
"apply": "Εφαρμογή",
"delete": "Διαγραφή",
@ -98,13 +96,9 @@
"createProfile": "Δημιουργήθηκε το {n} προφίλ.",
"saveSettings": "Οι ρυθμίσεις αποθηκεύτηκαν",
"setOmbiDefaults": "Αποθηκεύτηκαν οι προκαθορισμένες ρυθμίσεις του ombi.",
"errorConnection": "Δεν μπόρεσε να συνδεθεί με το jfa-go.",
"error401Unauthorized": "Ανεξουσιοδότητος. Προσπαθήστε να κάνετε επαναφόρτωση την σελίδα.",
"errorSettingsAppliedNoHomescreenLayout": "Οι ρυθμίσεις αποθηκεύτηκαν, αλλά η καταχώρηση δομής αρχικής οθόνης ίσως απέτυχε.",
"errorHomescreenAppliedNoSettings": "Η δομή αρχικής οθόνης εφαρμόστηκε, αλλά οι ρυθμίσεις ίσως απέτυχαν.",
"errorSettingsFailed": "Η εφαρμογή απέτυχε.",
"errorLoginBlank": "Το όνομα χρήστη και/ή ο κωδικός ήταν κενά.",
"errorUnknown": "Άγνωστο σφάλμα.",
"errorBlankFields": "Τα πεφία ήταν κενά",
"errorDeleteProfile": "Αποτυχία διαγραφής του προφίλ {n}",
"errorLoadProfiles": "Αποτυχία φόρτωσης των προφίλ.",

View File

@ -68,8 +68,6 @@
"inviteHours": "Hours",
"inviteInfiniteUsesWarning": "invites with infinite uses can be used abusively",
"inviteSendToEmail": "Send to",
"login": "Login",
"logout": "Logout",
"apply": "Apply",
"delete": "Delete",
"updates": "Updates",
@ -175,9 +173,7 @@
},
"notifications": {
"errorSettingsFailed": "Application failed.",
"errorLoginBlank": "The username and/or password was left blank.",
"errorLoadSettings": "Failed to load settings.",
"errorUnknown": "Unknown error.",
"errorDeleteProfile": "Failed to delete profile {n}",
"sentAnnouncement": "Announcement sent.",
"savedAnnouncement": "Announcement saved.",
@ -186,7 +182,6 @@
"updateAppliedRefresh": "Update applied, please refresh.",
"telegramVerified": "Telegram account verified.",
"accountConnected": "Account connected.",
"error401Unauthorized": "Unauthorised. Try refreshing the page.",
"errorSettingsAppliedNoHomescreenLayout": "Settings were applied, but applying homescreen layout may have failed.",
"errorSaveEmail": "Failed to save email.",
"errorLoadProfiles": "Failed to load profiles.",
@ -207,7 +202,6 @@
"saveEmail": "Email saved.",
"createProfile": "Created profile {n}.",
"saveSettings": "Settings were saved",
"errorConnection": "Couldn't connect to jfa-go.",
"errorHomescreenAppliedNoSettings": "Homescreen layout was applied, but applying settings may have failed.",
"errorBlankFields": "Fields were left blank",
"errorSetDefaultProfile": "Failed to set default profile.",

View File

@ -15,8 +15,6 @@
"warning": "Warning",
"inviteInfiniteUsesWarning": "invites with infinite uses can be used abusively",
"inviteSendToEmail": "Send to",
"login": "Login",
"logout": "Logout",
"create": "Create",
"apply": "Apply",
"delete": "Delete",
@ -139,13 +137,9 @@
"updateAppliedRefresh": "Update applied, please refresh.",
"telegramVerified": "Telegram account verified.",
"accountConnected": "Account connected.",
"errorConnection": "Couldn't connect to jfa-go.",
"error401Unauthorized": "Unauthorized. Try refreshing the page.",
"errorSettingsAppliedNoHomescreenLayout": "Settings were applied, but applying homescreen layout may have failed.",
"errorHomescreenAppliedNoSettings": "Homescreen layout was applied, but applying settings may have failed.",
"errorSettingsFailed": "Application failed.",
"errorLoginBlank": "The username and/or password were left blank.",
"errorUnknown": "Unknown error.",
"errorSaveEmail": "Failed to save email.",
"errorBlankFields": "Fields were left blank",
"errorDeleteProfile": "Failed to delete profile {n}",

View File

@ -15,8 +15,6 @@
"warning": "Advertencia",
"inviteInfiniteUsesWarning": "Las invitaciones con usos infinitos se pueden usar de forma abusiva",
"inviteSendToEmail": "Enviar a",
"login": "Acceso",
"logout": "Cerrar sesión",
"create": "Crear",
"apply": "Aplicar",
"delete": "Eliminar",
@ -125,13 +123,9 @@
"sentAnnouncement": "Anuncio enviado.",
"setOmbiDefaults": "Valores predeterminados de ombi almacenados.",
"updateApplied": "Actualización aplicada, por favor reinicie.",
"errorConnection": "No se pudo conectar a jfa-go.",
"error401Unauthorized": "No autorizado. Intente actualizar la página.",
"errorSettingsAppliedNoHomescreenLayout": "Se aplicó la configuración, pero es posible que no se haya aplicado el diseño de la pantalla de inicio.",
"errorHomescreenAppliedNoSettings": "Se aplicó el diseño de la pantalla de inicio, pero es posible que la aplicación de la configuración haya fallado.",
"errorSettingsFailed": "La aplicación falló.",
"errorLoginBlank": "El nombre de usuario y/o la contraseña se dejaron en blanco.",
"errorUnknown": "Error desconocido.",
"errorSaveEmail": "No se pudo guardar el correo electrónico.",
"errorBlankFields": "Los campos se dejaron en blanco",
"errorDeleteProfile": "No se pudo borrar el perfil {n}",

View File

@ -15,8 +15,6 @@
"warning": "Attention",
"inviteInfiniteUsesWarning": "les invitations infinies peuvent être utilisées abusivement",
"inviteSendToEmail": "Envoyer à",
"login": "S'identifier",
"logout": "Se déconnecter",
"create": "Créer",
"apply": "Appliquer",
"delete": "Effacer",
@ -123,13 +121,9 @@
"createProfile": "Profil créé {n}.",
"saveSettings": "Les paramètres ont été enregistrés",
"setOmbiDefaults": "Valeurs par défaut de Ombi.",
"errorConnection": "Impossible de se connecter à jfa-go.",
"error401Unauthorized": "Non autorisé. Essayez d'actualiser la page.",
"errorSettingsAppliedNoHomescreenLayout": "Les paramètres ont été appliqués, mais l'application de la disposition de l'écran d'accueil a peut-être échoué.",
"errorHomescreenAppliedNoSettings": "La disposition de l'écran d'accueil a été appliquée, mais l'application des paramètres a peut-être échoué.",
"errorSettingsFailed": "L'application a échoué.",
"errorLoginBlank": "Le nom d'utilisateur et/ou le mot de passe sont vides.",
"errorUnknown": "Erreur inconnue.",
"errorBlankFields": "Les champs sont vides",
"errorDeleteProfile": "Échec de la suppression du profil {n}",
"errorLoadProfiles": "Échec du chargement des profils.",

View File

@ -15,8 +15,6 @@
"warning": "Figyelmeztetés",
"inviteInfiniteUsesWarning": "a végtelen felhasználású meghívókkal visszaélhetnek",
"inviteSendToEmail": "Címzett",
"login": "Belépés",
"logout": "Kijelentkezés",
"create": "Létrehozás",
"apply": "Alkalmaz",
"delete": "Törlés",
@ -126,13 +124,9 @@
"updateAppliedRefresh": "",
"telegramVerified": "",
"accountConnected": "",
"errorConnection": "",
"error401Unauthorized": "",
"errorSettingsAppliedNoHomescreenLayout": "",
"errorHomescreenAppliedNoSettings": "",
"errorSettingsFailed": "",
"errorLoginBlank": "",
"errorUnknown": "",
"errorSaveEmail": "",
"errorBlankFields": "",
"errorDeleteProfile": "",

View File

@ -13,8 +13,6 @@
"warning": "Peringatan",
"inviteInfiniteUsesWarning": "Undangan dalam jumlah tak terbatas dapat disalahgunakan",
"inviteSendToEmail": "Dikirim kepada",
"login": "Masuk",
"logout": "Keluar",
"create": "Buat",
"apply": "Terapkan",
"delete": "Hapus",
@ -82,13 +80,9 @@
"createProfile": "Membuat profil {n}.",
"saveSettings": "Pengaturan telah disimpan",
"setOmbiDefaults": "Default ombi tersimpan.",
"errorConnection": "Tidak dapat terhubung ke jfa-go.",
"error401Unauthorized": "Tidak ter-otorisasi. Coba segarkan halaman.",
"errorSettingsAppliedNoHomescreenLayout": "Pengaturan telah diterapkan, tetapi menerapkan tata letak layar utama mungkin gagal.",
"errorHomescreenAppliedNoSettings": "Tata letak layar beranda diterapkan, tetapi menerapkan pengaturan mungkin gagal.",
"errorSettingsFailed": "Aplikasi gagal.",
"errorLoginBlank": "Nama pengguna dan / atau sandi kosong.",
"errorUnknown": "Kesalahan yang tidak diketahui.",
"errorBlankFields": "Isian dibiarkan kosong",
"errorDeleteProfile": "Gagal menghapus profil {n}",
"errorLoadProfiles": "Gagal memuat profil.",

View File

@ -13,8 +13,6 @@
"warning": "Waarschuwing",
"inviteInfiniteUsesWarning": "ongelimiteerde uitnodigingen kunnen misbruikt worden",
"inviteSendToEmail": "Stuur naar",
"login": "Inloggen",
"logout": "Uitloggen",
"create": "Aanmaken",
"apply": "Toepassen",
"delete": "Verwijderen",
@ -122,13 +120,9 @@
"createProfile": "Profiel {n} aangemaakt.",
"saveSettings": "De instellingen zijn opgeslagen",
"setOmbiDefaults": "De ombi standaardinstellingen zijn opgeslagen.",
"errorConnection": "Kon geen verbinding maken met jfa-go.",
"error401Unauthorized": "Geen toegang. Probeer de pagina te vernieuwen.",
"errorSettingsAppliedNoHomescreenLayout": "De instellingen zijn toegepast, maar wijzigen van de startpaginaindeling is misschien mislukt.",
"errorHomescreenAppliedNoSettings": "Startpaginaindeling toegepast, maar opslaan van instellingen is misschien mislukt.",
"errorSettingsFailed": "Opslaan mislukt.",
"errorLoginBlank": "De gebruikersnaam en/of wachtwoord is leeg.",
"errorUnknown": "Onbekende fout.",
"errorBlankFields": "Velden leeggelaten",
"errorDeleteProfile": "Verwijderen van profiel {n} mislukt",
"errorLoadProfiles": "Fout bij het laden van profielen.",

View File

@ -15,8 +15,6 @@
"warning": "Ostrzeżenie",
"inviteInfiniteUsesWarning": "",
"inviteSendToEmail": "",
"login": "",
"logout": "",
"create": "",
"apply": "",
"delete": "",
@ -128,13 +126,9 @@
"updateAppliedRefresh": "Aktualizacja zastosowana, odśwież.",
"telegramVerified": "Konto telegramu zweryfikowane.",
"accountConnected": "Konto połączone.",
"errorConnection": "Nie udało się połączyć z jfa-go.",
"error401Unauthorized": "Nieautoryzowany. Spróbuj odświeżyć stronę.",
"errorSettingsAppliedNoHomescreenLayout": "Zastosowano ustawienia, ale zastosowanie układu ekranu głównego mogło się nie powieść.",
"errorHomescreenAppliedNoSettings": "",
"errorSettingsFailed": "",
"errorLoginBlank": "",
"errorUnknown": "Nieznany błąd.",
"errorSaveEmail": "",
"errorBlankFields": "",
"errorDeleteProfile": "",

View File

@ -13,8 +13,6 @@
"warning": "Aviso",
"inviteInfiniteUsesWarning": "convites infinitos podem ser usados de forma abusiva",
"inviteSendToEmail": "Enviar para",
"login": "Login",
"logout": "Sair",
"create": "Criar",
"apply": "Aplicar",
"delete": "Deletar",
@ -122,13 +120,9 @@
"createProfile": "Perfil {n} criado.",
"saveSettings": "As configurações foram salvas",
"setOmbiDefaults": "Padrões do ombi armazenados.",
"errorConnection": "Não foi possível conectar ao jfa-go.",
"error401Unauthorized": "Não autorizado. Tente atualizar a página.",
"errorSettingsAppliedNoHomescreenLayout": "As configurações foram aplicadas, mas a aplicação do layout da tela inicial pode ter falhado.",
"errorHomescreenAppliedNoSettings": "O layout da tela inicial foi aplicado, mas a aplicação das configurações pode ter falhado.",
"errorSettingsFailed": "Falha na aplicação.",
"errorLoginBlank": "O nome de usuário e/ou senha foram deixados em branco.",
"errorUnknown": "Erro desconhecido.",
"errorBlankFields": "Os campos foram deixados em branco",
"errorDeleteProfile": "Falha ao excluir perfil {n}",
"errorLoadProfiles": "Falha ao carregar perfis.",

View File

@ -13,8 +13,6 @@
"warning": "Varning",
"inviteInfiniteUsesWarning": "inbjudningar med oändligt antal användningar kan missbrukas",
"inviteSendToEmail": "Skicka till",
"login": "Logga in",
"logout": "Logga ut",
"create": "Skapa",
"apply": "Tillämpa",
"delete": "Radera",
@ -92,13 +90,9 @@
"saveEmail": "E-post sparad.",
"sentAnnouncement": "Meddelande skickat.",
"setOmbiDefaults": "Lagrade ombi-standardvärden.",
"errorConnection": "Det gick inte att ansluta till jfa-go.",
"error401Unauthorized": "Obehörig. Prova att uppdatera sidan.",
"errorSettingsAppliedNoHomescreenLayout": "Inställningarna tillämpades, men tillämpningen av hemskärmslayout kan ha misslyckats.",
"errorHomescreenAppliedNoSettings": "Hemskärmslayout tillämpades, men tillämpningen av inställningar kan ha misslyckats.",
"errorSettingsFailed": "Tillämpning misslyckades.",
"errorLoginBlank": "Användarnamnet och/eller lösenordet lämnades tomt.",
"errorUnknown": "Okänt fel.",
"errorSaveEmail": "Det gick inte att spara e-postmeddelandet.",
"errorBlankFields": "Fält lämnades tomma",
"errorDeleteProfile": "Det gick inte att ta bort profilen {n}",

View File

@ -15,8 +15,6 @@
"warning": "Cảnh báo",
"inviteInfiniteUsesWarning": "các lời mời không giới hạn số lần sử dụng có thể bị lạm dụng",
"inviteSendToEmail": "Gửi tới",
"login": "Đăng nhập",
"logout": "Đăng xuất",
"create": "Tạo mới",
"apply": "Áp dụng",
"delete": "Xóa",
@ -127,13 +125,9 @@
"updateAppliedRefresh": "Cập nhật mới đã được áp dụng, vui lòng làm mới lại trang.",
"telegramVerified": "Tài khoản Telegram đã được xác thực.",
"accountConnected": "Tài khoản đã được kết nối.",
"errorConnection": "Không thể kết nối với jfa-go.",
"error401Unauthorized": "Không được phép. Hãy thử làm mới trang.",
"errorSettingsAppliedNoHomescreenLayout": "Cài đặt đã được áp dụng, nhưng việc áp dụng bố cục màn hình chính có thể không thành công.",
"errorHomescreenAppliedNoSettings": "",
"errorSettingsFailed": "",
"errorLoginBlank": "",
"errorUnknown": "",
"errorSaveEmail": "",
"errorBlankFields": "",
"errorDeleteProfile": "",

View File

@ -15,8 +15,6 @@
"warning": "警告",
"inviteInfiniteUsesWarning": "无限使用次数的邀请码可能被滥用",
"inviteSendToEmail": "发送到",
"login": "登录",
"logout": "登出",
"create": "创建",
"apply": "申请",
"delete": "删除",
@ -129,13 +127,9 @@
"updateAppliedRefresh": "已应用更新,请刷新。",
"telegramVerified": "Telegram账户已验证。",
"accountConnected": "帐户已连接。",
"errorConnection": "无法连接到 jfa-go。",
"error401Unauthorized": "无授权。尝试刷新页面。",
"errorSettingsAppliedNoHomescreenLayout": "已应用设置,但应用主屏幕布局可能失败。",
"errorHomescreenAppliedNoSettings": "已应用主屏幕布局,但应用设置可能失败。",
"errorSettingsFailed": "应用失败。",
"errorLoginBlank": "用户名/密码留空。",
"errorUnknown": "未知错误。",
"errorSaveEmail": "电子邮箱保存失败。",
"errorBlankFields": "字段留空",
"errorDeleteProfile": "删除配置文件{n}失败",

View File

@ -15,8 +15,6 @@
"warning": "警告",
"inviteInfiniteUsesWarning": "無限使用次數的邀請碼可能被濫用",
"inviteSendToEmail": "發送到",
"login": "登錄",
"logout": "登出",
"create": "創建",
"apply": "應用",
"delete": "刪除",
@ -128,13 +126,9 @@
"updateAppliedRefresh": "更新已應用,請重新整理。",
"telegramVerified": "Telegram 帳戶已驗證。",
"accountConnected": "帳戶已連接。",
"errorConnection": "無法連接到 jfa-go。",
"error401Unauthorized": "未經授權。嘗試重新整理頁面。",
"errorSettingsAppliedNoHomescreenLayout": "已應用設置,但應用主螢幕佈局可能失敗。",
"errorHomescreenAppliedNoSettings": "已應用主螢幕佈局,但應用設置可能失敗。",
"errorSettingsFailed": "應用失敗。",
"errorLoginBlank": "帳戶名稱和/或密碼留空。",
"errorUnknown": "未知的錯誤。",
"errorSaveEmail": "無法儲存電子郵件。",
"errorBlankFields": "欄位留空",
"errorDeleteProfile": "無法刪除設置文件 {n}",

7
lang/common/ar-aa.json Normal file
View File

@ -0,0 +1,7 @@
{
"meta": {
"name": "العربية (AR)"
},
"strings": {},
"notifications": {}
}

View File

@ -24,6 +24,14 @@
"contactDiscord": "Kontakt gennem Discord",
"theme": "Tema",
"refresh": "Opdater",
"required": "Påkrævet"
"required": "Påkrævet",
"login": "Log på",
"logout": "Log ud"
},
"notifications": {
"errorLoginBlank": "Brugernavnet og/eller adgangskoden blev efterladt tomme.",
"errorConnection": "Kunne ikke oprette forbindelse til jfa-go.",
"errorUnknown": "Ukendt fejl.",
"error401Unauthorized": "Adgang nægtet. Prøv at genindlæse siden."
}
}

View File

@ -4,26 +4,34 @@
},
"strings": {
"username": "Benutzername",
"name": "Name",
"password": "Passwort",
"emailAddress": "E-Mail Adresse",
"name": "Name",
"submit": "Absenden",
"send": "Senden",
"success": "Erfolgreich",
"continue": "Weiter",
"error": "Fehler",
"copy": "Kopieren",
"theme": "Thema",
"copied": "Kopiert",
"time24h": "24h-Format",
"time12h": "12h-Format",
"copied": "Kopiert",
"linkTelegram": "Link Telegram",
"contactEmail": "Kontakt über E-Mail",
"contactTelegram": "Kontakt über Telegram",
"linkDiscord": "Link Discord",
"linkMatrix": "Link Matrix",
"send": "Senden",
"contactDiscord": "Kontakt über Discord",
"theme": "Thema",
"refresh": "Aktualisieren",
"required": "Erforderlich"
"required": "Erforderlich",
"login": "Anmelden",
"logout": "Abmelden"
},
"notifications": {
"errorLoginBlank": "Der Benutzername und/oder das Passwort wurden nicht ausgefüllt.",
"errorConnection": "Konnte keine Verbindung zu jfa-go herstellen.",
"errorUnknown": "Unbekannter Fehler.",
"error401Unauthorized": "Unberechtigt. Versuch, die Seite zu aktualisieren."
}
}

View File

@ -12,9 +12,17 @@
"continue": "Συνέχεια",
"error": "Σφάλμα",
"copy": "Αντιγραφή",
"theme": "Θέμα",
"copied": "Αντιγράφηκε",
"time24h": "24 Ώρες",
"time12h": "12 Ώρες",
"copied": "Αντιγράφηκε"
"theme": "Θέμα",
"login": "Σύνδεση",
"logout": "Αποσύνδεση"
},
"notifications": {
"errorLoginBlank": "Το όνομα χρήστη και/ή ο κωδικός ήταν κενά.",
"errorConnection": "Δεν μπόρεσε να συνδεθεί με το jfa-go.",
"errorUnknown": "Άγνωστο σφάλμα.",
"error401Unauthorized": "Ανεξουσιοδότητος. Προσπαθήστε να κάνετε επαναφόρτωση την σελίδα."
}
}

View File

@ -3,27 +3,35 @@
"name": "English (GB)"
},
"strings": {
"continue": "Continue",
"time24h": "24h Time",
"linkTelegram": "Link Telegram",
"send": "Send",
"linkDiscord": "Link Discord",
"linkMatrix": "Link Matrix",
"contactDiscord": "Contact through Discord",
"username": "Username",
"password": "Password",
"emailAddress": "Email Address",
"name": "Name",
"submit": "Submit",
"send": "Send",
"success": "Success",
"continue": "Continue",
"error": "Error",
"copy": "Copy",
"copied": "Copied",
"submit": "Submit",
"success": "Success",
"error": "Error",
"time24h": "24h Time",
"time12h": "12h Time",
"theme": "Theme",
"linkTelegram": "Link Telegram",
"contactEmail": "Contact through Email",
"contactTelegram": "Contact through Telegram",
"name": "Name",
"linkDiscord": "Link Discord",
"linkMatrix": "Link Matrix",
"contactDiscord": "Contact through Discord",
"theme": "Theme",
"refresh": "Refresh",
"required": "Required"
"required": "Required",
"login": "Login",
"logout": "Logout"
},
"notifications": {
"errorLoginBlank": "The username and/or password was left blank.",
"errorConnection": "Couldn't connect to jfa-go.",
"errorUnknown": "Unknown error.",
"error401Unauthorized": "Unauthorised. Try refreshing the page."
}
}

View File

@ -24,6 +24,14 @@
"contactDiscord": "Contact through Discord",
"theme": "Theme",
"refresh": "Refresh",
"required": "Required"
"required": "Required",
"login": "Login",
"logout": "Logout"
},
"notifications": {
"errorLoginBlank": "The username and/or password were left blank.",
"errorConnection": "Couldn't connect to jfa-go.",
"errorUnknown": "Unknown error.",
"error401Unauthorized": "Unauthorized. Try refreshing the page."
}
}

View File

@ -8,6 +8,7 @@
"emailAddress": "Correo electrónico",
"name": "Nombre",
"submit": "Enviar",
"send": "Enviar",
"success": "Éxito",
"continue": "Continuar",
"error": "Error",
@ -15,15 +16,22 @@
"copied": "Copiado",
"time24h": "Formato de 24 horas",
"time12h": "Formato de 12 horas",
"theme": "Tema",
"send": "Enviar",
"contactDiscord": "Contactar por Discord",
"linkTelegram": "Enlace Telegram",
"contactEmail": "Contactar por correo electrónico",
"contactTelegram": "Contactar por Telegram",
"linkMatrix": "Enlace Matrix",
"linkDiscord": "Enlace Discord",
"linkTelegram": "Enlace Telegram",
"linkMatrix": "Enlace Matrix",
"contactDiscord": "Contactar por Discord",
"theme": "Tema",
"refresh": "Refrescar",
"required": "Requerido"
"required": "Requerido",
"login": "Acceso",
"logout": "Cerrar sesión"
},
"notifications": {
"errorLoginBlank": "El nombre de usuario y/o la contraseña se dejaron en blanco.",
"errorConnection": "No se pudo conectar a jfa-go.",
"errorUnknown": "Error desconocido.",
"error401Unauthorized": "No autorizado. Intente actualizar la página."
}
}

View File

@ -23,5 +23,6 @@
"linkMatrix": "پیوند ماتریکس",
"contactDiscord": "از طریق دیسکورد تماس بگیرید",
"theme": "موضوع"
}
},
"notifications": {}
}

View File

@ -1,30 +1,37 @@
{
"meta": {
"name": "Français (FR)",
"author": "https://github.com/Killianbe"
"name": "Français (FR)"
},
"strings": {
"username": "Nom d'utilisateur",
"name": "Nom",
"password": "Mot de passe",
"emailAddress": "Adresse e-mail",
"name": "Nom",
"submit": "Soumettre",
"send": "Envoyer",
"success": "Succès",
"continue": "Continuer",
"error": "Erreur",
"copy": "Copier",
"copied": "Copié",
"time24h": "Temps 24h",
"time12h": "Temps 12h",
"theme": "Thème",
"copied": "Copié",
"linkTelegram": "Lien Telegram",
"contactEmail": "Contact par e-mail",
"contactTelegram": "Contact par Telegram",
"linkDiscord": "Lier Discord",
"linkMatrix": "Lier Matrix",
"send": "Envoyer",
"contactDiscord": "Contacter par Discord",
"theme": "Thème",
"refresh": "Actualiser",
"required": "Requis"
"required": "Requis",
"login": "S'identifier",
"logout": "Se déconnecter"
},
"notifications": {
"errorLoginBlank": "Le nom d'utilisateur et/ou le mot de passe sont vides.",
"errorConnection": "Impossible de se connecter à jfa-go.",
"errorUnknown": "Erreur inconnue.",
"error401Unauthorized": "Non autorisé. Essayez d'actualiser la page."
}
}

10
lang/common/hu-hu.json Normal file
View File

@ -0,0 +1,10 @@
{
"meta": {
"name": "English (US)"
},
"strings": {
"login": "Belépés",
"logout": "Kijelentkezés"
},
"notifications": {}
}

View File

@ -8,6 +8,7 @@
"emailAddress": "Alamat Email",
"name": "Nama",
"submit": "Submit",
"send": "Kirim",
"success": "Sukses",
"continue": "Lanjut",
"error": "Error",
@ -15,6 +16,13 @@
"time24h": "Waktu 24 jam",
"time12h": "Waktu 12 jam",
"theme": "Tema",
"send": "Kirim"
"login": "Masuk",
"logout": "Keluar"
},
"notifications": {
"errorLoginBlank": "Nama pengguna dan / atau sandi kosong.",
"errorConnection": "Tidak dapat terhubung ke jfa-go.",
"errorUnknown": "Kesalahan yang tidak diketahui.",
"error401Unauthorized": "Tidak ter-otorisasi. Coba segarkan halaman."
}
}

View File

@ -25,5 +25,6 @@
"theme": "Tema",
"refresh": "Aggiorna",
"required": "Richiesto"
}
},
"notifications": {}
}

View File

@ -4,26 +4,34 @@
},
"strings": {
"username": "Gebruikersnaam",
"name": "Naam",
"password": "Wachtwoord",
"emailAddress": "E-mailadres",
"name": "Naam",
"submit": "Verstuur",
"send": "Verstuur",
"success": "Succes",
"continue": "Doorgaan",
"error": "Fout",
"copy": "Kopiëer",
"theme": "Thema",
"copied": "Gekopieerd",
"time24h": "24u-formaat",
"time12h": "12u-formaat",
"copied": "Gekopieerd",
"linkTelegram": "Koppel Telegram",
"contactEmail": "Stuur e-mailbericht",
"contactTelegram": "Stuur Telegram-bericht",
"send": "Verstuur",
"linkDiscord": "Koppel Discord",
"linkMatrix": "Koppel Matrix",
"contactDiscord": "Stuur Discord bericht",
"theme": "Thema",
"refresh": "Ververs",
"required": "Verplicht"
"required": "Verplicht",
"login": "Inloggen",
"logout": "Uitloggen"
},
"notifications": {
"errorLoginBlank": "De gebruikersnaam en/of wachtwoord is leeg.",
"errorConnection": "Kon geen verbinding maken met jfa-go.",
"errorUnknown": "Onbekende fout.",
"error401Unauthorized": "Geen toegang. Probeer de pagina te vernieuwen."
}
}

View File

@ -25,5 +25,10 @@
"theme": "Motyw",
"refresh": "Odśwież",
"required": "Wymagane"
},
"notifications": {
"errorConnection": "Nie udało się połączyć z jfa-go.",
"errorUnknown": "Nieznany błąd.",
"error401Unauthorized": "Nieautoryzowany. Spróbuj odświeżyć stronę."
}
}

View File

@ -4,26 +4,34 @@
},
"strings": {
"username": "Nome do Usuário",
"name": "Nome",
"password": "Senha",
"emailAddress": "Endereço de e-mail",
"name": "Nome",
"submit": "Enviar",
"send": "Enviar",
"success": "Sucesso",
"continue": "Continuar",
"error": "Erro",
"copy": "Copiar",
"theme": "Tema",
"copied": "Copiado",
"time24h": "Horário 24h",
"time12h": "Horário 12h",
"copied": "Copiado",
"linkTelegram": "Link do Telegram",
"contactEmail": "Contato por Email",
"contactTelegram": "Contato pelo Telegram",
"send": "Enviar",
"linkDiscord": "Link do Discord",
"linkMatrix": "Link do Matrix",
"contactDiscord": "Contato através do Discord",
"theme": "Tema",
"refresh": "Atualizar",
"required": "Requeridos"
"required": "Requeridos",
"login": "Login",
"logout": "Sair"
},
"notifications": {
"errorLoginBlank": "O nome de usuário e/ou senha foram deixados em branco.",
"errorConnection": "Não foi possível conectar ao jfa-go.",
"errorUnknown": "Erro desconhecido.",
"error401Unauthorized": "Não autorizado. Tente atualizar a página."
}
}

7
lang/common/ro-ro.json Normal file
View File

@ -0,0 +1,7 @@
{
"meta": {
"name": "Română (ROU)"
},
"strings": {},
"notifications": {}
}

View File

@ -25,5 +25,6 @@
"theme": "Tema",
"refresh": "Osveži",
"required": "Obvezno"
}
},
"notifications": {}
}

View File

@ -14,6 +14,14 @@
"copy": "Kopiera",
"time24h": "24 timmarsklocka",
"time12h": "12 timmarsklocka",
"theme": "Tema"
"theme": "Tema",
"login": "Logga in",
"logout": "Logga ut"
},
"notifications": {
"errorLoginBlank": "Användarnamnet och/eller lösenordet lämnades tomt.",
"errorConnection": "Det gick inte att ansluta till jfa-go.",
"errorUnknown": "Okänt fel.",
"error401Unauthorized": "Obehörig. Prova att uppdatera sidan."
}
}

13
lang/common/vi-vn.json Normal file
View File

@ -0,0 +1,13 @@
{
"meta": {
"name": "Tiếng Anh (Mỹ)"
},
"strings": {
"login": "Đăng nhập",
"logout": "Đăng xuất"
},
"notifications": {
"errorConnection": "Không thể kết nối với jfa-go.",
"error401Unauthorized": "Không được phép. Hãy thử làm mới trang."
}
}

View File

@ -24,6 +24,14 @@
"contactDiscord": "通过Discord联系",
"theme": "主题",
"refresh": "刷新",
"required": "必需的"
"required": "必需的",
"login": "登录",
"logout": "登出"
},
"notifications": {
"errorLoginBlank": "用户名/密码留空。",
"errorConnection": "无法连接到 jfa-go。",
"errorUnknown": "未知错误。",
"error401Unauthorized": "无授权。尝试刷新页面。"
}
}

View File

@ -24,6 +24,14 @@
"contactDiscord": "通過 Discord 聯繫",
"theme": "主題",
"refresh": "重新整理",
"required": "必填"
"required": "必填",
"login": "登錄",
"logout": "登出"
},
"notifications": {
"errorLoginBlank": "帳戶名稱和/或密碼留空。",
"errorConnection": "無法連接到 jfa-go。",
"errorUnknown": "未知的錯誤。",
"error401Unauthorized": "未經授權。嘗試重新整理頁面。"
}
}

View File

@ -19,7 +19,8 @@
"yourAccountIsValidUntil": "Your account will be valid until {date}.",
"sendPIN": "Send the PIN below to the bot, then come back here to link your account.",
"sendPINDiscord": "Type {command} in {server_channel} on Discord, then send the PIN below.",
"matrixEnterUser": "Enter your User ID, press submit, and a PIN will be sent to you. Enter it here to continue."
"matrixEnterUser": "Enter your User ID, press submit, and a PIN will be sent to you. Enter it here to continue.",
"welcomeUser": "Welcome, {user}"
},
"notifications": {
"errorUserExists": "User already exists.",

View File

@ -651,6 +651,9 @@ func flagPassed(name string) (found bool) {
// @tag.name Auth
// @tag.description -Get a token here if running swagger UI locally.-
// @tag.name User Page
// @tag.description User-page related routes.
// @tag.name Users
// @tag.description Jellyfin user related operations.

View File

@ -373,3 +373,9 @@ type ReCaptchaResponseDTO struct {
Hostname string `json:"hostname"`
ErrorCodes []string `json:"error-codes"`
}
// MyDetailsDTO is sent to the user page to personalize it for the user.
type MyDetailsDTO struct {
Id string `json:"id"`
Username string `json:"username"`
}

366
package-lock.json generated
View File

@ -15,7 +15,7 @@
"any-date-parser": "^1.5.4",
"browserslist": "^4.21.7",
"cheerio": "^1.0.0-rc.12",
"esbuild": "^0.18.3",
"esbuild": "^0.18.4",
"fs-cheerio": "^3.0.0",
"inline-source": "^8.0.2",
"jsdom": "^22.1.0",
@ -57,9 +57,9 @@
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.3.tgz",
"integrity": "sha512-QOn3VIlL6Qv1eHBpQB/s7simaZgGss2ASyxDOwYSLmc6vD0uuizZkuYawHmuLjWEm5wPwp0JQWhbpaYwwGevYw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.4.tgz",
"integrity": "sha512-yKmQC9IiuvHdsNEbPHSprnMHg6OhL1cSeQZLzPpgzJBJ9ppEg9GAZN8MKj1TcmB4tZZUrq5xjK7KCmhwZP8iDA==",
"cpu": [
"arm"
],
@ -72,9 +72,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.3.tgz",
"integrity": "sha512-PgabCsoaEEnnOiF6rUhOBXgYoLFIrHWP6mfLOzuQ1oZ1lwBdTL0hp5ivC4K3Kvz3BD8EipjeQo6l0aty3nr4qQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.4.tgz",
"integrity": "sha512-yQVgO+V307hA2XhzELQ6F91CBGX7gSnlVGAj5YIqjQOxThDpM7fOcHT2YLJbE6gNdPtgRSafQrsK8rJ9xHCaZg==",
"cpu": [
"arm64"
],
@ -87,9 +87,9 @@
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.3.tgz",
"integrity": "sha512-1OkJf8wNX1W5ucbp5HrK+z42b9DINb4ix59oJH/PIsh9cyFMqjgRKtCBXg0zEWhkmP1k3egdfrnS7cDTpLH43g==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.4.tgz",
"integrity": "sha512-yLKXMxQg6sk1ntftxQ5uwyVgG4/S2E7UoOCc5N4YZW7fdkfRiYEXqm7CMuIfY2Vs3FTrNyKmSfNevIuIvJnMww==",
"cpu": [
"x64"
],
@ -102,9 +102,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.3.tgz",
"integrity": "sha512-57aofORpY7wDAuMs6DeqpmgSnVfZ63RgGbR/BHdOSTqJgYvHDCMY7/o1myFntl3k0YxtLE3WAm56nMf4qy3UDw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.4.tgz",
"integrity": "sha512-MVPEoZjZpk2xQ1zckZrb8eQuQib+QCzdmMs3YZAYEQPg+Rztk5pUxGyk8htZOC8Z38NMM29W+MqY9Sqo/sDGKw==",
"cpu": [
"arm64"
],
@ -117,9 +117,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.3.tgz",
"integrity": "sha512-NVBqMnxT9qvgu7Z322LUDlwjh4GDk6wEePyAQnHF9noxik/WvLFmr5v3Vgz5LSvqFducLCxsdmLztKhdpFW0Gg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.4.tgz",
"integrity": "sha512-uEsRtYRUDsz7i2tXg/t/SyF+5gU1cvi9B6B8i5ebJgtUUHJYWyIPIesmIOL4/+bywjxsDMA/XrNFMgMffLnh5A==",
"cpu": [
"x64"
],
@ -132,9 +132,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.3.tgz",
"integrity": "sha512-XiLK1AsCk2wKxN7j8h9GXXCs8FPZhp07U0rnpwRkAVSVGgLaIWYSqpTRzKjAfqJiZlp+XKo1HwsmDdICEKB3Dg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.4.tgz",
"integrity": "sha512-I8EOigqWnOHRin6Zp5Y1cfH3oT54bd7Sdz/VnpUNksbOtfp8IWRTH4pgkgO5jWaRQPjCpJcOpdRjYAMjPt8wXg==",
"cpu": [
"arm64"
],
@ -147,9 +147,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.3.tgz",
"integrity": "sha512-xyITfrF0G3l1gwR79hvNCCWKQ/16uK14xNNPFgzjbIqF4EpBvhO6l3jrWxXFUW51z6dVIl2Szh3x3uIbBWzH1Q==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.4.tgz",
"integrity": "sha512-1bHfgMz/cNMjbpsYxjVgMJ1iwKq+NdDPlACBrWULD7ZdFmBQrhMicMaKb5CdmdVyvIwXmasOuF4r6Iq574kUTA==",
"cpu": [
"x64"
],
@ -162,9 +162,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.3.tgz",
"integrity": "sha512-fc/T0QHMzvmnlF+kfD6bHLB8u+17gg13260p/E86yYjVoKNFjonL/+Y0GGQjMbFUas9QijqOa7pcR00a9RNkwg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.4.tgz",
"integrity": "sha512-4XCGqM/Ay1LCXUBH59bL4JbSbbTK1K22dWHymWMGaEh2sQCDOUw+OQxozYV/YdBb91leK2NbuSrE2BRamwgaYw==",
"cpu": [
"arm"
],
@ -177,9 +177,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.3.tgz",
"integrity": "sha512-lsKUYVd8L/j2uNs8dhMjMsKC5MHYh77gR9EThu7YCeeFz1XpIkx1I4a7mhoVfPS2VPVD1pMCh+PgxuAHUcEmXw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.4.tgz",
"integrity": "sha512-J42vLHaYREyiBwH0eQE4/7H1DTfZx8FuxyWSictx4d7ezzuKE3XOkIvOg+SQzRz7T9HLVKzq2tvbAov4UfufBw==",
"cpu": [
"arm64"
],
@ -192,9 +192,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.3.tgz",
"integrity": "sha512-EyfGWeOwRqK5Xj18vok0qv8IFBZ1/+hKV+cqD44oVhGsxHo9TmPtoSiDrWn8Sa2swq/VuO5Aiog6YPDj81oIkA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.4.tgz",
"integrity": "sha512-4ksIqFwhq7OExty7Sl1n0vqQSCqTG4sU6i99G2yuMr28CEOUZ/60N+IO9hwI8sIxBqmKmDgncE1n5CMu/3m0IA==",
"cpu": [
"ia32"
],
@ -207,9 +207,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.3.tgz",
"integrity": "sha512-PwXkcl3t0kSeYH5RuJIeh/fHOzKZd+ZdifAWzpVO+9TLWArutTFBJvOSkTZ3CcqQqNrTj1Qyo6nqE8MQj/a7cQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.4.tgz",
"integrity": "sha512-bsWtoVHkGQgAsFXioDueXRiUIfSGrVkJjBBz4gcBJxXcD461cWFQFyu8Fxdj9TP+zEeqJ8C/O4LFFMBNi6Fscw==",
"cpu": [
"loong64"
],
@ -222,9 +222,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.3.tgz",
"integrity": "sha512-CRVkkSXf5GQcq7Am2a2tdIn85oqi/bkjuPvhNqcdeTgI0xgNbqLnEPRy2AEGkRuaJWB5uCX1IC4sqnY8ET14Yg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.4.tgz",
"integrity": "sha512-LRD9Fu8wJQgIOOV1o3nRyzrheFYjxA0C1IVWZ93eNRRWBKgarYFejd5WBtrp43cE4y4D4t3qWWyklm73Mrsd/g==",
"cpu": [
"mips64el"
],
@ -237,9 +237,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.3.tgz",
"integrity": "sha512-t7zK1Cheh0xvzfZbimztiE0wGnpV+YRsBg3tefcEBN3O4GzgLu6fFpA5HxEyVm3hHZW1jAC4OhoGEp7C5Ii6Eg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.4.tgz",
"integrity": "sha512-jtQgoZjM92gauVRxNaaG/TpL3Pr4WcL3Pwqi9QgdrBGrEXzB+twohQiWNSTycs6lUygakos4mm2h0B9/SHveng==",
"cpu": [
"ppc64"
],
@ -252,9 +252,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.3.tgz",
"integrity": "sha512-fUZPtyCYih6y4lDYdSM4Yoax4nS7aH0/XixJStys+9tfp5cAlIAZhEVKOOdeGXmQn0IEyiUtlIsPnfObbeDQfQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.4.tgz",
"integrity": "sha512-7WaU/kRZG0VCV09Xdlkg6LNAsfU9SAxo6XEdaZ8ffO4lh+DZoAhGTx7+vTMOXKxa+r2w1LYDGxfJa2rcgagMRA==",
"cpu": [
"riscv64"
],
@ -267,9 +267,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.3.tgz",
"integrity": "sha512-oIcK2LqHWqfMERqjvaKJ3QJmycHn723HsXIv5gH4iGfmePfSj+gi0ZQv2h4bHUg2bs2gJtV0DlIjGhEuvdgxLw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.4.tgz",
"integrity": "sha512-D19ed0xreKQvC5t+ArE2njSnm18WPpE+1fhwaiJHf+Xwqsq+/SUaV8Mx0M27nszdU+Atq1HahrgCOZCNNEASUg==",
"cpu": [
"s390x"
],
@ -282,9 +282,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.3.tgz",
"integrity": "sha512-RW9lpfZ6XZ6f5to2DJPvt0f/4RXEW229Xf++quVoW+YbnPrcapIJChtD/AmZ8cK3hglO/hXxJjs21pV0/l7L5w==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.4.tgz",
"integrity": "sha512-Rx3AY1sxyiO/gvCGP00nL69L60dfmWyjKWY06ugpB8Ydpdsfi3BHW58HWC24K3CAjAPSwxcajozC2PzA9JBS1g==",
"cpu": [
"x64"
],
@ -297,9 +297,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.3.tgz",
"integrity": "sha512-piZ2oBoaq58pKZvhgdV6PemlL30Uhd9GmmOkIGZYgChwNcyVSSl6iMEJxMzU7x44Lk9q+hJ6a343M/iVEMEvxA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.4.tgz",
"integrity": "sha512-AaShPmN9c6w1mKRpliKFlaWcSkpBT4KOlk93UfFgeI3F3cbjzdDKGsbKnOZozmYbE1izZKLmNJiW0sFM+A5JPA==",
"cpu": [
"x64"
],
@ -312,9 +312,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.3.tgz",
"integrity": "sha512-vaMfouYTz/4tKdQsXDccqhV6wgPEr+hfuxdNU5Pl/vQxYTsqcXv5DYEa5Z1RAxCoua5aEB+Uj5V7VT/bM92wxw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.4.tgz",
"integrity": "sha512-tRGvGwou3BrvHVvF8HxTqEiC5VtPzySudS9fh2jBIKpLX7HCW8jIkW+LunkFDNwhslx4xMAgh0jAHsx/iCymaQ==",
"cpu": [
"x64"
],
@ -327,9 +327,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.3.tgz",
"integrity": "sha512-Fa3rNQQ9q1qwy9u2cdDvuGKy3jmPnPPMDdyy/qbn5d395Pb9hjLYiPzX9BozXMPJDlCNofSY7jN3miM9gyAdHA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.4.tgz",
"integrity": "sha512-acORFDI95GKhmAnlH8EarBeuqoy/j3yxIU+FDB91H3+ZON+8HhTadtT450YkaMzX6lEWbhi+mjVUCj00M5yyOQ==",
"cpu": [
"x64"
],
@ -342,9 +342,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.3.tgz",
"integrity": "sha512-LPJC8ub+9uzyC6ygVmp00dAqet1q1DsZ/OldGIIBt+y+Ctd1OfnKNlzQgXK8nxwY1G8fAhklFSeSRRgAUJnR0w==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.4.tgz",
"integrity": "sha512-1NxP+iOk8KSvS1L9SSxEvBAJk39U0GiGZkiiJGbuDF9G4fG7DSDw6XLxZMecAgmvQrwwx7yVKdNN3GgNh0UfKg==",
"cpu": [
"arm64"
],
@ -357,9 +357,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.3.tgz",
"integrity": "sha512-WtUyRspyxZR6NTc2HG4xd9Wvz8lP4C6OUY1gAqisrf151HvXIxsK0mfAacFJNS7EN2wvPTgjP+SM8vgBOx5+zA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.4.tgz",
"integrity": "sha512-OKr8jze93vbgqZ/r23woWciTixUwLa976C9W7yNBujtnVHyvsL/ocYG61tsktUfJOpyIz5TsohkBZ6Lo2+PCcQ==",
"cpu": [
"ia32"
],
@ -372,9 +372,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.3.tgz",
"integrity": "sha512-Z8qCK4BkBm40j5KUM4NrkxYQS0R12cBO1NBVtI4vws6uwh1n/VaNu31Hm+n2cJUWdFbfH57PBghkhm9yLgmPfw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.4.tgz",
"integrity": "sha512-qJr3wVvcLjPFcV4AMDS3iquhBfTef2zo/jlm8RMxmiRp3Vy2HY8WMxrykJlcbCnqLXZPA0YZxZGND6eug85ogg==",
"cpu": [
"x64"
],
@ -1647,9 +1647,9 @@
}
},
"node_modules/esbuild": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.3.tgz",
"integrity": "sha512-eadWJC4CRpj93+miO5ZBlvCv+m2x6pzyNBznTvUeLFObMmxs1IMd8cCf6qiDVEZuDL6W8W7u+ZNW3GKEfOdDsA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.4.tgz",
"integrity": "sha512-9rxWV/Cb2DMUXfe9aUsYtqg0KTlw146ElFH22kYeK9KVV1qT082X4lpmiKsa12ePiCcIcB686TQJxaGAa9TFvA==",
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
@ -1658,28 +1658,28 @@
"node": ">=12"
},
"optionalDependencies": {
"@esbuild/android-arm": "0.18.3",
"@esbuild/android-arm64": "0.18.3",
"@esbuild/android-x64": "0.18.3",
"@esbuild/darwin-arm64": "0.18.3",
"@esbuild/darwin-x64": "0.18.3",
"@esbuild/freebsd-arm64": "0.18.3",
"@esbuild/freebsd-x64": "0.18.3",
"@esbuild/linux-arm": "0.18.3",
"@esbuild/linux-arm64": "0.18.3",
"@esbuild/linux-ia32": "0.18.3",
"@esbuild/linux-loong64": "0.18.3",
"@esbuild/linux-mips64el": "0.18.3",
"@esbuild/linux-ppc64": "0.18.3",
"@esbuild/linux-riscv64": "0.18.3",
"@esbuild/linux-s390x": "0.18.3",
"@esbuild/linux-x64": "0.18.3",
"@esbuild/netbsd-x64": "0.18.3",
"@esbuild/openbsd-x64": "0.18.3",
"@esbuild/sunos-x64": "0.18.3",
"@esbuild/win32-arm64": "0.18.3",
"@esbuild/win32-ia32": "0.18.3",
"@esbuild/win32-x64": "0.18.3"
"@esbuild/android-arm": "0.18.4",
"@esbuild/android-arm64": "0.18.4",
"@esbuild/android-x64": "0.18.4",
"@esbuild/darwin-arm64": "0.18.4",
"@esbuild/darwin-x64": "0.18.4",
"@esbuild/freebsd-arm64": "0.18.4",
"@esbuild/freebsd-x64": "0.18.4",
"@esbuild/linux-arm": "0.18.4",
"@esbuild/linux-arm64": "0.18.4",
"@esbuild/linux-ia32": "0.18.4",
"@esbuild/linux-loong64": "0.18.4",
"@esbuild/linux-mips64el": "0.18.4",
"@esbuild/linux-ppc64": "0.18.4",
"@esbuild/linux-riscv64": "0.18.4",
"@esbuild/linux-s390x": "0.18.4",
"@esbuild/linux-x64": "0.18.4",
"@esbuild/netbsd-x64": "0.18.4",
"@esbuild/openbsd-x64": "0.18.4",
"@esbuild/sunos-x64": "0.18.4",
"@esbuild/win32-arm64": "0.18.4",
"@esbuild/win32-ia32": "0.18.4",
"@esbuild/win32-x64": "0.18.4"
}
},
"node_modules/escalade": {
@ -6797,135 +6797,135 @@
}
},
"@esbuild/android-arm": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.3.tgz",
"integrity": "sha512-QOn3VIlL6Qv1eHBpQB/s7simaZgGss2ASyxDOwYSLmc6vD0uuizZkuYawHmuLjWEm5wPwp0JQWhbpaYwwGevYw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.4.tgz",
"integrity": "sha512-yKmQC9IiuvHdsNEbPHSprnMHg6OhL1cSeQZLzPpgzJBJ9ppEg9GAZN8MKj1TcmB4tZZUrq5xjK7KCmhwZP8iDA==",
"optional": true
},
"@esbuild/android-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.3.tgz",
"integrity": "sha512-PgabCsoaEEnnOiF6rUhOBXgYoLFIrHWP6mfLOzuQ1oZ1lwBdTL0hp5ivC4K3Kvz3BD8EipjeQo6l0aty3nr4qQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.4.tgz",
"integrity": "sha512-yQVgO+V307hA2XhzELQ6F91CBGX7gSnlVGAj5YIqjQOxThDpM7fOcHT2YLJbE6gNdPtgRSafQrsK8rJ9xHCaZg==",
"optional": true
},
"@esbuild/android-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.3.tgz",
"integrity": "sha512-1OkJf8wNX1W5ucbp5HrK+z42b9DINb4ix59oJH/PIsh9cyFMqjgRKtCBXg0zEWhkmP1k3egdfrnS7cDTpLH43g==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.4.tgz",
"integrity": "sha512-yLKXMxQg6sk1ntftxQ5uwyVgG4/S2E7UoOCc5N4YZW7fdkfRiYEXqm7CMuIfY2Vs3FTrNyKmSfNevIuIvJnMww==",
"optional": true
},
"@esbuild/darwin-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.3.tgz",
"integrity": "sha512-57aofORpY7wDAuMs6DeqpmgSnVfZ63RgGbR/BHdOSTqJgYvHDCMY7/o1myFntl3k0YxtLE3WAm56nMf4qy3UDw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.4.tgz",
"integrity": "sha512-MVPEoZjZpk2xQ1zckZrb8eQuQib+QCzdmMs3YZAYEQPg+Rztk5pUxGyk8htZOC8Z38NMM29W+MqY9Sqo/sDGKw==",
"optional": true
},
"@esbuild/darwin-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.3.tgz",
"integrity": "sha512-NVBqMnxT9qvgu7Z322LUDlwjh4GDk6wEePyAQnHF9noxik/WvLFmr5v3Vgz5LSvqFducLCxsdmLztKhdpFW0Gg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.4.tgz",
"integrity": "sha512-uEsRtYRUDsz7i2tXg/t/SyF+5gU1cvi9B6B8i5ebJgtUUHJYWyIPIesmIOL4/+bywjxsDMA/XrNFMgMffLnh5A==",
"optional": true
},
"@esbuild/freebsd-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.3.tgz",
"integrity": "sha512-XiLK1AsCk2wKxN7j8h9GXXCs8FPZhp07U0rnpwRkAVSVGgLaIWYSqpTRzKjAfqJiZlp+XKo1HwsmDdICEKB3Dg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.4.tgz",
"integrity": "sha512-I8EOigqWnOHRin6Zp5Y1cfH3oT54bd7Sdz/VnpUNksbOtfp8IWRTH4pgkgO5jWaRQPjCpJcOpdRjYAMjPt8wXg==",
"optional": true
},
"@esbuild/freebsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.3.tgz",
"integrity": "sha512-xyITfrF0G3l1gwR79hvNCCWKQ/16uK14xNNPFgzjbIqF4EpBvhO6l3jrWxXFUW51z6dVIl2Szh3x3uIbBWzH1Q==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.4.tgz",
"integrity": "sha512-1bHfgMz/cNMjbpsYxjVgMJ1iwKq+NdDPlACBrWULD7ZdFmBQrhMicMaKb5CdmdVyvIwXmasOuF4r6Iq574kUTA==",
"optional": true
},
"@esbuild/linux-arm": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.3.tgz",
"integrity": "sha512-fc/T0QHMzvmnlF+kfD6bHLB8u+17gg13260p/E86yYjVoKNFjonL/+Y0GGQjMbFUas9QijqOa7pcR00a9RNkwg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.4.tgz",
"integrity": "sha512-4XCGqM/Ay1LCXUBH59bL4JbSbbTK1K22dWHymWMGaEh2sQCDOUw+OQxozYV/YdBb91leK2NbuSrE2BRamwgaYw==",
"optional": true
},
"@esbuild/linux-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.3.tgz",
"integrity": "sha512-lsKUYVd8L/j2uNs8dhMjMsKC5MHYh77gR9EThu7YCeeFz1XpIkx1I4a7mhoVfPS2VPVD1pMCh+PgxuAHUcEmXw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.4.tgz",
"integrity": "sha512-J42vLHaYREyiBwH0eQE4/7H1DTfZx8FuxyWSictx4d7ezzuKE3XOkIvOg+SQzRz7T9HLVKzq2tvbAov4UfufBw==",
"optional": true
},
"@esbuild/linux-ia32": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.3.tgz",
"integrity": "sha512-EyfGWeOwRqK5Xj18vok0qv8IFBZ1/+hKV+cqD44oVhGsxHo9TmPtoSiDrWn8Sa2swq/VuO5Aiog6YPDj81oIkA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.4.tgz",
"integrity": "sha512-4ksIqFwhq7OExty7Sl1n0vqQSCqTG4sU6i99G2yuMr28CEOUZ/60N+IO9hwI8sIxBqmKmDgncE1n5CMu/3m0IA==",
"optional": true
},
"@esbuild/linux-loong64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.3.tgz",
"integrity": "sha512-PwXkcl3t0kSeYH5RuJIeh/fHOzKZd+ZdifAWzpVO+9TLWArutTFBJvOSkTZ3CcqQqNrTj1Qyo6nqE8MQj/a7cQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.4.tgz",
"integrity": "sha512-bsWtoVHkGQgAsFXioDueXRiUIfSGrVkJjBBz4gcBJxXcD461cWFQFyu8Fxdj9TP+zEeqJ8C/O4LFFMBNi6Fscw==",
"optional": true
},
"@esbuild/linux-mips64el": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.3.tgz",
"integrity": "sha512-CRVkkSXf5GQcq7Am2a2tdIn85oqi/bkjuPvhNqcdeTgI0xgNbqLnEPRy2AEGkRuaJWB5uCX1IC4sqnY8ET14Yg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.4.tgz",
"integrity": "sha512-LRD9Fu8wJQgIOOV1o3nRyzrheFYjxA0C1IVWZ93eNRRWBKgarYFejd5WBtrp43cE4y4D4t3qWWyklm73Mrsd/g==",
"optional": true
},
"@esbuild/linux-ppc64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.3.tgz",
"integrity": "sha512-t7zK1Cheh0xvzfZbimztiE0wGnpV+YRsBg3tefcEBN3O4GzgLu6fFpA5HxEyVm3hHZW1jAC4OhoGEp7C5Ii6Eg==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.4.tgz",
"integrity": "sha512-jtQgoZjM92gauVRxNaaG/TpL3Pr4WcL3Pwqi9QgdrBGrEXzB+twohQiWNSTycs6lUygakos4mm2h0B9/SHveng==",
"optional": true
},
"@esbuild/linux-riscv64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.3.tgz",
"integrity": "sha512-fUZPtyCYih6y4lDYdSM4Yoax4nS7aH0/XixJStys+9tfp5cAlIAZhEVKOOdeGXmQn0IEyiUtlIsPnfObbeDQfQ==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.4.tgz",
"integrity": "sha512-7WaU/kRZG0VCV09Xdlkg6LNAsfU9SAxo6XEdaZ8ffO4lh+DZoAhGTx7+vTMOXKxa+r2w1LYDGxfJa2rcgagMRA==",
"optional": true
},
"@esbuild/linux-s390x": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.3.tgz",
"integrity": "sha512-oIcK2LqHWqfMERqjvaKJ3QJmycHn723HsXIv5gH4iGfmePfSj+gi0ZQv2h4bHUg2bs2gJtV0DlIjGhEuvdgxLw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.4.tgz",
"integrity": "sha512-D19ed0xreKQvC5t+ArE2njSnm18WPpE+1fhwaiJHf+Xwqsq+/SUaV8Mx0M27nszdU+Atq1HahrgCOZCNNEASUg==",
"optional": true
},
"@esbuild/linux-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.3.tgz",
"integrity": "sha512-RW9lpfZ6XZ6f5to2DJPvt0f/4RXEW229Xf++quVoW+YbnPrcapIJChtD/AmZ8cK3hglO/hXxJjs21pV0/l7L5w==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.4.tgz",
"integrity": "sha512-Rx3AY1sxyiO/gvCGP00nL69L60dfmWyjKWY06ugpB8Ydpdsfi3BHW58HWC24K3CAjAPSwxcajozC2PzA9JBS1g==",
"optional": true
},
"@esbuild/netbsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.3.tgz",
"integrity": "sha512-piZ2oBoaq58pKZvhgdV6PemlL30Uhd9GmmOkIGZYgChwNcyVSSl6iMEJxMzU7x44Lk9q+hJ6a343M/iVEMEvxA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.4.tgz",
"integrity": "sha512-AaShPmN9c6w1mKRpliKFlaWcSkpBT4KOlk93UfFgeI3F3cbjzdDKGsbKnOZozmYbE1izZKLmNJiW0sFM+A5JPA==",
"optional": true
},
"@esbuild/openbsd-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.3.tgz",
"integrity": "sha512-vaMfouYTz/4tKdQsXDccqhV6wgPEr+hfuxdNU5Pl/vQxYTsqcXv5DYEa5Z1RAxCoua5aEB+Uj5V7VT/bM92wxw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.4.tgz",
"integrity": "sha512-tRGvGwou3BrvHVvF8HxTqEiC5VtPzySudS9fh2jBIKpLX7HCW8jIkW+LunkFDNwhslx4xMAgh0jAHsx/iCymaQ==",
"optional": true
},
"@esbuild/sunos-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.3.tgz",
"integrity": "sha512-Fa3rNQQ9q1qwy9u2cdDvuGKy3jmPnPPMDdyy/qbn5d395Pb9hjLYiPzX9BozXMPJDlCNofSY7jN3miM9gyAdHA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.4.tgz",
"integrity": "sha512-acORFDI95GKhmAnlH8EarBeuqoy/j3yxIU+FDB91H3+ZON+8HhTadtT450YkaMzX6lEWbhi+mjVUCj00M5yyOQ==",
"optional": true
},
"@esbuild/win32-arm64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.3.tgz",
"integrity": "sha512-LPJC8ub+9uzyC6ygVmp00dAqet1q1DsZ/OldGIIBt+y+Ctd1OfnKNlzQgXK8nxwY1G8fAhklFSeSRRgAUJnR0w==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.4.tgz",
"integrity": "sha512-1NxP+iOk8KSvS1L9SSxEvBAJk39U0GiGZkiiJGbuDF9G4fG7DSDw6XLxZMecAgmvQrwwx7yVKdNN3GgNh0UfKg==",
"optional": true
},
"@esbuild/win32-ia32": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.3.tgz",
"integrity": "sha512-WtUyRspyxZR6NTc2HG4xd9Wvz8lP4C6OUY1gAqisrf151HvXIxsK0mfAacFJNS7EN2wvPTgjP+SM8vgBOx5+zA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.4.tgz",
"integrity": "sha512-OKr8jze93vbgqZ/r23woWciTixUwLa976C9W7yNBujtnVHyvsL/ocYG61tsktUfJOpyIz5TsohkBZ6Lo2+PCcQ==",
"optional": true
},
"@esbuild/win32-x64": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.3.tgz",
"integrity": "sha512-Z8qCK4BkBm40j5KUM4NrkxYQS0R12cBO1NBVtI4vws6uwh1n/VaNu31Hm+n2cJUWdFbfH57PBghkhm9yLgmPfw==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.4.tgz",
"integrity": "sha512-qJr3wVvcLjPFcV4AMDS3iquhBfTef2zo/jlm8RMxmiRp3Vy2HY8WMxrykJlcbCnqLXZPA0YZxZGND6eug85ogg==",
"optional": true
},
"@jridgewell/gen-mapping": {
@ -7896,32 +7896,32 @@
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"esbuild": {
"version": "0.18.3",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.3.tgz",
"integrity": "sha512-eadWJC4CRpj93+miO5ZBlvCv+m2x6pzyNBznTvUeLFObMmxs1IMd8cCf6qiDVEZuDL6W8W7u+ZNW3GKEfOdDsA==",
"version": "0.18.4",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.4.tgz",
"integrity": "sha512-9rxWV/Cb2DMUXfe9aUsYtqg0KTlw146ElFH22kYeK9KVV1qT082X4lpmiKsa12ePiCcIcB686TQJxaGAa9TFvA==",
"requires": {
"@esbuild/android-arm": "0.18.3",
"@esbuild/android-arm64": "0.18.3",
"@esbuild/android-x64": "0.18.3",
"@esbuild/darwin-arm64": "0.18.3",
"@esbuild/darwin-x64": "0.18.3",
"@esbuild/freebsd-arm64": "0.18.3",
"@esbuild/freebsd-x64": "0.18.3",
"@esbuild/linux-arm": "0.18.3",
"@esbuild/linux-arm64": "0.18.3",
"@esbuild/linux-ia32": "0.18.3",
"@esbuild/linux-loong64": "0.18.3",
"@esbuild/linux-mips64el": "0.18.3",
"@esbuild/linux-ppc64": "0.18.3",
"@esbuild/linux-riscv64": "0.18.3",
"@esbuild/linux-s390x": "0.18.3",
"@esbuild/linux-x64": "0.18.3",
"@esbuild/netbsd-x64": "0.18.3",
"@esbuild/openbsd-x64": "0.18.3",
"@esbuild/sunos-x64": "0.18.3",
"@esbuild/win32-arm64": "0.18.3",
"@esbuild/win32-ia32": "0.18.3",
"@esbuild/win32-x64": "0.18.3"
"@esbuild/android-arm": "0.18.4",
"@esbuild/android-arm64": "0.18.4",
"@esbuild/android-x64": "0.18.4",
"@esbuild/darwin-arm64": "0.18.4",
"@esbuild/darwin-x64": "0.18.4",
"@esbuild/freebsd-arm64": "0.18.4",
"@esbuild/freebsd-x64": "0.18.4",
"@esbuild/linux-arm": "0.18.4",
"@esbuild/linux-arm64": "0.18.4",
"@esbuild/linux-ia32": "0.18.4",
"@esbuild/linux-loong64": "0.18.4",
"@esbuild/linux-mips64el": "0.18.4",
"@esbuild/linux-ppc64": "0.18.4",
"@esbuild/linux-riscv64": "0.18.4",
"@esbuild/linux-s390x": "0.18.4",
"@esbuild/linux-x64": "0.18.4",
"@esbuild/netbsd-x64": "0.18.4",
"@esbuild/openbsd-x64": "0.18.4",
"@esbuild/sunos-x64": "0.18.4",
"@esbuild/win32-arm64": "0.18.4",
"@esbuild/win32-ia32": "0.18.4",
"@esbuild/win32-x64": "0.18.4"
}
},
"escalade": {

View File

@ -23,7 +23,7 @@
"any-date-parser": "^1.5.4",
"browserslist": "^4.21.7",
"cheerio": "^1.0.0-rc.12",
"esbuild": "^0.18.3",
"esbuild": "^0.18.4",
"fs-cheerio": "^3.0.0",
"inline-source": "^8.0.2",
"jsdom": "^22.1.0",

View File

@ -226,7 +226,7 @@ func (app *appContext) loadRoutes(router *gin.Engine) {
api.POST(p+"/matrix/login", app.MatrixLogin)
if userPageEnabled {
user.GET(p+"/hello", app.HelloWorld)
user.GET(p+"/details", app.MyDetails)
}
}
}

View File

@ -4,6 +4,13 @@ import { Modal } from "./modules/modal.js";
import { _get, _post, notificationBox, whichAnimationEvent } from "./modules/common.js";
import { Login } from "./modules/login.js";
interface userWindow extends Window {
jellyfinID: string;
username: string;
}
declare var window: userWindow;
const theme = new ThemeManager(document.getElementById("button-theme"));
window.lang = new lang(window.langFile as LangFile);
@ -22,14 +29,20 @@ window.modals = {} as Modals;
window.notifications = new notificationBox(document.getElementById('notification-box') as HTMLDivElement, 5);
var rootCard = document.getElementById("card-user");
const login = new Login(window.modals.login as Modal, "/my/");
login.onLogin = () => {
console.log("Logged in.");
document.getElementById("card-user").textContent = "Logged In!";
_get("/my/hello", null, (req: XMLHttpRequest) => {
_get("/my/details", null, (req: XMLHttpRequest) => {
if (req.readyState == 4) {
const card = document.getElementById("card-user");
card.textContent = card.textContent + " got response " + req.response["response"];
if (req.status != 200) {
window.notifications.customError("myDetailsError", req.response["error"]);
return;
}
window.jellyfinID = req.response["id"];
window.username = req.response["username"];
rootCard.querySelector(".heading").textContent = window.lang.strings("welcomeUser").replace("{user}", window.username);
}
});
};

View File

@ -166,22 +166,22 @@ func (app *appContext) MyUserPage(gc *gin.Context) {
notificationsEnabled, _ := app.config.Section("notifications").Key("enabled").Bool()
ombiEnabled := app.config.Section("ombi").Key("enabled").MustBool(false)
gcHTML(gc, http.StatusOK, "user.html", gin.H{
"urlBase": app.getURLBase(gc),
"cssClass": app.cssClass,
"cssVersion": cssVersion,
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
"emailEnabled": emailEnabled,
"telegramEnabled": telegramEnabled,
"discordEnabled": discordEnabled,
"matrixEnabled": matrixEnabled,
"ombiEnabled": ombiEnabled,
"linkResetEnabled": app.config.Section("password_resets").Key("link_reset").MustBool(false),
"notifications": notificationsEnabled,
"username": !app.config.Section("email").Key("no_username").MustBool(false),
"strings": app.storage.lang.Admin[lang].Strings,
"quantityStrings": app.storage.lang.Admin[lang].QuantityStrings,
"language": app.storage.lang.Admin[lang].JSON,
"langName": lang,
"urlBase": app.getURLBase(gc),
"cssClass": app.cssClass,
"cssVersion": cssVersion,
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
"emailEnabled": emailEnabled,
"telegramEnabled": telegramEnabled,
"discordEnabled": discordEnabled,
"matrixEnabled": matrixEnabled,
"ombiEnabled": ombiEnabled,
"linkResetEnabled": app.config.Section("password_resets").Key("link_reset").MustBool(false),
"notifications": notificationsEnabled,
"username": !app.config.Section("email").Key("no_username").MustBool(false),
"strings": app.storage.lang.User[lang].Strings,
"validationStrings": app.storage.lang.User[lang].ValidationStrings,
"language": app.storage.lang.User[lang].JSON,
"langName": lang,
})
}