mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-01-05 07:58:08 +01:00
5.5.2335
This commit is contained in:
parent
ce3c19a332
commit
a45817ca10
@ -5,6 +5,7 @@
|
||||
# https://github.com/plan-player-analytics/Plan/wiki/Bukkit-Configuration
|
||||
# -----------------------------------------------------
|
||||
Server:
|
||||
ServerName: Plan
|
||||
IP: 0.0.0.0
|
||||
Network:
|
||||
Name: Plan
|
||||
|
@ -5,7 +5,7 @@ command:
|
||||
description: "Název souboru zálohy (citlivé na velikost písmen)"
|
||||
name: "záloha"
|
||||
code:
|
||||
description: "Kód použitý k dokončení registrace.."
|
||||
description: "Kód použitý k dokončení registrace."
|
||||
name: "${code}"
|
||||
dbBackup:
|
||||
description: "Typ databáze k zálohování. Použita aktuální databáze, pokud není specifikováno."
|
||||
@ -54,7 +54,7 @@ command:
|
||||
manage:
|
||||
confirm: "> §cPřidejte '-a' argument k potvrzení provedení: ${0}"
|
||||
confirmOverwrite: "Data v ${0} budou přepsána!"
|
||||
confirmPartialRemoval: "Join Address Data for Server ${0} in ${1} will be removed!"
|
||||
confirmPartialRemoval: "Data IP adres připojení pro server ${0} na ${1} byla smazána!"
|
||||
confirmRemoval: "Data v ${0} budou smazána!"
|
||||
fail: "> §cNěco se pokazilo: ${0}"
|
||||
failFileNotFound: "> §cNenalezen soubor v ${0}"
|
||||
@ -64,7 +64,7 @@ command:
|
||||
failSameServer: "Nelze označit tento server jako odinstalován (Jste na něm)"
|
||||
hotswap: "§eNezapomeňte přehodit na novou databázi (/plan db hotswap ${0}) & reload pluginu."
|
||||
importers: "Importery:"
|
||||
preparing: "Preparing.."
|
||||
preparing: "Načítání.."
|
||||
progress: "${0} / ${1} zpracovávání.."
|
||||
start: "> §2Zpracovávám data.."
|
||||
success: "> §aÚspěch!"
|
||||
@ -163,27 +163,27 @@ command:
|
||||
description: "Ukázat json Hráčských čistých dat."
|
||||
inDepth: "Dovolí stáhnout hráčská data v json formátu. Všechna."
|
||||
logout:
|
||||
description: "Log out other users from the panel."
|
||||
description: "Odhlášení ostatních uživatelů z panelu."
|
||||
inDepth: "Vložte argument přezdívky hráče k odhlášení jiného uživatele, použijte * pro odhlášení všech."
|
||||
migrateToOnlineUuids:
|
||||
description: "Migrate offline uuid data to online uuids"
|
||||
description: "Migrace offline uuid dat na online uuid"
|
||||
network:
|
||||
description: "Ukázat stránku sítě"
|
||||
inDepth: "Získání odkazu k /network page, pouze na sítích."
|
||||
inDepth: "Získání odkazu k /network stránce, pouze na sítích."
|
||||
player:
|
||||
description: "Ukázat stránku hráče"
|
||||
inDepth: "Získání odkazu k /player page specifického hráče, či aktuálního."
|
||||
inDepth: "Získání odkazu ke stránce /player specifického hráče, či aktuálního."
|
||||
players:
|
||||
description: "Ukázat stránku hráčů"
|
||||
inDepth: "Získání odkazu k /players page k zobrazení seznamu hráčů."
|
||||
inDepth: "Získání odkazu ke stránce /players k zobrazení seznamu hráčů."
|
||||
register:
|
||||
description: "Registrovat web uživatele"
|
||||
inDepth: "Použijte bez argumentů k odkazu na stránku registrace. Použijte --code [kod] pro registraci k získání uživatele."
|
||||
inDepth: "Použijte bez argumentů k odkazu na stránku registrace. Použijte --code [kód] pro registraci k získání uživatele."
|
||||
reload:
|
||||
description: "Restartuje plugin Plan"
|
||||
inDepth: "Vypnout a zapnout plugin k obnově jakýchkoli změn v configu."
|
||||
removejoinaddresses:
|
||||
description: "Remove join addresses of a specified server"
|
||||
description: "Odstranění adres připojení zadaného serveru"
|
||||
search:
|
||||
description: "Hledat podle jména hráče"
|
||||
inDepth: "Zobrazit seznam všech hráčů souhlasísích s daným jménem."
|
||||
@ -265,8 +265,8 @@ html:
|
||||
authFailedTips: "- Ujistěte se, že jste zaregistrovaní s uživatelem s <b>/plan register</b><br>- Zkontrolujte zda je jméno a heslo správné<br>- Jméno a heslo jsou citlivá na velká/malá písmena<br><br>Pokud jste zapomněli heslo, zeptejte se člena týmu ke smazání vašeho starého uživatele či nové registraci."
|
||||
noServersOnline: "Žádné online servery k vykonání žádosti."
|
||||
playerNotSeen: "Hráč nebyl nenalezen."
|
||||
serverNotExported: "Server doesn't exist, its data might not have been exported yet."
|
||||
serverNotSeen: "Server doesn't exist"
|
||||
serverNotExported: "Server neexistuje, je možné, že jeho data ještě nebyla exportována."
|
||||
serverNotSeen: "Server neexistuje"
|
||||
generic:
|
||||
none: "Žádný"
|
||||
label:
|
||||
@ -277,26 +277,26 @@ html:
|
||||
afkTime: "AFK čas"
|
||||
all: "Vše"
|
||||
allTime: "Celkově"
|
||||
alphabetical: "Alphabetical"
|
||||
alphabetical: "Abecední řazení"
|
||||
apply: "Apply"
|
||||
asNumbers: "statistiky"
|
||||
average: "Average first session length"
|
||||
average: "Průměrná délka prvního připojení"
|
||||
averageActivePlaytime: "Průměrná herní aktivita"
|
||||
averageAfkTime: "Průměrný AFK čas"
|
||||
averageChunks: "Průměr chunků"
|
||||
averageCpuUsage: "Average CPU Usage"
|
||||
averageEntities: "Průměr entit"
|
||||
averageChunks: "Průměrně chunků"
|
||||
averageCpuUsage: "Průměrné využití CPU"
|
||||
averageEntities: "Průměrně entit"
|
||||
averageKdr: "Průměr KDR"
|
||||
averageMobKdr: "Průměr Mob KDR"
|
||||
averagePing: "Průměrný ping"
|
||||
averagePlayers: "Average Players"
|
||||
averagePlayers: "Průměrně hráčů"
|
||||
averagePlaytime: "Průměr herní doby"
|
||||
averageRamUsage: "Average RAM Usage"
|
||||
averageServerDowntime: "Average Downtime / Server"
|
||||
averageSessionLength: "Průměrná délka relace"
|
||||
averageSessions: "Průměrná relace"
|
||||
averageRamUsage: "Průměrné využití RAM"
|
||||
averageServerDowntime: "Průměrná doba vypnutí / Serveru"
|
||||
averageSessionLength: "Průměrná délka připojení"
|
||||
averageSessions: "Průměr připojení"
|
||||
averageTps: "Průměr TPS"
|
||||
averageTps7days: "Average TPS (7 days)"
|
||||
averageTps7days: "Proměr TPS (7 dní)"
|
||||
banned: "Zabanován"
|
||||
bestPeak: "Nejvíce hráčů"
|
||||
bestPing: "Nejlepší ping"
|
||||
@ -308,7 +308,7 @@ html:
|
||||
cpuRam: "CPU & RAM"
|
||||
cpuUsage: "CPU Usage"
|
||||
currentPlayerbase: "Aktuální základna hráčů"
|
||||
currentUptime: "Current Uptime"
|
||||
currentUptime: "Aktuální doba zapnutí"
|
||||
dayByDay: "Den po dni"
|
||||
dayOfweek: "Den týdne"
|
||||
deadliestWeapon: "Nejsmrtelnější PvP zbraň"
|
||||
@ -318,72 +318,72 @@ html:
|
||||
downtime: "Offline doba"
|
||||
duringLowTps: "Při nízkých TPS:"
|
||||
entities: "Entity"
|
||||
exported: "Data export time"
|
||||
exported: "Doba exportu dat"
|
||||
favoriteServer: "Oblíbený server"
|
||||
firstSession: "První relace"
|
||||
firstSessionLength:
|
||||
average: "Average first session length"
|
||||
median: "Median first session length"
|
||||
average: "Průměrná délka prvního připojení"
|
||||
median: "Medián prvního připojení"
|
||||
geoProjection:
|
||||
dropdown: "Select projection"
|
||||
equalEarth: "Equal Earth"
|
||||
dropdown: "Zvolte projekci"
|
||||
equalEarth: "Rovná země"
|
||||
mercator: "Mercator"
|
||||
miller: "Miller"
|
||||
ortographic: "Ortographic"
|
||||
ortographic: "Ortografie"
|
||||
geolocations: "Geolokace"
|
||||
help:
|
||||
activityIndexBasis: "Activity index is based on non-AFK playtime in the past 3 weeks (21 days). Each week is considered separately."
|
||||
activityIndexExample1: "If someone plays as much as threshold every week, they are given activity index ~3."
|
||||
activityIndexExample2: "Very active is ~2x the threshold (y ≥ 3.75)."
|
||||
activityIndexExample3: "The index approaches 5 indefinitely."
|
||||
activityIndexVisual: "Here is a visualization of the curve where y = activity index, and x = playtime per week / threshold."
|
||||
activityIndexWeek: "Week {}"
|
||||
examples: "Examples"
|
||||
activityIndexBasis: "Index aktivity vychází z času stráveného hraním mimo AFK za poslední 3 týdny (21 dní). Každý týden se posuzuje zvlášť."
|
||||
activityIndexExample1: "Pokud někdo hraje každý týden tolik, kolik je limit, má index aktivity ~3."
|
||||
activityIndexExample2: "Velmi aktivní je ~2x prahová hodnota (y ≥ 3,75)."
|
||||
activityIndexExample3: "Index se neomezeně blíží hodnotě 5."
|
||||
activityIndexVisual: "Zde je vizualizace křivky, kde y = index aktivity a x = doba hraní za týden / prahová hodnota."
|
||||
activityIndexWeek: "Týden {}"
|
||||
examples: "Příklady"
|
||||
graph:
|
||||
labels: "You can hide/show a group by clicking on the label at the bottom."
|
||||
title: "Graph"
|
||||
zoom: "You can Zoom in by click + dragging on the graph."
|
||||
playtimeUnit: "hours"
|
||||
labels: "Skupinu můžete skrýt/zobrazit kliknutím na štítek v dolní části."
|
||||
title: "Graf"
|
||||
zoom: "Graf si můžete přiblížit kliknutím a táhnutím."
|
||||
playtimeUnit: "hodiny"
|
||||
retention:
|
||||
calculationStep1: "First the data is filtered using '<>' option. Any players with 'registerDate' outside the time range are ignored."
|
||||
calculationStep2: "Then it is grouped into groups of players using '<0>' option, eg. With '<1>': All players who registered in January 2023, February 2023, etc"
|
||||
calculationStep3: "Then the '<0>' and '<1>' options select which visualization to render."
|
||||
calculationStep4: "'<>' controls how many points the graph has, eg. 'Days' has one point per day."
|
||||
calculationStep5: "On each calculated point all players are checked for the condition."
|
||||
calculationStep6: "Select X Axis below to see conditions."
|
||||
calculationStepDate: "This visualization shows the different groups of players that are still playing on your server. The visualization uses lastSeen date. If x < lastSeenDate, the player is visible on the graph."
|
||||
calculationStepDeltas: "This visualization is most effective using Player Count as the Y Axis. The visualization shows net gain of players (How many players joined minus players who stopped playing). The visualization uses both registered and lastSeen dates. If registerDate < x < lastSeenDate, the player is visible on the graph."
|
||||
calculationStepPlaytime: "This visualization tells how long the gameplay loop keeps players engaged on your server. The visualization uses playtime. If x < playtime, the player is visible on the graph."
|
||||
calculationStepTime: "This visualization tells how long people keep coming back to play on the server after they join the first time. The visualization uses timeDifference. If x < timeDifference, the player is visible on the graph."
|
||||
compareJoinAddress: "Grouping by join address allows measuring advertising campaigns on different sites."
|
||||
compareMonths: "You can compare different months by changing the '<0>' option to '<1>'"
|
||||
calculationStep1: "Nejprve se data filtrují pomocí možnosti '<>'. Hráči s 'registerDate' mimo časový rozsah jsou ignorováni."
|
||||
calculationStep2: "Poté je rozdělíme do skupin hráčů pomocí možnosti '<0>', např. pomocí '<1>': Všichni hráči, kteří se zaregistrovali v lednu 2023, únoru 2023 atd."
|
||||
calculationStep3: "Možnosti '<0>' a '<1>' pak vybírají, která vizualizace se má vykreslit."
|
||||
calculationStep4: "'<>' řídí, kolik bodů má graf, např. 'Days' má jeden bod za den."
|
||||
calculationStep5: "V každém vypočteném bodě se u všech hráčů kontroluje, zda je splněna podmínka."
|
||||
calculationStep6: "Pro zobrazení podmínek vyberte níže uvedenou osu X."
|
||||
calculationStepDate: "Tato vizualizace zobrazuje různé skupiny hráčů, kteří stále hrají na vašem serveru. Vizualizace používá datum lastSeen. Pokud x < lastSeenDate, je hráč v grafu viditelný."
|
||||
calculationStepDeltas: "Tato vizualizace je nejefektivnější při použití počtu hráčů jako osy Y. Vizualizace ukazuje čistý přírůstek hráčů (kolik hráčů se připojilo mínus hráči, kteří přestali hrát). Vizualizace používá data registrovaných i naposledy viděných hráčů. Pokud je registerDate < x < lastSeenDate, hráč je v grafu viditelný."
|
||||
calculationStepPlaytime: "Tato vizualizace ukazuje, jak dlouho se hráči na vašem serveru věnují hraní. Vizualizace využívá dobu hraní. Pokud je x < době hraní, je hráč na grafu viditelný."
|
||||
calculationStepTime: "Tato vizualizace ukazuje, jak dlouho se lidé vracejí hrát na server poté, co se připojili poprvé. Vizualizace využívá funkci timeDifference. Pokud je x < timeDifference, je hráč v grafu viditelný."
|
||||
compareJoinAddress: "Seskupení podle adresy připojení umožňuje měřit reklamní kampaně na různých stránkách."
|
||||
compareMonths: "Různé měsíce můžete porovnat změnou možnosti '<0>' na '<1>'."
|
||||
examples:
|
||||
adCampaign: "Comparing player gain of different ad campaigns using different Join Addresses (anonymized)"
|
||||
deltas: "<> shows net gain of players."
|
||||
pattern: "A general pattern emerges when all players start leaving the server at the same time"
|
||||
plateau: "Comparing player gain of different months. Plateaus suggest there were players Plan doesn't know about. In this example Plan was installed in January 2022."
|
||||
playtime: "Playtime tells how long the gameplay loop keeps players engaged on your server."
|
||||
stack: "Cumulative player gain can be checked with stacked player count as Y axis"
|
||||
howIsItCalculated: "How it is calculated"
|
||||
howIsItCalculatedData: "The graph is generated from player data:"
|
||||
options: "Select the options to analyze different aspects of Player Retention."
|
||||
retentionBasis: "New player retention is calculated based on session data. If a registered player has played within latter half of the timespan, they are considered retained."
|
||||
testPrompt: "Test it out:"
|
||||
testResult: "Test result"
|
||||
threshold: "Threshold"
|
||||
thresholdUnit: "hours / week"
|
||||
tips: "Tips"
|
||||
usingTheGraph: "Using the Graph"
|
||||
adCampaign: "Srovnání zisku hráčů z různých reklamních kampaní s použitím různých adres pro připojení (anonymizované)"
|
||||
deltas: "<> ukazuje čistý zisk hráčů."
|
||||
pattern: "Když všichni hráči začnou opouštět server ve stejnou dobu, objeví se obecný vzorec."
|
||||
plateau: "Srovnání zisku hráčů v různých měsících. Plochy naznačují, že existují hráči, o kterých Plan neví. V tomto příkladu byl Plan nainstalován v lednu 2022."
|
||||
playtime: "Doba hraní udává, jak dlouho jsou hráči na vašem serveru zapojeni do herní smyčky."
|
||||
stack: "Kumulativní zisk hráčů lze zkontrolovat pomocí počtu hráčů na hromádce jako osy Y."
|
||||
howIsItCalculated: "Jak se vypočítává"
|
||||
howIsItCalculatedData: "Graf je generován z údajů o hráči:"
|
||||
options: "Vyberte možnosti pro analýzu různých aspektů udržení hráčů."
|
||||
retentionBasis: "Udržení nových hráčů se vypočítává na základě údajů o relacích. Pokud registrovaný hráč hrál v druhé polovině časového období, je považován za udrženého."
|
||||
testPrompt: "Vyzkoušejte si to:"
|
||||
testResult: "Výsledek testu"
|
||||
threshold: "Prahová hodnota"
|
||||
thresholdUnit: "hodin / týdnů"
|
||||
tips: "Tipy"
|
||||
usingTheGraph: "Použití grafu"
|
||||
hourByHour: "Hodina po hodině"
|
||||
inactive: "Neaktivní"
|
||||
indexInactive: "Neaktivní"
|
||||
indexRegular: "Pravidelný"
|
||||
information: "INFORMACE"
|
||||
insights: "Insights"
|
||||
insights: "Postřehy"
|
||||
insights30days: "Postřehy za 30 dní"
|
||||
irregular: "Nepravidelný"
|
||||
joinAddress: "Join Address"
|
||||
joinAddresses: "Připojovací IP"
|
||||
joinAddress: "Adresa Připojení"
|
||||
joinAddresses: "IP Připojení"
|
||||
kdr: "KDR"
|
||||
killed: "Zabit"
|
||||
last24hours: "Posledních 24 hodin"
|
||||
@ -392,7 +392,7 @@ html:
|
||||
lastConnected: "Poslední připojení"
|
||||
lastPeak: "Naposledy nejvíce hráčů"
|
||||
lastSeen: "Naposledy viděn"
|
||||
latestJoinAddresses: "Latest Join Addresses"
|
||||
latestJoinAddresses: "Poslední adresy pro připojení"
|
||||
length: " Délka"
|
||||
links: "ODKAZY"
|
||||
loadedChunks: "Načtené chunky"
|
||||
@ -401,9 +401,9 @@ html:
|
||||
loneNewbieJoins: "Samotná připojení nováčků"
|
||||
longestSession: "Nejdelší relace"
|
||||
lowTpsSpikes: "Nejnižší TPS"
|
||||
lowTpsSpikes7days: "Low TPS Spikes (7 days)"
|
||||
lowTpsSpikes7days: "Nízké hodnoty TPS (7 dní)"
|
||||
maxFreeDisk: "Max. volného disku"
|
||||
medianSessionLength: "Median Session Length"
|
||||
medianSessionLength: "Medián délky relace"
|
||||
minFreeDisk: "Min. volného disku"
|
||||
mobDeaths: "Smrti způsobené moby"
|
||||
mobKdr: "Mob KDR"
|
||||
@ -419,9 +419,9 @@ html:
|
||||
new: "Nový"
|
||||
newPlayerRetention: "Udržení nových hráčů"
|
||||
newPlayers: "Noví hráči"
|
||||
newPlayers7days: "New Players (7 days)"
|
||||
newPlayers7days: "Noví hráči (7 dní)"
|
||||
nickname: "Přezdívka"
|
||||
noDataToDisplay: "No Data to Display"
|
||||
noDataToDisplay: "Žádná data k zobrazení"
|
||||
now: "Nyní"
|
||||
onlineActivity: "Online aktivita"
|
||||
onlineActivityAsNumbers: "Online aktivita v číslech"
|
||||
@ -437,21 +437,21 @@ html:
|
||||
player: "Hráč"
|
||||
playerDeaths: "Smrti způsobené hráči"
|
||||
playerKills: "Zabití hráči"
|
||||
playerKillsVictimIndicator: "Player was killed within 24h of first time they were seen (Time since registered: <>)."
|
||||
playerKillsVictimIndicator: "Hráč byl zabit do 24 hodin od doby, kdy se poprvé připojil (Čas od registrace): <>)."
|
||||
playerList: "Seznam hráčů"
|
||||
playerOverview: "Přehled hráče"
|
||||
playerPage: "Stránka hráče"
|
||||
playerRetention: "Player Retention"
|
||||
playerRetention: "Udržení hráčů"
|
||||
playerbase: "Hráči"
|
||||
playerbaseDevelopment: "Vývoj aktivity hráčů"
|
||||
playerbaseOverview: "Playerbase Overview"
|
||||
playerbaseOverview: "Přehled hráčské základny"
|
||||
players: "Hráči"
|
||||
playersOnline: "Hráči online"
|
||||
playersOnlineNow: "Players Online (Now)"
|
||||
playersOnlineNow: "Hráči online (Nyní)"
|
||||
playersOnlineOverview: "Přehled online aktivity"
|
||||
playtime: "Herní čas"
|
||||
plugins: "Pluginy"
|
||||
pluginsOverview: "Plugins Overview"
|
||||
pluginsOverview: "Přehled pluginů"
|
||||
punchcard: "Štítky"
|
||||
punchcard30days: "Štítek pro 30 dní"
|
||||
pvpPve: "PvP & PvE"
|
||||
@ -459,7 +459,7 @@ html:
|
||||
query: "Vytvořit dotaz"
|
||||
quickView: "Rychlé zobrazení"
|
||||
ram: "RAM"
|
||||
ramUsage: "RAM Usage"
|
||||
ramUsage: "Využití RAM"
|
||||
recentKills: "Poslední zabití"
|
||||
recentPvpDeaths: "Poslední PvP smrti"
|
||||
recentPvpKills: "Poslední PvP zabití"
|
||||
@ -470,56 +470,56 @@ html:
|
||||
regularPlayers: "Pravidelní hráči"
|
||||
relativeJoinActivity: "Relativní aktivita připojení"
|
||||
retention:
|
||||
groupByNone: "No grouping"
|
||||
groupByTime: "Group registered by"
|
||||
inAnytime: "any time"
|
||||
inLast180d: "in the last 6 months"
|
||||
inLast30d: "in the last 30 days"
|
||||
inLast365d: "in the last 12 months"
|
||||
inLast730d: "in the last 24 months"
|
||||
inLast7d: "in the last 7 days"
|
||||
inLast90d: "in the last 3 months"
|
||||
playersRegisteredInTime: "Players who registered"
|
||||
retainedPlayersPercentage: "Retained Players %"
|
||||
timeSinceRegistered: "Time since register date"
|
||||
timeStep: "Time step"
|
||||
groupByNone: "Žádné seskupení"
|
||||
groupByTime: "Skupina registrovaná"
|
||||
inAnytime: "kdykoli"
|
||||
inLast180d: "za posledních 6 měsíců"
|
||||
inLast30d: "za posledních 30 dní"
|
||||
inLast365d: "za posledních 12 měsících"
|
||||
inLast730d: "za posledních 24 měsícíců"
|
||||
inLast7d: "za posledních 7 dní"
|
||||
inLast90d: "za posledních 90 měsíců"
|
||||
playersRegisteredInTime: "Hráči, kteří se zaregistrovali"
|
||||
retainedPlayersPercentage: "Zadržení hráči %"
|
||||
timeSinceRegistered: "Doba od data registrace"
|
||||
timeStep: "Časový posun"
|
||||
secondDeadliestWeapon: "2. PvP Zbraň"
|
||||
seenNicknames: "Viděné přezdívky"
|
||||
server: "Server"
|
||||
serverAnalysis: "Analýza serveru"
|
||||
serverAsNumberse: "Statistiky serveru"
|
||||
serverCalendar: "Server Calendar"
|
||||
serverDowntime: "Server offline"
|
||||
serverOccupied: "Server plný"
|
||||
serverCalendar: "Kalendář serveru"
|
||||
serverDowntime: "Server je offline"
|
||||
serverOccupied: "Server je plný"
|
||||
serverOverview: "Přehled serveru"
|
||||
serverPage: "Stránka serveru"
|
||||
serverPlaytime: "Herní čas serveru"
|
||||
serverPlaytime30days: "Herní čas serveru za 30 dní"
|
||||
serverSelector: "Server selector"
|
||||
serverSelector: "Výběr serveru"
|
||||
servers: "Servery"
|
||||
serversTitle: "SERVERY"
|
||||
session: "Relace"
|
||||
sessionCalendar: "Session Calendar"
|
||||
sessionCalendar: "Kalendář relací"
|
||||
sessionEnded: " Ukončeno"
|
||||
sessionMedian: "Střední hodnota relací"
|
||||
sessionStart: "Započatá relace"
|
||||
sessions: "Relace"
|
||||
sortBy: "Sort By"
|
||||
stacked: "Stacked"
|
||||
sortBy: "Seřadit podle"
|
||||
stacked: "Zaplnění"
|
||||
themeSelect: "Zvolené téma"
|
||||
thirdDeadliestWeapon: "3. PvP Zbraň"
|
||||
thirtyDays: "30 dní"
|
||||
thirtyDaysAgo: "před 30 dny"
|
||||
time:
|
||||
date: "Date"
|
||||
day: "Day"
|
||||
days: "Days"
|
||||
hours: "Hours"
|
||||
month: "Month"
|
||||
months: "Months"
|
||||
week: "Week"
|
||||
weeks: "Weeks"
|
||||
year: "Year"
|
||||
date: "Datum"
|
||||
day: "Den"
|
||||
days: "Dní"
|
||||
hours: "Hodin"
|
||||
month: "Měsíc"
|
||||
months: "Měsíců"
|
||||
week: "Týden"
|
||||
weeks: "Týdnů"
|
||||
year: "Rok"
|
||||
timesKicked: "Počet vykopnutí"
|
||||
toMainPage: "Zpět na hlavní stránku"
|
||||
total: "Total"
|
||||
@ -528,15 +528,15 @@ html:
|
||||
totalPlayers: "Hráčů celkem"
|
||||
totalPlayersOld: "Celkem hráčů"
|
||||
totalPlaytime: "Herní doba celkem"
|
||||
totalServerDowntime: "Total Server Downtime"
|
||||
totalServerDowntime: "Celková doba vypnutí serveru"
|
||||
tps: "TPS"
|
||||
trend: "Trend"
|
||||
trends30days: "Trendy za 30 dní"
|
||||
uniquePlayers: "Unikátní hráči"
|
||||
uniquePlayers7days: "Unique Players (7 days)"
|
||||
uniquePlayers7days: "Unikátních hráčů (7 dní)"
|
||||
unit:
|
||||
percentage: "Percentage"
|
||||
playerCount: "Player Count"
|
||||
percentage: "Procento"
|
||||
playerCount: "Počet hráčů"
|
||||
veryActive: "Velmi aktivní"
|
||||
weekComparison: "Týdenní srovnání"
|
||||
weekdays: "'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota', 'Neděle'"
|
||||
@ -547,7 +547,7 @@ html:
|
||||
yAxis: "Y Axis"
|
||||
login:
|
||||
failed: "Přihlašování selhalo: "
|
||||
forgotPassword: "Zapomněl jste heslo?"
|
||||
forgotPassword: "Zapomněli jste heslo?"
|
||||
forgotPassword1: "Zapomněl jste heslo? Odregistruj se a registruj se znovu."
|
||||
forgotPassword2: "Pro odstranění aktuálního uživatele použij následující příkaz ve hře:"
|
||||
forgotPassword3: "Nebo použij konzoli:"
|
||||
@ -587,19 +587,19 @@ html:
|
||||
name: "Ban status"
|
||||
banned: "Zabanovaní"
|
||||
country:
|
||||
text: "have joined from country"
|
||||
text: "se připojili ze země"
|
||||
generic:
|
||||
allPlayers: "Všichni hráči"
|
||||
and: "a "
|
||||
start: "hráčů, kteří"
|
||||
hasPlayedOnServers:
|
||||
name: "Has played on one of servers"
|
||||
text: "have played on at least one of"
|
||||
name: "Hrál na jednom ze serverů"
|
||||
text: "hrál alespoň na jednom z"
|
||||
hasPluginBooleanValue:
|
||||
name: "Has plugin boolean value"
|
||||
text: "have Plugin boolean value"
|
||||
name: "Plugin má logickou hodnotu"
|
||||
text: "plugin má logickou hodnotu"
|
||||
joinAddress:
|
||||
text: "joined with address"
|
||||
text: "se připojil za pomoci ip"
|
||||
nonOperators: "Bez OP"
|
||||
notBanned: "Nezabanovaní"
|
||||
operatorStatus:
|
||||
@ -625,10 +625,10 @@ html:
|
||||
from: ">od</label>"
|
||||
makeAnother: "Vytvořit další dotaz"
|
||||
servers:
|
||||
all: "using data of all servers"
|
||||
many: "using data of {number} servers"
|
||||
single: "using data of 1 server"
|
||||
two: "using data of 2 servers"
|
||||
all: "použití dat všech serverů"
|
||||
many: "použít data {number} serverů"
|
||||
single: "použít data 1 serveru"
|
||||
two: "použít data 2 serverů"
|
||||
to: ">do</label>"
|
||||
view: "Zobrazit pohled"
|
||||
performQuery: "Provést dotaz!"
|
||||
@ -692,9 +692,9 @@ plugin:
|
||||
processingComplete: "Zpracování dokončeno."
|
||||
savingSessions: "Ukládání nedokončené relace."
|
||||
savingSessionsTimeout: "Překročen časový limit, ukládánm nedokončené relace pro příští spojení."
|
||||
waitingDb: "Čekání na dokončení dotazu, aby se zabránilo pádu JVM SQLite.."
|
||||
waitingDb: "Čekání na dokončení dotazu, aby se zabránilo pádu JVM SQLite."
|
||||
waitingDbComplete: "Uzavřené připojení SQLite."
|
||||
waitingTransactions: "Čekám na nedokončené transakce, aby nedošlo ke ztrátě dat.."
|
||||
waitingTransactions: "Čekám na nedokončené transakce, aby nedošlo ke ztrátě dat."
|
||||
waitingTransactionsComplete: "Fronta Transakce uzavřena."
|
||||
webserver: "Webserver je již vypnutý."
|
||||
enable:
|
||||
@ -721,9 +721,9 @@ plugin:
|
||||
dbNotifySQLiteWAL: "SQLite WAL mód není podporován na verzi tohoto serveru, používám default. Toto může či nemusí ovlivnit výkon."
|
||||
dbPatchesAlreadyApplied: "Všechny databáze již jsou aktualizovány."
|
||||
dbPatchesApplied: "Všechny databáze byly úspěšně aktualizovány."
|
||||
dbSchemaPatch: "Database: Making sure schema is up to date.."
|
||||
loadedServerInfo: "Server identifier loaded: ${0}"
|
||||
loadingServerInfo: "Loading server identifying information"
|
||||
dbSchemaPatch: "Databáze: Zajištění aktuálnosti schématu.."
|
||||
loadedServerInfo: "Načtený identifikátor serveru: ${0}"
|
||||
loadingServerInfo: "Načítání identifikačních informací serveru"
|
||||
no: "Ne"
|
||||
today: "'Dnes'"
|
||||
unavailable: "Nedostupné"
|
||||
|
@ -5,11 +5,11 @@
|
||||
"private": true,
|
||||
"proxy": "http://localhost:8800",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.3.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.3.0",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.3.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.3.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.3.0",
|
||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.4.0",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.4.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.4.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.4.0",
|
||||
"@fortawesome/react-fontawesome": "^0.2.0",
|
||||
"@fullcalendar/bootstrap": "^5.11.4",
|
||||
"@fullcalendar/daygrid": "^5.11.4",
|
||||
@ -18,13 +18,13 @@
|
||||
"@testing-library/jest-dom": "^5.16.5",
|
||||
"@testing-library/react": "^14.0.0",
|
||||
"@testing-library/user-event": "^14.4.3",
|
||||
"axios": "^1.3.4",
|
||||
"axios": "^1.3.5",
|
||||
"bootstrap": "^5.2.3",
|
||||
"datatables.net": "^1.13.4",
|
||||
"datatables.net-bs5": "^1.13.4",
|
||||
"datatables.net-responsive-bs5": "^2.4.1",
|
||||
"highcharts": "^10.3.3",
|
||||
"i18next": "^22.4.13",
|
||||
"i18next": "^22.4.14",
|
||||
"i18next-chained-backend": "^4.2.0",
|
||||
"i18next-http-backend": "^2.2.0",
|
||||
"i18next-localstorage-backend": "^4.1.0",
|
||||
@ -37,9 +37,9 @@
|
||||
"react-mcjsonchat": "^1.0.0",
|
||||
"react-router-dom": "6",
|
||||
"react-scripts": "5.0.1",
|
||||
"sass": "^1.60.0",
|
||||
"sass": "^1.61.0",
|
||||
"source-map-explorer": "^2.5.2",
|
||||
"swagger-ui": "^4.18.1",
|
||||
"swagger-ui": "^4.18.2",
|
||||
"web-vitals": "^3.0.2"
|
||||
},
|
||||
"scripts": {
|
||||
|
@ -49,7 +49,6 @@ const Accordion = ({headers, slices, open, style}) => {
|
||||
}
|
||||
|
||||
const width = headers.length;
|
||||
|
||||
return (
|
||||
<table className={"table accordion-striped" + (nightModeEnabled ? " table-dark" : '')} id="tableAccordion"
|
||||
style={style}>
|
||||
|
@ -48,7 +48,8 @@ const QueryPath = () => {
|
||||
|
||||
return (
|
||||
<aside id={"result-path"} className={"alert shadow " + (hasResults ? "alert-success" : "alert-warning")}>
|
||||
{path.map((step, i) => <p key={i} style={{marginBottom: 0, marginLeft: i * 0.7 + "rem"}}>
|
||||
{path.map((step, i) => <p key={step.kind + step.size}
|
||||
style={{marginBottom: 0, marginLeft: i * 0.7 + "rem"}}>
|
||||
<FontAwesomeIcon
|
||||
icon={faFilter}/> '{getReadableFilterName(step.kind)}' matched {step.size} players
|
||||
</p>)}
|
||||
|
@ -1,11 +1,11 @@
|
||||
import React, {useEffect, useState} from 'react';
|
||||
import {Transition} from 'react-transition-group';
|
||||
|
||||
const reduceAnimations = window.matchMedia(`(prefers-reduced-motion: reduce)`) === true;
|
||||
const defaultDuration = 250;
|
||||
|
||||
const LoadIn = ({children, duration}) => {
|
||||
if (!duration) duration = defaultDuration;
|
||||
const reduceAnimations = window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;
|
||||
|
||||
const defaultStyle = reduceAnimations ? {
|
||||
transition: `opacity ${duration}ms ease-in-out`,
|
||||
|
@ -22,8 +22,8 @@ const ProjectionDropDown = ({projection, setProjection}) => {
|
||||
|
||||
<Dropdown.Menu>
|
||||
<h6 className="dropdown-header">{t('html.label.geoProjection.dropdown')}</h6>
|
||||
{projectionOptions.map((option, i) => (
|
||||
<Dropdown.Item key={i} onClick={() => setProjection(option)}>
|
||||
{projectionOptions.map(option => (
|
||||
<Dropdown.Item key={option} onClick={() => setProjection(option)}>
|
||||
{t(option)}
|
||||
</Dropdown.Item>
|
||||
))}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React from 'react';
|
||||
import React, {useEffect, useMemo, useState} from 'react';
|
||||
import CardTabs from "../../CardTabs";
|
||||
import {
|
||||
faDragon,
|
||||
@ -39,41 +39,7 @@ const PerformanceGraphsCard = ({data}) => {
|
||||
const {t} = useTranslation();
|
||||
const {networkMetadata} = useMetadata();
|
||||
|
||||
if (!data || !Object.values(data).length) return <CardLoader/>
|
||||
|
||||
const zones = {
|
||||
tps: [{
|
||||
value: data.zones.tpsThresholdMed,
|
||||
color: data.colors.low
|
||||
}, {
|
||||
value: data.zones.tpsThresholdHigh,
|
||||
color: data.colors.med
|
||||
}, {
|
||||
value: 30,
|
||||
color: data.colors.high
|
||||
}],
|
||||
disk: [{
|
||||
value: data.zones.diskThresholdMed,
|
||||
color: data.colors.low
|
||||
}, {
|
||||
value: data.zones.diskThresholdHigh,
|
||||
color: data.colors.med
|
||||
}, {
|
||||
value: Number.MAX_VALUE,
|
||||
color: data.colors.high
|
||||
}]
|
||||
};
|
||||
const serverData = [];
|
||||
for (let i = 0; i < data.servers.length; i++) {
|
||||
const server = data.servers[i];
|
||||
const values = data.values[i];
|
||||
serverData.push({
|
||||
serverName: server.serverName,
|
||||
values
|
||||
});
|
||||
}
|
||||
|
||||
const series = {
|
||||
const [performanceSeries, setPerformanceSeries] = useState({
|
||||
players: [],
|
||||
tps: [],
|
||||
cpu: [],
|
||||
@ -81,75 +47,148 @@ const PerformanceGraphsCard = ({data}) => {
|
||||
entities: [],
|
||||
chunks: [],
|
||||
disk: []
|
||||
}
|
||||
});
|
||||
|
||||
const spline = 'spline';
|
||||
useEffect(() => {
|
||||
if (!data?.zones) return;
|
||||
|
||||
for (const server of serverData) {
|
||||
series.players.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.playersOnline, color: data.colors.playersOnline, yAxis: 0
|
||||
});
|
||||
series.tps.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.twoDecimals,
|
||||
data: server.values.tps, color: data.colors.high, zones: zones.tps, yAxis: 0
|
||||
});
|
||||
series.cpu.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.twoDecimals,
|
||||
data: server.values.cpu, color: data.colors.cpu, yAxis: 0
|
||||
});
|
||||
series.ram.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.ram, color: data.colors.ram, yAxis: 0
|
||||
});
|
||||
series.entities.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.entities, color: data.colors.entities, yAxis: 0
|
||||
});
|
||||
series.chunks.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.chunks, color: data.colors.chunks, yAxis: 0
|
||||
});
|
||||
series.disk.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.disk, color: data.colors.high, zones: zones.disk, yAxis: 0
|
||||
});
|
||||
}
|
||||
const zones = {
|
||||
tps: [{
|
||||
value: data.zones.tpsThresholdMed,
|
||||
color: data.colors.low
|
||||
}, {
|
||||
value: data.zones.tpsThresholdHigh,
|
||||
color: data.colors.med
|
||||
}, {
|
||||
value: 30,
|
||||
color: data.colors.high
|
||||
}],
|
||||
disk: [{
|
||||
value: data.zones.diskThresholdMed,
|
||||
color: data.colors.low
|
||||
}, {
|
||||
value: data.zones.diskThresholdHigh,
|
||||
color: data.colors.med
|
||||
}, {
|
||||
value: Number.MAX_VALUE,
|
||||
color: data.colors.high
|
||||
}]
|
||||
};
|
||||
|
||||
const serverData = [];
|
||||
for (let i = 0; i < data.servers.length; i++) {
|
||||
const server = data.servers[i];
|
||||
const values = data.values[i];
|
||||
serverData.push({
|
||||
serverName: server.serverName,
|
||||
values
|
||||
});
|
||||
}
|
||||
|
||||
const series = {
|
||||
players: [],
|
||||
tps: [],
|
||||
cpu: [],
|
||||
ram: [],
|
||||
entities: [],
|
||||
chunks: [],
|
||||
disk: []
|
||||
}
|
||||
|
||||
const spline = 'spline';
|
||||
|
||||
const changeColor = (colorHex, index) => {
|
||||
// TODO Convert color somehow using index
|
||||
return colorHex;
|
||||
}
|
||||
|
||||
const minuteResolution = point => {
|
||||
// Ensure that the points can be stacked by moving data to minute level
|
||||
point[0] -= (point[0] % 60000);
|
||||
return point;
|
||||
}
|
||||
|
||||
serverData.forEach((server, i) => {
|
||||
const playersOnlineColor = changeColor(data.colors.playersOnline, i);
|
||||
const tpsColor = changeColor(data.colors.high, i);
|
||||
const tpsZone = [...zones.tps]
|
||||
tpsZone.forEach(zone => zone.color = changeColor(zone.color, i));
|
||||
const cpuColor = changeColor(data.colors.cpu, i);
|
||||
const ramColors = changeColor(data.colors.ram, i);
|
||||
const entitiesColor = changeColor(data.colors.entities, i);
|
||||
const chunksColor = changeColor(data.colors.chunks, i);
|
||||
const diskColor = changeColor(data.colors.high, i);
|
||||
const diskZones = [...zones.disk];
|
||||
diskZones.forEach(zone => zone.color = changeColor(zone.color, i));
|
||||
|
||||
series.players.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.playersOnline.map(minuteResolution), color: playersOnlineColor, yAxis: 0
|
||||
});
|
||||
series.tps.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.twoDecimals,
|
||||
data: server.values.tps.map(minuteResolution), color: tpsColor, zones: tpsZone, yAxis: 0
|
||||
});
|
||||
series.cpu.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.twoDecimals,
|
||||
data: server.values.cpu.map(minuteResolution), color: cpuColor, yAxis: 0
|
||||
});
|
||||
series.ram.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.ram.map(minuteResolution), color: ramColors, yAxis: 0
|
||||
});
|
||||
series.entities.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.entities.map(minuteResolution), color: entitiesColor, yAxis: 0
|
||||
});
|
||||
series.chunks.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.chunks.map(minuteResolution), color: chunksColor, yAxis: 0
|
||||
});
|
||||
series.disk.push({
|
||||
name: server.serverName, type: spline, tooltip: tooltip.zeroDecimals,
|
||||
data: server.values.disk.map(minuteResolution), color: diskColor, zones: diskZones, yAxis: 0
|
||||
});
|
||||
});
|
||||
setPerformanceSeries(series);
|
||||
}, [data, setPerformanceSeries])
|
||||
|
||||
const tabs = useMemo(() => [
|
||||
{
|
||||
name: t('html.label.playersOnline'), icon: faUser, color: 'light-blue', href: 'players-online',
|
||||
element: <Tab data={performanceSeries.players} yAxis={yAxisConfigurations.PLAYERS_ONLINE}/>
|
||||
}, {
|
||||
name: t('html.label.tps'), icon: faTachometerAlt, color: 'red', href: 'tps',
|
||||
element: <Tab data={performanceSeries.tps} yAxis={yAxisConfigurations.TPS}/>
|
||||
}, {
|
||||
name: t('html.label.cpu'), icon: faTachometerAlt, color: 'amber', href: 'cpu',
|
||||
element: <Tab data={performanceSeries.cpu} yAxis={yAxisConfigurations.CPU}/>
|
||||
}, {
|
||||
name: t('html.label.ram'), icon: faMicrochip, color: 'light-green', href: 'ram',
|
||||
element: <Tab data={performanceSeries.ram} yAxis={yAxisConfigurations.RAM_OR_DISK}/>
|
||||
}, {
|
||||
name: t('html.label.entities'), icon: faDragon, color: 'purple', href: 'entities',
|
||||
element: <Tab data={performanceSeries.entities} yAxis={yAxisConfigurations.ENTITIES}/>
|
||||
}, {
|
||||
name: t('html.label.loadedChunks'), icon: faMap, color: 'blue-grey', href: 'chunks',
|
||||
element: <Tab data={performanceSeries.chunks} yAxis={yAxisConfigurations.CHUNKS}/>
|
||||
}, {
|
||||
name: t('html.label.diskSpace'), icon: faHdd, color: 'green', href: 'disk',
|
||||
element: <Tab data={performanceSeries.disk} yAxis={yAxisConfigurations.RAM_OR_DISK}/>
|
||||
}, {
|
||||
name: t('html.label.ping'), icon: faSignal, color: 'amber', href: 'ping',
|
||||
element: networkMetadata ? <PingTab identifier={networkMetadata.currentServer.serverUUID}/> :
|
||||
<ChartLoader/>
|
||||
},
|
||||
], [performanceSeries, networkMetadata, t]);
|
||||
|
||||
if (!data || !Object.values(data).length) return <CardLoader/>
|
||||
if (data.errors.length) {
|
||||
return <ErrorViewCard error={data.errors[0]}/>
|
||||
}
|
||||
|
||||
return (
|
||||
<Card>
|
||||
<CardTabs tabs={[
|
||||
{
|
||||
name: t('html.label.playersOnline'), icon: faUser, color: 'light-blue', href: 'players-online',
|
||||
element: <Tab data={series.players} yAxis={yAxisConfigurations.PLAYERS_ONLINE}/>
|
||||
}, {
|
||||
name: t('html.label.tps'), icon: faTachometerAlt, color: 'red', href: 'tps',
|
||||
element: <Tab data={series.tps} yAxis={yAxisConfigurations.TPS}/>
|
||||
}, {
|
||||
name: t('html.label.cpu'), icon: faTachometerAlt, color: 'amber', href: 'cpu',
|
||||
element: <Tab data={series.cpu} yAxis={yAxisConfigurations.CPU}/>
|
||||
}, {
|
||||
name: t('html.label.ram'), icon: faMicrochip, color: 'light-green', href: 'ram',
|
||||
element: <Tab data={series.ram} yAxis={yAxisConfigurations.RAM_OR_DISK}/>
|
||||
}, {
|
||||
name: t('html.label.entities'), icon: faDragon, color: 'purple', href: 'entities',
|
||||
element: <Tab data={series.entities} yAxis={yAxisConfigurations.ENTITIES}/>
|
||||
}, {
|
||||
name: t('html.label.loadedChunks'), icon: faMap, color: 'blue-grey', href: 'chunks',
|
||||
element: <Tab data={series.chunks} yAxis={yAxisConfigurations.CHUNKS}/>
|
||||
}, {
|
||||
name: t('html.label.diskSpace'), icon: faHdd, color: 'green', href: 'disk',
|
||||
element: <Tab data={series.disk} yAxis={yAxisConfigurations.RAM_OR_DISK}/>
|
||||
}, {
|
||||
name: t('html.label.ping'), icon: faSignal, color: 'amber', href: 'ping',
|
||||
element: networkMetadata ? <PingTab identifier={networkMetadata.currentServer.serverUUID}/> :
|
||||
<ChartLoader/>
|
||||
},
|
||||
]}/>
|
||||
<CardTabs tabs={tabs}/>
|
||||
</Card>
|
||||
)
|
||||
};
|
||||
|
@ -23,8 +23,8 @@ const SortDropDown = ({sortBy, sortReversed, setSortBy}) => {
|
||||
|
||||
<Dropdown.Menu>
|
||||
<h6 className="dropdown-header">{t('html.label.sortBy')}</h6>
|
||||
{sortOptions.map((option, i) => (
|
||||
<Dropdown.Item key={i} onClick={() => setSortBy(option)}>
|
||||
{sortOptions.map(option => (
|
||||
<Dropdown.Item key={option} onClick={() => setSortBy(option)}>
|
||||
{t(option.label)}
|
||||
</Dropdown.Item>
|
||||
))}
|
||||
|
@ -27,7 +27,7 @@ const NicknamesCard = ({player}) => {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{player.nicknames.map((nickname, i) => (<tr key={'nick-' + i}>
|
||||
{player.nicknames.map(nickname => (<tr key={JSON.stringify(nickname)}>
|
||||
<td dangerouslySetInnerHTML={{__html: nickname.nickname}}/>
|
||||
<td>{nickname.server}</td>
|
||||
<td>{nickname.date}</td>
|
||||
|
@ -51,8 +51,8 @@ const FilterDropdown = ({filterOptions, filters, setFilters}) => {
|
||||
<Dropdown.Menu popperConfig={{strategy: "absolute"}}>
|
||||
<h6 className="dropdown-header">{t('html.query.filters.add')}</h6>
|
||||
<Scrollable>
|
||||
{filterOptions.map((option, i) => (
|
||||
<Dropdown.Item key={i} onClick={() => addFilter(option)}>
|
||||
{filterOptions.map(option => (
|
||||
<Dropdown.Item key={option} onClick={() => addFilter(option)}>
|
||||
{getReadableFilterName(option)}
|
||||
</Dropdown.Item>
|
||||
))}
|
||||
|
@ -29,7 +29,7 @@ const FilterList = ({filters, setFilters, setAsInvalid, setAsValid}) => {
|
||||
|
||||
return (
|
||||
<ul id={"filters"} className={"filters"}>
|
||||
{filters.map((filter, i) => <li key={i} className={"filter"}>
|
||||
{filters.map((filter, i) => <li key={JSON.stringify(filter)} className={"filter"}>
|
||||
<Filter filter={filter} index={i}
|
||||
setFilterOptions={newOptions => updateFilterOptions(i, newOptions)}
|
||||
removeFilter={() => removeFilter(i)}
|
||||
|
@ -10,15 +10,34 @@ import {ChartLoader} from "../../../navigation/Loader";
|
||||
import TimeByTimeGraph from "../../../graphs/TimeByTimeGraph";
|
||||
import PlayersOnlineGraph from "../../../graphs/PlayersOnlineGraph";
|
||||
import {useMetadata} from "../../../../hooks/metadataHook";
|
||||
import StackedPlayersOnlineGraph from "../../../graphs/StackedPlayersOnlineGraph";
|
||||
|
||||
const PlayersOnlineTab = () => {
|
||||
const {serverUUID} = useMetadata();
|
||||
const SingleProxyPlayersOnlineGraph = ({serverUUID}) => {
|
||||
const {data, loadingError} = useDataRequest(fetchPlayersOnlineGraph, [serverUUID]);
|
||||
|
||||
if (loadingError) return <ErrorViewBody error={loadingError}/>
|
||||
if (!serverUUID || !data) return <ChartLoader/>;
|
||||
|
||||
return <PlayersOnlineGraph data={data}/>
|
||||
}
|
||||
|
||||
const MultiProxyPlayersOnlineGraph = () => {
|
||||
const {data, loadingError} = useDataRequest(fetchPlayersOnlineGraph, []);
|
||||
|
||||
if (loadingError) return <ErrorViewBody error={loadingError}/>
|
||||
if (!data) return <ChartLoader/>;
|
||||
|
||||
return <PlayersOnlineGraph data={data}/>
|
||||
return <StackedPlayersOnlineGraph data={data}/>
|
||||
}
|
||||
|
||||
const PlayersOnlineTab = () => {
|
||||
const {serverUUID, networkMetadata} = useMetadata();
|
||||
|
||||
if (networkMetadata.usingRedisBungee || networkMetadata.servers.filter(server => server.proxy).length === 1) {
|
||||
return <SingleProxyPlayersOnlineGraph serverUUID={serverUUID}/>
|
||||
} else {
|
||||
return <MultiProxyPlayersOnlineGraph/>
|
||||
}
|
||||
}
|
||||
|
||||
const DayByDayTab = () => {
|
||||
|
@ -3,12 +3,24 @@ import PerformanceAsNumbersTable from "../../../table/PerformanceAsNumbersTable"
|
||||
import CardHeader from "../../CardHeader";
|
||||
import {faBookOpen} from "@fortawesome/free-solid-svg-icons";
|
||||
import {Card} from "react-bootstrap";
|
||||
import {useTranslation} from "react-i18next";
|
||||
|
||||
const PerformanceAsNumbersCard = ({data, servers}) => {
|
||||
const {t} = useTranslation();
|
||||
const noData24h = data && "Unavailable" === data.cpu_24h;
|
||||
const noData7d = data && "Unavailable" === data.cpu_7d;
|
||||
const noData30d = data && "Unavailable" === data.cpu_30d;
|
||||
|
||||
const noDataAlert = noData30d ? <p className={"alert alert-warning mb-0"}>{t('html.description.noData30d')}</p>
|
||||
: (noData7d ? <p className={"alert alert-warning mb-0"}>{t('html.description.noData7d')}</p>
|
||||
: (noData24h ? <p className={"alert alert-warning mb-0"}>{t('html.description.noData24h')}</p>
|
||||
: ''));
|
||||
|
||||
const PerformanceAsNumbersCard = ({data}) => {
|
||||
return (
|
||||
<Card>
|
||||
<CardHeader icon={faBookOpen} color="blue-grey" label={'html.label.performanceAsNumbers'}/>
|
||||
<PerformanceAsNumbersTable data={data}/>
|
||||
{noDataAlert}
|
||||
<PerformanceAsNumbersTable data={data} servers={servers}/>
|
||||
</Card>
|
||||
)
|
||||
};
|
||||
|
@ -23,28 +23,36 @@ const PlayerbaseTrendsCard = ({data}) => {
|
||||
headers={[t('html.label.thirtyDaysAgo'), t('html.label.now'), t('html.label.trend')]}>
|
||||
<TableRow icon={faUsers} color="black" text={t('html.label.totalPlayers')}
|
||||
values={[data.total_players_then, data.total_players_now,
|
||||
<BigTrend trend={data.total_players_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.total_players_trend)}
|
||||
trend={data.total_players_trend}/>]}/>
|
||||
<TableRow icon={faUsers} color="lime" text={t('html.label.regularPlayers')}
|
||||
values={[data.regular_players_then, data.regular_players_now,
|
||||
<BigTrend trend={data.regular_players_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.regular_players_trend)}
|
||||
trend={data.regular_players_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="green"
|
||||
text={t('html.label.averagePlaytime') + ' ' + t('html.label.perPlayer')}
|
||||
values={[data.playtime_avg_then, data.playtime_avg_now,
|
||||
<BigTrend trend={data.playtime_avg_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.total_players_trend)}
|
||||
trend={data.playtime_avg_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="gray" text={t('html.label.afk') + ' ' + t('html.label.perPlayer')}
|
||||
values={[data.afk_then, data.afk_now, <BigTrend trend={data.afk_trend}/>]}/>
|
||||
values={[data.afk_then, data.afk_now,
|
||||
<BigTrend key={JSON.stringify(data.afk_trend)}
|
||||
trend={data.afk_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="green"
|
||||
text={t('html.label.averagePlaytime') + ' ' + t('html.label.perRegularPlayer')}
|
||||
values={[data.regular_playtime_avg_then, data.regular_playtime_avg_now,
|
||||
<BigTrend trend={data.regular_playtime_avg_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.regular_playtime_avg_trend)}
|
||||
trend={data.regular_playtime_avg_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="teal"
|
||||
text={t('html.label.averageSessionLength') + ' ' + t('html.label.perRegularPlayer')}
|
||||
values={[data.regular_session_avg_then, data.regular_session_avg_now,
|
||||
<BigTrend trend={data.regular_session_avg_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.regular_session_avg_trend)}
|
||||
trend={data.regular_session_avg_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="gray"
|
||||
text={t('html.label.afk') + ' ' + t('html.label.perRegularPlayer')}
|
||||
values={[data.regular_afk_avg_then, data.regular_afk_avg_now,
|
||||
<BigTrend trend={data.regular_afk_avg_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.regular_afk_avg_trend)}
|
||||
trend={data.regular_afk_avg_trend}/>]}/>
|
||||
</ComparisonTable>
|
||||
</Card>
|
||||
)
|
||||
|
@ -22,30 +22,43 @@ const ServerWeekComparisonCard = ({data}) => {
|
||||
<ComparisonTable comparisonHeader={t('html.label.comparing7days')}
|
||||
headers={[data.start + ' - ' + data.midpoint, data.midpoint + ' - ' + data.end, t('html.label.trend')]}>
|
||||
<TableRow icon={faUsers} color="blue" text={t('html.label.uniquePlayers')}
|
||||
values={[data.unique_before, data.unique_after, <BigTrend trend={data.unique_trend}/>]}/>
|
||||
values={[data.unique_before, data.unique_after,
|
||||
<BigTrend key={JSON.stringify(data.unique_trend)}
|
||||
trend={data.unique_trend}/>]}/>
|
||||
<TableRow icon={faUsers} color="light-green" text={t('html.label.newPlayers')}
|
||||
values={[data.new_before, data.new_after, <BigTrend trend={data.new_trend}/>]}/>
|
||||
values={[data.new_before, data.new_after,
|
||||
<BigTrend key={JSON.stringify(data.new_trend)}
|
||||
trend={data.new_trend}/>]}/>
|
||||
<TableRow icon={faUsers} color="lime" text={t('html.label.regularPlayers')}
|
||||
values={[data.regular_before, data.regular_after, <BigTrend trend={data.regular_trend}/>]}/>
|
||||
values={[data.regular_before, data.regular_after,
|
||||
<BigTrend key={JSON.stringify(data.regular_trend)}
|
||||
trend={data.regular_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="green"
|
||||
text={t('html.label.averagePlaytime') + ' ' + t('html.label.perPlayer')}
|
||||
values={[data.average_playtime_before, data.average_playtime_after,
|
||||
<BigTrend trend={data.average_playtime_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.average_playtime_trend)}
|
||||
trend={data.average_playtime_trend}/>]}/>
|
||||
<TableRow icon={faClock} color="teal"
|
||||
text={t('html.label.averageSessionLength')}
|
||||
values={[data.session_length_average_before, data.session_length_average_after,
|
||||
<BigTrend trend={data.session_length_average_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.session_length_average_trend)}
|
||||
trend={data.session_length_average_trend}/>]}/>
|
||||
<TableRow icon={faCalendarCheck} color="teal" text={t('html.label.sessions')}
|
||||
values={[data.sessions_before, data.sessions_after,
|
||||
<BigTrend trend={data.sessions_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.sessions_trend)}
|
||||
trend={data.sessions_trend}/>]}/>
|
||||
<TableRow icon={faCrosshairs} color="red" text={t('html.label.playerKills')}
|
||||
values={[data.player_kills_before, data.player_kills_after,
|
||||
<BigTrend trend={data.player_kills_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.player_kills_trend)}
|
||||
trend={data.player_kills_trend}/>]}/>
|
||||
<TableRow icon={faCrosshairs} color="green" text={t('html.label.mobKills')}
|
||||
values={[data.mob_kills_before, data.mob_kills_after,
|
||||
<BigTrend trend={data.mob_kills_trend}/>]}/>
|
||||
<BigTrend key={JSON.stringify(data.mob_kills_trend)}
|
||||
trend={data.mob_kills_trend}/>]}/>
|
||||
<TableRow icon={faSkull} color="black" text={t('html.label.deaths')}
|
||||
values={[data.deaths_before, data.deaths_after, <BigTrend trend={data.deaths_trend}/>]}/>
|
||||
values={[data.deaths_before, data.deaths_after,
|
||||
<BigTrend key={JSON.stringify(data.deaths_trend)}
|
||||
trend={data.deaths_trend}/>]}/>
|
||||
</ComparisonTable>
|
||||
</Card>
|
||||
)
|
||||
|
@ -15,17 +15,21 @@ import {faCalendarCheck, faClock} from "@fortawesome/free-regular-svg-icons";
|
||||
import React from "react";
|
||||
import {CardLoader} from "../../../navigation/Loader";
|
||||
import ExtendableCardBody from "../../../layout/extension/ExtendableCardBody";
|
||||
import {useMetadata} from "../../../../hooks/metadataHook";
|
||||
|
||||
const ServerAsNumbersCard = ({data}) => {
|
||||
const {t} = useTranslation();
|
||||
const {networkMetadata} = useMetadata();
|
||||
|
||||
if (!data) return <CardLoader/>;
|
||||
if (!data || !networkMetadata) return <CardLoader/>;
|
||||
|
||||
const isGameServer = data.player_kills !== undefined;
|
||||
const showPeaks = isGameServer || networkMetadata.usingRedisBungee || networkMetadata.servers.filter(server => server.proxy).length === 1;
|
||||
return (
|
||||
<Card>
|
||||
<Card.Header>
|
||||
<h6 className="col-black">
|
||||
<Fa icon={faBookOpen}/> {data.player_kills !== undefined ? t('html.label.serverAsNumberse') : t('html.label.networkAsNumbers')}
|
||||
<Fa icon={faBookOpen}/> {isGameServer ? t('html.label.serverAsNumberse') : t('html.label.networkAsNumbers')}
|
||||
</h6>
|
||||
</Card.Header>
|
||||
<ExtendableCardBody
|
||||
@ -43,13 +47,15 @@ const ServerAsNumbersCard = ({data}) => {
|
||||
<Datapoint name={t('html.label.playersOnline')}
|
||||
color={'blue'} icon={faUser}
|
||||
value={data.online_players} bold/>
|
||||
<hr/>
|
||||
<Datapoint name={t('html.label.lastPeak') + ' (' + data.last_peak_date + ')'}
|
||||
color={'blue'} icon={faChartLine}
|
||||
value={data.last_peak_players} valueLabel={t('html.unit.players')} bold/>
|
||||
<Datapoint name={t('html.label.bestPeak') + ' (' + data.best_peak_date + ')'}
|
||||
color={'light-green'} icon={faChartLine}
|
||||
value={data.best_peak_players} valueLabel={t('html.unit.players')} bold/>
|
||||
{showPeaks && <>
|
||||
<hr/>
|
||||
<Datapoint name={t('html.label.lastPeak') + ' (' + data.last_peak_date + ')'}
|
||||
color={'blue'} icon={faChartLine}
|
||||
value={data.last_peak_players} valueLabel={t('html.unit.players')} bold/>
|
||||
<Datapoint name={t('html.label.bestPeak') + ' (' + data.best_peak_date + ')'}
|
||||
color={'light-green'} icon={faChartLine}
|
||||
value={data.best_peak_players} valueLabel={t('html.unit.players')} bold/>
|
||||
</>}
|
||||
<hr/>
|
||||
<Datapoint name={t('html.label.totalPlaytime')}
|
||||
color={'green'} icon={faClock}
|
||||
|
@ -96,7 +96,8 @@ const ExtensionCard = ({extension}) => {
|
||||
</Card.Header>
|
||||
<ul className="nav nav-tabs tab-nav-right" role="tablist">
|
||||
{extension.onlyGenericTab ? '' :
|
||||
extension.tabs.map((tab, i) => <li key={i} role="presentation" className="nav-item col-black">
|
||||
extension.tabs.map((tab, i) => <li key={JSON.stringify(tab)} role="presentation"
|
||||
className="nav-item col-black">
|
||||
<button className={"nav-link col-black"
|
||||
+ (openTabIndex === i ? ' active' : '')} onClick={() => toggleTabIndex(i)}>
|
||||
<ExtensionIcon icon={tab.tabInformation.icon}/> {tab.tabInformation.tabName}
|
||||
|
@ -0,0 +1,73 @@
|
||||
import React, {useEffect, useState} from "react";
|
||||
import {useTranslation} from "react-i18next";
|
||||
import {linegraphButtons, tooltip} from "../../util/graphs";
|
||||
import LineGraph from './LineGraph'
|
||||
import {ChartLoader} from "../navigation/Loader";
|
||||
import {useTheme} from "../../hooks/themeHook";
|
||||
|
||||
const StackedPlayersOnlineGraph = ({data}) => {
|
||||
const {t} = useTranslation();
|
||||
const {nightModeEnabled} = useTheme();
|
||||
const [graphOptions, setGraphOptions] = useState({title: {text: ''},});
|
||||
|
||||
useEffect(() => {
|
||||
if (!data) return;
|
||||
const playersOnlineSeries = data.graphs.map(graph => {
|
||||
return {
|
||||
name: t('html.label.playersOnline') + ' (' + graph.server.serverName + ')',
|
||||
type: 'areaspline',
|
||||
tooltip: tooltip.zeroDecimals,
|
||||
data: graph.points.map(point => {
|
||||
// Ensure that the points can be stacked by moving data to minute level
|
||||
point[0] -= (point[0] % 60000);
|
||||
return point;
|
||||
}),
|
||||
color: data.color,
|
||||
yAxis: 0
|
||||
}
|
||||
});
|
||||
setGraphOptions({
|
||||
title: {text: ''},
|
||||
rangeSelector: {
|
||||
selected: 2,
|
||||
buttons: linegraphButtons
|
||||
},
|
||||
chart: {
|
||||
zooming: {
|
||||
type: 'xy'
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
areaspline: {
|
||||
fillOpacity: nightModeEnabled ? 0.2 : 0.4,
|
||||
stacking: 'normal'
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
enabled: true,
|
||||
},
|
||||
xAxis: {
|
||||
zoomEnabled: true,
|
||||
title: {
|
||||
enabled: false
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
zoomEnabled: true,
|
||||
title: {text: t('html.label.players')},
|
||||
softMax: 2,
|
||||
min: 0
|
||||
},
|
||||
series: playersOnlineSeries
|
||||
})
|
||||
}, [data, nightModeEnabled, t])
|
||||
|
||||
if (!data) return <ChartLoader/>;
|
||||
|
||||
return (
|
||||
<LineGraph id="stacked-players-online-graph"
|
||||
options={graphOptions}/>
|
||||
)
|
||||
}
|
||||
|
||||
export default StackedPlayersOnlineGraph
|
@ -13,7 +13,7 @@ const MultiSelect = ({options, selectedIndexes, setSelectedIndexes}) => {
|
||||
onChange={handleChange}>
|
||||
{options.map((option, i) => {
|
||||
return (
|
||||
<option key={i} value={selectedIndexes.includes(i)}
|
||||
<option key={JSON.stringify(option)} value={selectedIndexes.includes(i)}
|
||||
selected={selectedIndexes.includes(i)}>{option}</option>
|
||||
)
|
||||
})}
|
||||
|
@ -58,7 +58,7 @@ const getContributionIcon = (type) => {
|
||||
|
||||
const Contributor = ({contributor}) => {
|
||||
const icons = contributor.contributed.map(
|
||||
(type, i) => <Fa key={i} icon={["fa", getContributionIcon(type)]}/>);
|
||||
type => <Fa key={"" + type} icon={["fa", getContributionIcon(type)]}/>);
|
||||
return (
|
||||
<li className="contributor">{contributor.name} {icons} </li>
|
||||
)
|
||||
@ -78,7 +78,7 @@ const Contributions = () => {
|
||||
<p>In addition following <span className="col-theme">awesome people</span> have
|
||||
contributed:</p>
|
||||
<ul className="row contributors">
|
||||
{contributors.map((contributor, i) => <Contributor key={i} contributor={contributor}/>)}
|
||||
{contributors.map((contributor, i) => <Contributor key={contributor.name} contributor={contributor}/>)}
|
||||
<li>{t('html.modal.info.contributors.bugreporters')}</li>
|
||||
</ul>
|
||||
<small>
|
||||
|
@ -22,8 +22,8 @@ const LanguageSelector = () => {
|
||||
className="form-select form-select-sm"
|
||||
id="langSelector"
|
||||
defaultValue={localeService.clientLocale}>
|
||||
{languages.map((lang, i) =>
|
||||
<option key={i} value={lang.name}>{lang.displayName}</option>)}
|
||||
{languages.map(lang =>
|
||||
<option key={lang.name} value={lang.name}>{lang.displayName}</option>)}
|
||||
</select>
|
||||
)
|
||||
}
|
||||
|
@ -80,7 +80,13 @@ const MainPageRedirect = () => {
|
||||
};
|
||||
|
||||
if (authRequired && !loggedIn) {
|
||||
return (<Navigate to="/login" replace={true}/>)
|
||||
if (!window.location.pathname.startsWith("/login")) {
|
||||
return (<Navigate
|
||||
to={"/login?from=" + encodeURIComponent(window.location.pathname + window.location.search + window.location.hash)}
|
||||
replace={true}/>)
|
||||
} else {
|
||||
return (<Navigate to="/login" replace={true}/>)
|
||||
}
|
||||
} else if (authRequired && loggedIn) {
|
||||
return redirectBasedOnPermissions();
|
||||
} else {
|
||||
|
@ -150,8 +150,8 @@ const SidebarCollapse = ({item, open, setOpen, collapseSidebar}) => {
|
||||
<div className="bg-white py-2 collapse-inner rounded">
|
||||
{item.contents
|
||||
.filter(content => content !== undefined)
|
||||
.map((content, i) =>
|
||||
<Item key={i}
|
||||
.map(content =>
|
||||
<Item key={JSON.stringify(content)}
|
||||
inner
|
||||
active={false}
|
||||
item={content}
|
||||
|
@ -30,7 +30,7 @@ const GroupTable = ({groups, colors}) => {
|
||||
<table className={"table mb-0" + (nightModeEnabled ? " table-dark" : '')}>
|
||||
<tbody>
|
||||
{groups.length ? groups.map((group, i) =>
|
||||
<GroupRow key={i}
|
||||
<GroupRow key={group.name}
|
||||
group={group}
|
||||
color={getColor(i)}/>) :
|
||||
<tr>
|
||||
|
@ -12,14 +12,20 @@ import {
|
||||
import React from "react";
|
||||
import {TableRow} from "./TableRow";
|
||||
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
|
||||
import {faEye} from "@fortawesome/free-regular-svg-icons";
|
||||
import {faEye, faQuestionCircle} from "@fortawesome/free-regular-svg-icons";
|
||||
import AsNumbersTable from "./AsNumbersTable";
|
||||
import {ChartLoader} from "../navigation/Loader";
|
||||
|
||||
const PerformanceAsNumbersTable = ({data}) => {
|
||||
const PerformanceAsNumbersTable = ({data, servers}) => {
|
||||
const {t} = useTranslation();
|
||||
if (!data) return <ChartLoader/>;
|
||||
|
||||
const dataIncludesGameServers = servers && Boolean(servers.filter(server => !server.proxy).length);
|
||||
const noTPSOnProxies = !servers || dataIncludesGameServers
|
||||
? ''
|
||||
: <Fa icon={faQuestionCircle}
|
||||
title={t('html.description.performanceNoGameServers')}/>;
|
||||
|
||||
return (
|
||||
<AsNumbersTable
|
||||
headers={[t('html.label.last30days'), t('html.label.last7days'), t('html.label.last24hours')]}
|
||||
@ -52,9 +58,9 @@ const PerformanceAsNumbersTable = ({data}) => {
|
||||
]}/>
|
||||
<TableRow icon={faTachometerAlt} color="orange" text={t('html.label.averageTps')}
|
||||
values={[
|
||||
data.tps_30d,
|
||||
data.tps_7d,
|
||||
data.tps_24h
|
||||
<>{data.tps_30d} {noTPSOnProxies}</>,
|
||||
<>{data.tps_7d} {noTPSOnProxies}</>,
|
||||
<>{data.tps_24h} {noTPSOnProxies}</>
|
||||
]}/>
|
||||
<TableRow icon={faTachometerAlt} color="amber" text={t('html.label.averageCpuUsage')}
|
||||
values={[
|
||||
@ -70,17 +76,17 @@ const PerformanceAsNumbersTable = ({data}) => {
|
||||
]}/>
|
||||
<TableRow icon={faDragon} color="purple" text={t('html.label.averageEntities')}
|
||||
values={[
|
||||
data.entities_30d,
|
||||
data.entities_7d,
|
||||
data.entities_24h
|
||||
<>{data.entities_30d} {noTPSOnProxies}</>,
|
||||
<>{data.entities_7d} {noTPSOnProxies}</>,
|
||||
<>{data.entities_24h} {noTPSOnProxies}</>
|
||||
]}/>
|
||||
<TableRow icon={faMap} color="blue-grey"
|
||||
text={<>{t('html.label.averageChunks')}{' '}{data.chunks_30d === 'Unavailable' ?
|
||||
<Fa icon={faEye} title={t('html.description.noSpongeChunks')}/> : ''}</>}
|
||||
values={[
|
||||
data.chunks_30d,
|
||||
data.chunks_7d,
|
||||
data.chunks_24h
|
||||
<>{data.chunks_30d} {noTPSOnProxies}</>,
|
||||
<>{data.chunks_7d} {noTPSOnProxies}</>,
|
||||
<>{data.chunks_24h} {noTPSOnProxies}</>
|
||||
]}/>
|
||||
<TableRow icon={faHdd} color="green"
|
||||
text={t('html.label.maxFreeDisk')}
|
||||
|
@ -1,7 +1,9 @@
|
||||
import React from "react";
|
||||
import {FontAwesomeIcon as Fa} from "@fortawesome/react-fontawesome";
|
||||
import {
|
||||
faBoxArchive,
|
||||
faCaretSquareRight,
|
||||
faExclamationTriangle,
|
||||
faLineChart,
|
||||
faLink,
|
||||
faServer,
|
||||
@ -19,9 +21,22 @@ import {NavLink} from "react-router-dom";
|
||||
|
||||
const ServerRow = ({server, onQuickView}) => {
|
||||
const {t} = useTranslation();
|
||||
|
||||
const timeUtc = Date.now();
|
||||
const dayMs = 86400000
|
||||
|
||||
let noDataWarning = '';
|
||||
if (!server.playersOnline.length) {
|
||||
noDataWarning = <> <Fa icon={faBoxArchive} title={t('html.description.noData30d')}/></>
|
||||
} else if (timeUtc - server.playersOnline[server.playersOnline.length - 1][0] > dayMs) {
|
||||
noDataWarning = <> <Fa icon={faExclamationTriangle}
|
||||
className={timeUtc - server.playersOnline[server.playersOnline.length - 1][0] > dayMs * 7 ? '' : "col-deep-orange"}
|
||||
title={t('html.description.noData24h')}/></>
|
||||
}
|
||||
|
||||
return (
|
||||
<tr>
|
||||
<td>{server.name}</td>
|
||||
<td>{server.name}{noDataWarning}</td>
|
||||
<td className="p-1">
|
||||
<NavLink to={"/server/" + encodeURIComponent(server.serverUUID)}
|
||||
title={t('html.label.serverAnalysis') + ': ' + server.name}
|
||||
@ -136,8 +151,9 @@ const ServersTable = ({servers, onSelect, sortBy, sortReversed}) => {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{sortedServers.length ? sortedServers.map((server, i) => <ServerRow key={i} server={server}
|
||||
onQuickView={() => onSelect(servers.indexOf(server))}/>) :
|
||||
{sortedServers.length ? sortedServers.map(server => <ServerRow key={server.serverUUID}
|
||||
server={server}
|
||||
onQuickView={() => onSelect(servers.indexOf(server))}/>) :
|
||||
<tr>
|
||||
<td>{t('html.generic.none')}</td>
|
||||
<td>-</td>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {createContext, useCallback, useContext, useEffect, useState} from "react";
|
||||
import {createContext, useCallback, useContext, useEffect, useMemo, useState} from "react";
|
||||
import {fetchWhoAmI} from "../service/authenticationService";
|
||||
|
||||
const AuthenticationContext = createContext({});
|
||||
@ -35,7 +35,18 @@ export const AuthenticationContextProvider = ({children}) => {
|
||||
updateLoginDetails();
|
||||
}, [updateLoginDetails]);
|
||||
|
||||
const sharedState = {
|
||||
const sharedState = useMemo(() => {
|
||||
return {
|
||||
authLoaded,
|
||||
authRequired,
|
||||
loggedIn,
|
||||
user,
|
||||
loginError,
|
||||
hasPermission,
|
||||
hasPermissionOtherThan,
|
||||
updateLoginDetails
|
||||
}
|
||||
}, [
|
||||
authLoaded,
|
||||
authRequired,
|
||||
loggedIn,
|
||||
@ -44,7 +55,7 @@ export const AuthenticationContextProvider = ({children}) => {
|
||||
hasPermission,
|
||||
hasPermissionOtherThan,
|
||||
updateLoginDetails
|
||||
}
|
||||
])
|
||||
return (<AuthenticationContext.Provider value={sharedState}>
|
||||
{children}
|
||||
</AuthenticationContext.Provider>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {createContext, useContext, useEffect, useState} from "react";
|
||||
import {createContext, useContext, useEffect, useMemo, useState} from "react";
|
||||
import {useDataRequest} from "./dataFetchHook";
|
||||
import {fetchExtensionData} from "../service/serverService";
|
||||
|
||||
@ -15,7 +15,9 @@ export const ServerExtensionContextProvider = ({identifier, children}) => {
|
||||
setExtensionDataLoadingError(loadingError);
|
||||
}, [data, loadingError, setExtensionData, setExtensionDataLoadingError])
|
||||
|
||||
const sharedState = {extensionData, extensionDataLoadingError}
|
||||
const sharedState = useMemo(() => {
|
||||
return {extensionData, extensionDataLoadingError};
|
||||
}, [extensionData, extensionDataLoadingError]);
|
||||
return (<ServerExtensionContext.Provider value={sharedState}>
|
||||
{children}
|
||||
</ServerExtensionContext.Provider>
|
||||
|
@ -114,8 +114,8 @@ const fetchPlayersOnlineGraphServer = async (timestamp, identifier) => {
|
||||
}
|
||||
|
||||
const fetchPlayersOnlineGraphNetwork = async (timestamp) => {
|
||||
let url = `/v1/graph?type=playersOnline`;
|
||||
if (staticSite) url = `/data/graph-playersOnline.json`;
|
||||
let url = `/v1/graph?type=playersOnlineProxies`;
|
||||
if (staticSite) url = `/data/graph-playersOnlineProxies.json`;
|
||||
return doGetRequest(url, timestamp);
|
||||
}
|
||||
|
||||
|
@ -2187,7 +2187,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
border: 0;
|
||||
font-weight: 900;
|
||||
content: '\f105';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-family: 'Font Awesome 5 Free', sans-serif;
|
||||
}
|
||||
|
||||
.sidebar .nav-item.dropdown.show .dropdown-toggle::after,
|
||||
@ -2471,7 +2471,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
.sidebar #sidebarToggle::after {
|
||||
font-weight: 900;
|
||||
content: '\f104';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-family: 'Font Awesome 5 Free', sans-serif;
|
||||
margin-right: 0.1rem;
|
||||
}
|
||||
|
||||
@ -2490,7 +2490,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
|
||||
.sidebar.toggled #sidebarToggle::after {
|
||||
content: '\f105';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-family: 'Font Awesome 5 Free', sans-serif;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
@ -2611,7 +2611,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
border: 0;
|
||||
font-weight: 900;
|
||||
content: '\f107';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-family: 'Font Awesome 5 Free', sans-serif;
|
||||
}
|
||||
|
||||
.sidebar .nav-item .nav-link[data-bs-toggle="collapse"].collapsed::after {
|
||||
@ -2892,7 +2892,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
line-height: 51px;
|
||||
font-weight: 900;
|
||||
content: '\f107';
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-family: 'Font Awesome 5 Free', sans-serif;
|
||||
color: #d1d3e2;
|
||||
}
|
||||
|
||||
|
@ -123,9 +123,31 @@ export const colorClassToBgClass = colorClass => {
|
||||
return "bg-" + colorClassToColorName(colorClass);
|
||||
}
|
||||
|
||||
export const hsxStringToArray = (hsvString) => {
|
||||
const color = hsvString.substring(4, hsvString.length - 1);
|
||||
const split = color.split(',');
|
||||
const h = Number(split[0]);
|
||||
const s = Number(split[1].substring(0, split[1].length - 1));
|
||||
const x = Number(split[2].substring(0, split[2].length - 1));
|
||||
return [h, s, x];
|
||||
}
|
||||
|
||||
export const hslToHsv = ([h, s, l]) => {
|
||||
const hsv1 = s * (l < 50 ? l : 100 - l) / 100;
|
||||
const hsvS = hsv1 === 0 ? 0 : 2 * hsv1 / (l + hsv1) * 100;
|
||||
const hsvV = l + hsv1;
|
||||
return [h, hsvS, hsvV];
|
||||
}
|
||||
|
||||
export const hsvToRgb = ([h, s, v]) => {
|
||||
let r, g, b;
|
||||
|
||||
if (s > 1) {
|
||||
h = h / 360;
|
||||
s = s / 100;
|
||||
v = v / 100;
|
||||
}
|
||||
|
||||
const i = Math.floor(h * 6);
|
||||
const f = h * 6 - i;
|
||||
const p = v * (1 - s);
|
||||
@ -186,15 +208,15 @@ const rgbToHex = (component) => {
|
||||
return Math.floor(component).toString(16).padStart(2, '0');
|
||||
}
|
||||
|
||||
// From https://stackoverflow.com/a/3732187
|
||||
export const withReducedSaturation = hex => {
|
||||
const saturationReduction = 0.70;
|
||||
// To RGB
|
||||
let r = parseInt(hex.substr(1, 2), 16); // Grab the hex representation of red (chars 1-2) and convert to decimal (base 10).
|
||||
let g = parseInt(hex.substr(3, 2), 16);
|
||||
let b = parseInt(hex.substr(5, 2), 16);
|
||||
export const hexToRgb = (hexString) => {
|
||||
const r = parseInt(hexString.substring(1, 3), 16);
|
||||
const g = parseInt(hexString.substring(3, 5), 16);
|
||||
const b = parseInt(hexString.substring(5, 7), 16);
|
||||
return [r, g, b];
|
||||
}
|
||||
|
||||
// To HSL
|
||||
// https://css-tricks.com/converting-color-spaces-in-javascript/
|
||||
export const rgbToHsl = ([r, g, b]) => {
|
||||
r /= 255;
|
||||
g /= 255;
|
||||
b /= 255;
|
||||
@ -222,6 +244,15 @@ export const withReducedSaturation = hex => {
|
||||
}
|
||||
h /= 6;
|
||||
}
|
||||
return [h, s, l];
|
||||
}
|
||||
|
||||
// From https://stackoverflow.com/a/3732187
|
||||
export const withReducedSaturation = (hex, reduceSaturationPercentage) => {
|
||||
const saturationReduction = reduceSaturationPercentage ? reduceSaturationPercentage : 0.70;
|
||||
|
||||
const rgb = hexToRgb(hex);
|
||||
const [h, s, l] = rgbToHsl(rgb);
|
||||
|
||||
// To css property
|
||||
return 'hsl(' + h * 360 + ',' + s * 100 * saturationReduction + '%,' + l * 95 + '%)';
|
||||
|
@ -146,6 +146,32 @@ const LoginPage = () => {
|
||||
}
|
||||
}, [setRedirectTo, setSuccessMessage, t])
|
||||
|
||||
const redirectAfterLogin = () => {
|
||||
if (redirectTo && !redirectTo.startsWith('http') && !redirectTo.startsWith('file') && !redirectTo.startsWith('javascript')) {
|
||||
// Normalize the URL so that it can't redirect to different domain.
|
||||
try {
|
||||
const redirectUrl = new URL(
|
||||
redirectTo.substring(redirectTo.indexOf('/')) + (window.location.hash ? window.location.hash : ''),
|
||||
window.location.protocol + '//' + window.location.host
|
||||
);
|
||||
if (redirectUrl.pathname.includes("//")) {
|
||||
// Invalid redirect URL, something fishy might be going on, redirect to /
|
||||
navigate('/');
|
||||
} else {
|
||||
navigate(
|
||||
redirectUrl.pathname + redirectUrl.search + redirectUrl.hash
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
// Invalid redirect URL, something fishy might be going on, redirect to /
|
||||
navigate('/');
|
||||
}
|
||||
} else {
|
||||
navigate('/');
|
||||
}
|
||||
};
|
||||
|
||||
const login = async (username, password) => {
|
||||
if (!username || username.length < 1) {
|
||||
return setFailMessage(t('html.register.error.noUsername'));
|
||||
@ -168,11 +194,7 @@ const LoginPage = () => {
|
||||
}
|
||||
} else if (data && data.success) {
|
||||
await updateLoginDetails();
|
||||
if (redirectTo && !redirectTo.startsWith('http') && !redirectTo.startsWith('file') && !redirectTo.startsWith('javascript')) {
|
||||
navigate(redirectTo.substring(redirectTo.indexOf('/')) + (window.location.hash ? window.location.hash : ''));
|
||||
} else {
|
||||
navigate('/');
|
||||
}
|
||||
redirectAfterLogin();
|
||||
} else {
|
||||
setFailMessage(t('html.login.failed') + data ? data.error : t('generic.noData'));
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ const NetworkSidebar = () => {
|
||||
)
|
||||
}
|
||||
|
||||
const ServerPage = () => {
|
||||
const NetworkPage = () => {
|
||||
const {networkName, serverUUID} = useMetadata();
|
||||
|
||||
const {currentTab} = useNavigation();
|
||||
@ -150,4 +150,4 @@ const ServerPage = () => {
|
||||
)
|
||||
}
|
||||
|
||||
export default ServerPage;
|
||||
export default NetworkPage;
|
@ -10,6 +10,8 @@ import {useTranslation} from "react-i18next";
|
||||
import {faCalendarCheck} from "@fortawesome/free-regular-svg-icons";
|
||||
import {useDataRequest} from "../../hooks/dataFetchHook";
|
||||
import ErrorPage from "./ErrorPage";
|
||||
import {useAuth} from "../../hooks/authenticationHook";
|
||||
import MainPageRedirect from "../../components/navigation/MainPageRedirect";
|
||||
|
||||
const HelpModal = React.lazy(() => import("../../components/modal/HelpModal"));
|
||||
|
||||
@ -47,6 +49,8 @@ const PlayerPage = () => {
|
||||
finishUpdate(player.timestamp, player.timestamp_f);
|
||||
}, [player, t, i18n, finishUpdate, setSidebarItems])
|
||||
|
||||
const {authRequired, loggedIn} = useAuth();
|
||||
if (authRequired && !loggedIn) return <MainPageRedirect/>;
|
||||
if (loadingError) return <ErrorPage error={loadingError}/>;
|
||||
|
||||
return player ? (
|
||||
|
@ -9,6 +9,8 @@ import ColorSelectorModal from "../../components/modal/ColorSelectorModal";
|
||||
import {useMetadata} from "../../hooks/metadataHook";
|
||||
import ErrorPage from "./ErrorPage";
|
||||
import {staticSite} from "../../service/backendConfiguration";
|
||||
import {useAuth} from "../../hooks/authenticationHook";
|
||||
import MainPageRedirect from "../../components/navigation/MainPageRedirect";
|
||||
|
||||
const HelpModal = React.lazy(() => import("../../components/modal/HelpModal"));
|
||||
|
||||
@ -30,6 +32,8 @@ const PlayersPage = () => {
|
||||
setCurrentTab('html.label.players')
|
||||
}, [t, i18n, setCurrentTab, setSidebarItems])
|
||||
|
||||
const {authRequired, loggedIn} = useAuth();
|
||||
if (authRequired && !loggedIn) return <MainPageRedirect/>;
|
||||
if (error) return <ErrorPage error={error}/>;
|
||||
|
||||
const displayedServerName = isProxy ? networkName : (serverName && serverName.startsWith('Server') ? "Plan" : serverName);
|
||||
|
@ -9,6 +9,8 @@ import ColorSelectorModal from "../../components/modal/ColorSelectorModal";
|
||||
import {useMetadata} from "../../hooks/metadataHook";
|
||||
import ErrorPage from "./ErrorPage";
|
||||
import {QueryResultContextProvider} from "../../hooks/queryResultContext";
|
||||
import {useAuth} from "../../hooks/authenticationHook";
|
||||
import MainPageRedirect from "../../components/navigation/MainPageRedirect";
|
||||
|
||||
const QueryPage = () => {
|
||||
const {t, i18n} = useTranslation();
|
||||
@ -30,6 +32,8 @@ const QueryPage = () => {
|
||||
setCurrentTab('html.query.title.text');
|
||||
}, [t, i18n, setCurrentTab, setSidebarItems])
|
||||
|
||||
const {authRequired, loggedIn} = useAuth();
|
||||
if (authRequired && !loggedIn) return <MainPageRedirect/>;
|
||||
if (error) return <ErrorPage error={error}/>;
|
||||
|
||||
const displayedServerName = isProxy ? networkName : (serverName && serverName.startsWith('Server') ? "Plan" : serverName);
|
||||
|
@ -23,7 +23,7 @@ const NetworkPerformance = () => {
|
||||
const [selectedOptions, setSelectedOptions] = useState([]);
|
||||
const [visualizedServers, setVisualizedServers] = useState([]);
|
||||
|
||||
const initializeServerOptions = () => {
|
||||
useEffect(() => {
|
||||
if (networkMetadata) {
|
||||
const options = networkMetadata.servers;
|
||||
setServerOptions(options);
|
||||
@ -34,8 +34,7 @@ const NetworkPerformance = () => {
|
||||
setSelectedOptions([indexOfProxy]);
|
||||
setVisualizedServers([indexOfProxy]);
|
||||
}
|
||||
};
|
||||
useEffect(initializeServerOptions, [networkMetadata, setVisualizedServers]);
|
||||
}, [networkMetadata, setVisualizedServers]);
|
||||
|
||||
const applySelected = () => {
|
||||
setVisualizedServers(selectedOptions);
|
||||
@ -85,7 +84,8 @@ const NetworkPerformance = () => {
|
||||
loadPerformanceData();
|
||||
}, [loadPerformanceData, visualizedServers, updateRequested]);
|
||||
|
||||
const isUpToDate = visualizedServers.every((s, i) => s === selectedOptions[i]);
|
||||
const isUpToDate = selectedOptions.length === visualizedServers.length && selectedOptions.every(
|
||||
(s, i) => s === visualizedServers[i]);
|
||||
return (
|
||||
<LoadIn>
|
||||
<section className={"network-performance"}>
|
||||
@ -96,7 +96,8 @@ const NetworkPerformance = () => {
|
||||
</ExtendableRow>
|
||||
<ExtendableRow id={'row-network-performance-1'}>
|
||||
<Col md={8}>
|
||||
<PerformanceAsNumbersCard data={performanceData?.overview?.numbers}/>
|
||||
<PerformanceAsNumbersCard data={performanceData?.overview?.numbers}
|
||||
servers={performanceData.servers || []}/>
|
||||
</Col>
|
||||
<Col md={4}>
|
||||
<Card>
|
||||
@ -104,7 +105,8 @@ const NetworkPerformance = () => {
|
||||
<MultiSelect options={serverOptions.map(server => server.serverName)}
|
||||
selectedIndexes={selectedOptions}
|
||||
setSelectedIndexes={setSelectedOptions}/>
|
||||
<button className={'btn bg-transparent'} onClick={applySelected} disabled={isUpToDate}>
|
||||
<button className={'btn ' + (isUpToDate ? 'bg-transparent' : 'bg-theme')}
|
||||
onClick={applySelected} disabled={isUpToDate}>
|
||||
{t('html.label.apply')}
|
||||
</button>
|
||||
</Card>
|
||||
|
@ -34,7 +34,7 @@ const ConnectionsCard = ({player}) => {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{player.connections.map((connection, i) => (<tr key={'connection-' + i}>
|
||||
{player.connections.map((connection, i) => (<tr key={JSON.stringify(connection)}>
|
||||
<td>{connection.geolocation}</td>
|
||||
<td>{connection.date}</td>
|
||||
</tr>))}
|
||||
|
@ -1151,43 +1151,43 @@
|
||||
minimatch "^3.0.4"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@fortawesome/fontawesome-common-types@6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.3.0.tgz#51f734e64511dbc3674cd347044d02f4dd26e86b"
|
||||
integrity sha512-4BC1NMoacEBzSXRwKjZ/X/gmnbp/HU5Qqat7E8xqorUtBFZS+bwfGH5/wqOC2K6GV0rgEobp3OjGRMa5fK9pFg==
|
||||
"@fortawesome/fontawesome-common-types@6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b"
|
||||
integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==
|
||||
|
||||
"@fortawesome/fontawesome-free@^6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz#b5877182692a6f7a39d1108837bec24247ba4bd7"
|
||||
integrity sha512-qVtd5i1Cc7cdrqnTWqTObKQHjPWAiRwjUPaXObaeNPcy7+WKxJumGBx66rfSFgK6LNpIasVKkEgW8oyf0tmPLA==
|
||||
"@fortawesome/fontawesome-free@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz#1ee0c174e472c84b23cb46c995154dc383e3b4fe"
|
||||
integrity sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==
|
||||
|
||||
"@fortawesome/fontawesome-svg-core@^6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.3.0.tgz#b6a17d48d231ac1fad93e43fca7271676bf316cf"
|
||||
integrity sha512-uz9YifyKlixV6AcKlOX8WNdtF7l6nakGyLYxYaCa823bEBqyj/U2ssqtctO38itNEwXb8/lMzjdoJ+aaJuOdrw==
|
||||
"@fortawesome/fontawesome-svg-core@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21"
|
||||
integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||
"@fortawesome/fontawesome-common-types" "6.4.0"
|
||||
|
||||
"@fortawesome/free-brands-svg-icons@^6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.3.0.tgz#436e5fcba4f4f0902edcceaec5c4ff887ba7328f"
|
||||
integrity sha512-xI0c+a8xnKItAXCN8rZgCNCJQiVAd2Y7p9e2ND6zN3J3ekneu96qrePieJ7yA7073C1JxxoM3vH1RU7rYsaj8w==
|
||||
"@fortawesome/free-brands-svg-icons@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz#c785cf5563231eadc5ef5f8cd0274e0b8920433f"
|
||||
integrity sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||
"@fortawesome/fontawesome-common-types" "6.4.0"
|
||||
|
||||
"@fortawesome/free-regular-svg-icons@^6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.3.0.tgz#286f87f777e6c96af59151e86647c81083029ee2"
|
||||
integrity sha512-cZnwiVHZ51SVzWHOaNCIA+u9wevZjCuAGSvSYpNlm6A4H4Vhwh8481Bf/5rwheIC3fFKlgXxLKaw8Xeroz8Ntg==
|
||||
"@fortawesome/free-regular-svg-icons@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz#cacc53bd8d832d46feead412d9ea9ce80a55e13a"
|
||||
integrity sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||
"@fortawesome/fontawesome-common-types" "6.4.0"
|
||||
|
||||
"@fortawesome/free-solid-svg-icons@^6.3.0":
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.3.0.tgz#d3bd33ae18bb15fdfc3ca136e2fea05f32768a65"
|
||||
integrity sha512-x5tMwzF2lTH8pyv8yeZRodItP2IVlzzmBuD1M7BjawWgg9XAvktqJJ91Qjgoaf8qJpHQ8FEU9VxRfOkLhh86QA==
|
||||
"@fortawesome/free-solid-svg-icons@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz#48c0e790847fa56299e2f26b82b39663b8ad7119"
|
||||
integrity sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.3.0"
|
||||
"@fortawesome/fontawesome-common-types" "6.4.0"
|
||||
|
||||
"@fortawesome/react-fontawesome@^0.2.0":
|
||||
version "0.2.0"
|
||||
@ -1532,10 +1532,10 @@
|
||||
dependencies:
|
||||
"@swc/helpers" "^0.4.14"
|
||||
|
||||
"@remix-run/router@1.3.0":
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.3.0.tgz#b6ee542c7f087b73b3d8215b9bf799f648be71cb"
|
||||
integrity sha512-nwQoYb3m4DDpHTeOwpJEuDt8lWVcujhYYSFGLluC+9es2PyLjm+jjq3IeRBQbwBtPLJE/lkuHuGHr8uQLgmJRA==
|
||||
"@remix-run/router@1.5.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.5.0.tgz#57618e57942a5f0131374a9fdb0167e25a117fdc"
|
||||
integrity sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==
|
||||
|
||||
"@restart/hooks@^0.4.6", "@restart/hooks@^0.4.7":
|
||||
version "0.4.8"
|
||||
@ -1740,10 +1740,10 @@
|
||||
stampit "=4.3.2"
|
||||
unraw "=2.0.1"
|
||||
|
||||
"@swagger-api/apidom-core@=0.69.0", "@swagger-api/apidom-core@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-core/-/apidom-core-0.69.0.tgz#561ffd097f74ed60b3e6c51a8815dca8ff9c6ae2"
|
||||
integrity sha512-n59Mz6JjgL5SJHne7om22+5RRfDNmM8oQ0NgHvWU44rHcmA/8Byxs28w6Ke2xgJFmLYasEw6hx1bwAATBLaa7w==
|
||||
"@swagger-api/apidom-core@>=0.69.1 <1.0.0", "@swagger-api/apidom-core@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-core/-/apidom-core-0.69.1.tgz#ac92066ea43149b4fb6305fecbf737022ed31e30"
|
||||
integrity sha512-XkGEoIuk0cqsbzv03AdfcDr5suKJnLC+CkZS4rzHjs307RFG1xX722Aj6snUs5hRFQKBH+cdujpspugh7HdNmw==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-ast" "^0.69.0"
|
||||
@ -1754,167 +1754,167 @@
|
||||
short-unique-id "=4.4.4"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-json-pointer@=0.69.0", "@swagger-api/apidom-json-pointer@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.69.0.tgz#c892d358e9d8a1cfb4df1ded793ff5d145df4903"
|
||||
integrity sha512-TDcrES6POTBrQXDdq7VjlqFYZuZ/eqaxD9K2MUJcRckil+jxpDV0W38lgXE+c8Gjwvqqqce/izkilUgMA+ajFA==
|
||||
"@swagger-api/apidom-json-pointer@>=0.69.1 <1.0.0", "@swagger-api/apidom-json-pointer@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.69.1.tgz#4a9de62c27007fec87b116784c835566bd0566a5"
|
||||
integrity sha512-bRSSpSdXVQQ0LTmdY/KDZ7XqxwMf1DmgOqStFq71A8UZs1cTAa83qQ7+OAPqz3/qhSVAOE1sIU5fc32j+wqtmg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-ns-api-design-systems@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.69.0.tgz#10159ea66db921b93939a6705a5e3f043f0fbddd"
|
||||
integrity sha512-1W5N4wL5I9n4dD6AJ1Bh49kphn+DXmwggUQhwsq7phxey4jiEXUNC9W/CQDXJp0wkFtNE6REn8yks9QGqfkemw==
|
||||
"@swagger-api/apidom-ns-api-design-systems@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.69.1.tgz#8b6c399f3155a787196e0a386fb95472d9eb93a7"
|
||||
integrity sha512-whGQcBNhH8O/xEOuCRnhVZik+zvXGy4915sy/8zZNy792Q2GjwUIduc1iez2oXdg77NYOhBENLndXIGbNpxeuQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-asyncapi-2@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.69.0.tgz#098a9964518f609c73dedcb8dbdd8b657a8b4a07"
|
||||
integrity sha512-D49mduzDwVQJp55+KoT8NozQEUsLMhCxbAnD4iY1E/v4uK7xSqQ3JW/Luunz6DNKWWtcWhgCiehmBwIjVAQN/A==
|
||||
"@swagger-api/apidom-ns-asyncapi-2@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.69.1.tgz#d1fe408b1467e8d8f4011227e16de7555cf30fba"
|
||||
integrity sha512-9lrMtcA0Vs9nZsZO67BPqorbQ3KGwYecXwo+2a+8ev8MqdG7eOKB9taRgt7CPdfNEllRvc3nC9A/IHOOtoefsA==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-7" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-7" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.69.0.tgz#136224aee085aeef3394bc93129a88b984edfa4b"
|
||||
integrity sha512-rRo226jITgG6DZNuk1oCuKFhr0giJ6GATyQtaaEmH9bhxB8i1eeES/LolJfo4donyejCb+imJN+L1fQ1N2YOYA==
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.69.1.tgz#4d26559924fd9ca024704055652cbb4cbd7fbc29"
|
||||
integrity sha512-6qkUH0R2C2dxzr5Af1p4N/ccyH34Fnv9CVT4tIPFThmxLI+Ivdzy6BbZ4lT9rzFet1G0mL3hI/pdLNz8Z28Ftw==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-json-schema-draft-6@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.69.0.tgz#6986e24542505cde90bd2c2366f1c1678624c666"
|
||||
integrity sha512-koLHh4TS3RtrWxcYX/tZobgnwUbjiFLOESiqe0FYvs82LXNwr+dveM8Umj89ACjpCd0Pq2J+5yvfNyvuIa6WFw==
|
||||
"@swagger-api/apidom-ns-json-schema-draft-6@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.69.1.tgz#f6a7253844a402ffc4587a1593792f4737451f0a"
|
||||
integrity sha512-yTMGfqQ5JXvdVnAjlr7qdPqfBJWaL3VrXPXnp5uLwW1Wk5aMzie1Jq9jZARomajFhNKAzFTDuaZ+S+jEeqQ09Q==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-json-schema-draft-7@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.69.0.tgz#5ea3a07aefb5b12022614d3f4bb0a42e19bd68ce"
|
||||
integrity sha512-OaEBBrgoDfqMPnZ0NCfg5HUJJ/V6XJ1AZ6OTW1AfJTqErLxYTgdNv52lYXKLiKkyLiH5olBBnPEKPPLg+DwUKQ==
|
||||
"@swagger-api/apidom-ns-json-schema-draft-7@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.69.1.tgz#217a3fd1e0b8faa1859e2427d85d054006ec464b"
|
||||
integrity sha512-Etl8J2jwJzm2r5fFu7csRmI9im8qTgcNeCbfqpEWLmVM4SirZx56VathplSt/XyApP2vXNH9sUHCa7crgJH/hQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-6" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-6" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-openapi-3-0@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.69.0.tgz#1cc54093e6f5919f53d8681dd54c9e1931295c1b"
|
||||
integrity sha512-rKgEd/k0MNV93DhwZ6yfUaIjbs6RfS9xB3QN9M6Lx5ZJktxNGAdpS/c3WEb5jBOpkQIJ6MaNI67Q0ZHHJTlrng==
|
||||
"@swagger-api/apidom-ns-openapi-3-0@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.69.1.tgz#eccff9a2f9ff774cb2ee8f550ab3803f8ade4a4f"
|
||||
integrity sha512-WysPvllkS36ONiDWUTfNACkgpoDNibCT8sOGaEv+NTGlUjhZuyI6GMJxw5DcaeRyIV5Tp14vyCCbacGMr+02WQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-ns-openapi-3-1@=0.69.0", "@swagger-api/apidom-ns-openapi-3-1@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.69.0.tgz#3bae54d8298aab9f7f04ed0c2f984c5d96ac5fa0"
|
||||
integrity sha512-l5g4K09I4znwTcXbkBaE4JKmvEQ7Q831hzpBWZimcnUGrC8/nJ7eYUc04bjgbdDZd37B0zEzRn6w92ax7Hi2Fg==
|
||||
"@swagger-api/apidom-ns-openapi-3-1@>=0.69.1 <1.0.0", "@swagger-api/apidom-ns-openapi-3-1@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.69.1.tgz#0f38d7a303c028a0914b802fe22ddae672111819"
|
||||
integrity sha512-chk+UF8soH5TuvabUstPmb1Mx3IP3dUJQ7SDB3tHusg+f2xEo5S7Hx/mrSKJDX2Wp0qFshqpUFSRC8ZUnFgJaQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.69.0.tgz#173b3b1b37711c10bb6c8f20638f323fc56cd5e7"
|
||||
integrity sha512-oi52u6rmLrE+iXOk5wlx1NRXHd0NtGsxF1G+g2JTtC0oh5ETrj5fMGwMQwcBqYGTj3Y6vPJMkvVyaC46KUKg0Q==
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.69.1.tgz#4faa17655f09e2a5a5cce5327e14629810ef2d87"
|
||||
integrity sha512-+xGcnM4bwGylAtp6i4rN/YRs03665Xzp53mPvx3s3vLm1y2FuaFdyro0zwjwbNdpoHu5DOsxcCHRgeX0Z8Uv9Q==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-api-design-systems" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-api-design-systems" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.69.0.tgz#10b89dff03f1756249318e46ffb2de0dada77060"
|
||||
integrity sha512-bqgf+iHK3qrANJ5zrQJ+BoWrIftL4YhCfZyE/aWwnGW1BKdB4uGC94rx9DHhS8ZfNPz7AnW+ki6ISXpYOD8uyw==
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.69.1.tgz#3d0c7332ffbf39345acb2e0d3fab8b5b6d5170a1"
|
||||
integrity sha512-XDH6u9MxoRKUuwWP2SxUK3aXgkFryI85IYwElRb6Utj1ndKowC1go58bCry0jBaIj1cdZREe8hZxaiuqKTSnwg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-api-design-systems" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-api-design-systems" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.69.0.tgz#b54bd05c8f182993481572e85c05bcc5565e1599"
|
||||
integrity sha512-3b1nGsbFh6DAUDB9plQE5iyqOE37DZS/X34Hr+5ENiq7DFA/19UYeUSJQfU+kWjtFzRDHBRluPo38nHdGnh4gg==
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.69.1.tgz#393fd221a4a5c1f25e4df7f97b75c296801168c5"
|
||||
integrity sha512-OvyCA9HMk2AZqjVqguANzGB1FEzHSGOqrtXql99JLxzwcxo8euDdfwQ7dZURxTvM/XwPmAeVZkgChhicidn5uQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.69.0.tgz#a955c9894d4b030cd74172cb0238dbd8f01c4ff5"
|
||||
integrity sha512-JEuZw04wdtbn1WFkavB9Yn8MNAWtfUdlD6naa/Z4CL0iUOhC5BzG9dUfe6gn+Z+xtFRHm3MHMh9B6Xdr3MWDBg==
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.69.1.tgz#a304e8161ce3048348f57f70b08e803a52189395"
|
||||
integrity sha512-wb1Ys1n2q8DFYDbUrFNex/+57D2I9QFdY6L/vV7skrIUafYxPmN9LPpB3TQ8cpEAwvgkRvzUI3B7rHrvA5d1QA==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-json@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.69.0.tgz#1781852210b585c9bfc0c4923e2fba2d4f6d425a"
|
||||
integrity sha512-wNSYD9FU31aSBnCCp3Nt2ZZVAdu1LGGWmlLKmcOx7SXi79F1E+T6RtqyoLa0VBGKPVEwDtaH8kWRsZzXpUZVvQ==
|
||||
"@swagger-api/apidom-parser-adapter-json@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.69.1.tgz#9faa085c822ed321795e7ddeb5cca217f4cd4e95"
|
||||
integrity sha512-YSLdRE0QJ05OnGvXVViQNmdPraY0oqGVsatID+nxB6vBmFJVh7nFeEqQc3wEK/6sMWu8qeKhF2UfgPKBilpNsA==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-ast" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
@ -1923,66 +1923,66 @@
|
||||
tree-sitter-json "=0.20.0"
|
||||
web-tree-sitter "=0.20.7"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.69.0.tgz#ebec1c17a2309d73a82b4f89c7c54fe8172e97d6"
|
||||
integrity sha512-aSNFJ4he67c5Vz9+FbKKnJzy9JdmSDqzeog8CTiLI8TFrCvj9KQns68NbemyxHHc7uH9TcOwXq3WbXgXSWv60A==
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.69.1.tgz#d845affd3119310d55b7a03f453b323b02d4d2ec"
|
||||
integrity sha512-QHIVhrcc+1ktICZh3hMU9mgiJQ4h+iN9WiG4MVAlWqSvv1fbpZWb0rmhPbdP6pLw20NEVPT0L7Mi9gVB7HOX1A==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.69.0.tgz#3591798572c5e9eed91bbb7703364d925b53b08d"
|
||||
integrity sha512-7TCnTTKMVTyDiX7MKhphmqUaoKtWLOgKCaPEtBRFgd94yOkobWBKw7yG6G+0rdsCIb4Q9AFcL39eUDh5yI45/w==
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.69.1.tgz#077cb4b96dca5eda18d705c3d190a0073fb6e6ac"
|
||||
integrity sha512-I6nMgW2jnet4PDDlN3jzKPMvTiVS1SryqWsYmaxijiyLLtR0YWm9ykFAkNevsCQvsCGdm+ag018rONTqpEURRQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.69.0.tgz#eea33e6c10fc6bb4806bdf4cbdd1026af4b7fac8"
|
||||
integrity sha512-mrKLsNMsJr5Z4cUDO4v5vt59uGGWfLL36hTuSKcqO9IH/3nziPrYJ7Kd4VdiJaQYqFuUQCEG7A2pOZfkpbR1KA==
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.69.1.tgz#6843cac67d721111188a12fad62bc6538a72b8f6"
|
||||
integrity sha512-mc1DYPMAKUNj0Fn4EA30MFu/n6np4MkYBn8eNS5dGPIjP4EbrphmGWkwMa250a9rjGNM4iww5bWWWiajMAU5bA==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.69.0.tgz#1a139e8bfdab774354b1dc5598e9e04c063174b9"
|
||||
integrity sha512-tEyNhlGoQ7/CnC0K3NqBWfhi90U+5fFDl7Z2PyV/+fRG1F0okAoHwp9+Q3/BieWdiZ5OChX8yxwOdq1kJ2+TTQ==
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.69.1.tgz#1773c48215b03699bf38c3a461e19f96a74c8575"
|
||||
integrity sha512-FjDD9JOrdCOr+K75PAje6CD9F4kr52xXabXoTG8fwJz1LfiZSVj5rCde1DU7NNkI0JQc1t/nJyFTz4pz0mGlcQ==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2@^0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.69.0.tgz#d95aab7e8b34bc703f510250bfc8f315dd87fd31"
|
||||
integrity sha512-wfvFXg9xSz89hg/MRd1u6ESUb2UQmVJVIS2wWZwi1UXN9+F3Yh2l8RB5JchJYb5bqu2HX1ZYJ6FxG3dQTQICyQ==
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2@^0.69.1":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.69.1.tgz#290f8c0b10b165a6fe09ab292ebe61861a0d3b95"
|
||||
integrity sha512-RbAaxdhEAuc9ZAWhvCss1yQQ/AW85keuvzoqFIOZ7Px2UaSoBRQVTYq7sFou9LhLJbOF1Iz6Hs1wTqqq6QRf3A==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-ast" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
@ -1991,35 +1991,35 @@
|
||||
tree-sitter-yaml "=0.5.0"
|
||||
web-tree-sitter "=0.20.7"
|
||||
|
||||
"@swagger-api/apidom-reference@=0.69.0":
|
||||
version "0.69.0"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-reference/-/apidom-reference-0.69.0.tgz#c7402693f40dde3e5b01725fdb3fda02b4b11bea"
|
||||
integrity sha512-Sc3My/qTa90ofWXRaULkQ2oCUlgUCTbPN209jk/Lg0cywPTgeVEVn7Awpp2ftxl007uPPr2PwUzn/K6zzj+gyg==
|
||||
"@swagger-api/apidom-reference@>=0.69.1 <1.0.0":
|
||||
version "0.69.1"
|
||||
resolved "https://registry.yarnpkg.com/@swagger-api/apidom-reference/-/apidom-reference-0.69.1.tgz#2d27ce8ffcc720f3a21dbe1d4d553ef9f3e1b2cf"
|
||||
integrity sha512-P/HD5l9zoQAR6H6IL52Y4SjxBXRCY2kzXa0CH+jKqpNNQxLEPf7penP9T6rH339BvKhATK5LanxDYtQZRCDBdw==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.7"
|
||||
"@swagger-api/apidom-core" "^0.69.0"
|
||||
"@swagger-api/apidom-core" "^0.69.1"
|
||||
"@types/ramda" "=0.28.23"
|
||||
axios "=1.3.4"
|
||||
minimatch "=7.3.0"
|
||||
minimatch "=7.4.3"
|
||||
process "=0.11.10"
|
||||
ramda "=0.28.0"
|
||||
ramda-adjunct "=3.4.0"
|
||||
stampit "=4.3.2"
|
||||
optionalDependencies:
|
||||
"@swagger-api/apidom-json-pointer" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^0.69.0"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.0"
|
||||
"@swagger-api/apidom-json-pointer" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-asyncapi-2" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-0" "^0.69.1"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-json" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-json" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^0.69.1"
|
||||
"@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.1"
|
||||
|
||||
"@swc/helpers@^0.4.14":
|
||||
version "0.4.14"
|
||||
@ -2974,7 +2974,7 @@ axe-core@^4.3.5:
|
||||
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413"
|
||||
integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
|
||||
|
||||
axios@=1.3.4, axios@^1.3.4:
|
||||
axios@=1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024"
|
||||
integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==
|
||||
@ -2983,6 +2983,15 @@ axios@=1.3.4, axios@^1.3.4:
|
||||
form-data "^4.0.0"
|
||||
proxy-from-env "^1.1.0"
|
||||
|
||||
axios@^1.3.5:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.5.tgz#e07209b39a0d11848e3e341fa087acd71dadc542"
|
||||
integrity sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.0"
|
||||
form-data "^4.0.0"
|
||||
proxy-from-env "^1.1.0"
|
||||
|
||||
axobject-query@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
|
||||
@ -4234,10 +4243,10 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
|
||||
dependencies:
|
||||
domelementtype "^2.2.0"
|
||||
|
||||
dompurify@=2.3.10:
|
||||
version "2.3.10"
|
||||
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.10.tgz#901f7390ffe16a91a5a556b94043314cd4850385"
|
||||
integrity sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g==
|
||||
dompurify@=3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.1.tgz#a0933f38931b3238934dd632043b727e53004289"
|
||||
integrity sha512-60tsgvPKwItxZZdfLmamp0MTcecCta3avOhsLgPZ0qcWt96OasFfhkeIRbJ6br5i0fQawT1/RBGB5L58/Jpwuw==
|
||||
|
||||
domutils@^1.7.0:
|
||||
version "1.7.0"
|
||||
@ -5508,10 +5517,10 @@ i18next-localstorage-backend@^4.1.0:
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.20.6"
|
||||
|
||||
i18next@^22.4.13:
|
||||
version "22.4.13"
|
||||
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.4.13.tgz#02e291ab0056eab13b7d356fb454ff991923eaa0"
|
||||
integrity sha512-GX7flMHRRqQA0I1yGLmaZ4Hwt1JfLqagk8QPDPZsqekbKtXsuIngSVWM/s3SLgNkrEXjA+0sMGNuOEkkmyqmWg==
|
||||
i18next@^22.4.14:
|
||||
version "22.4.14"
|
||||
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.4.14.tgz#18dd94e9adc2618497c7de101a206e1ca3a18727"
|
||||
integrity sha512-VtLPtbdwGn0+DAeE00YkiKKXadkwg+rBUV+0v8v0ikEjwdiJ0gmYChVE4GIa9HXymY6wKapkL93vGT7xpq6aTw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.20.6"
|
||||
|
||||
@ -6804,10 +6813,10 @@ minimatch@3.0.4:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@=7.3.0:
|
||||
version "7.3.0"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.3.0.tgz#cfb7337e7460308e7147c58250fa0dee3da7929c"
|
||||
integrity sha512-WaMDuhKa7a6zKiwplR1AOz+zGvJba24k5VU1Cy6NhEguavT2YRlHxuINUgTas4wiS6fwBpYq4TcA1XIECSntyw==
|
||||
minimatch@=7.4.3:
|
||||
version "7.4.3"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.3.tgz#012cbf110a65134bb354ae9773b55256cdb045a2"
|
||||
integrity sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
@ -8338,19 +8347,19 @@ react-refresh@^0.11.0:
|
||||
integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==
|
||||
|
||||
react-router-dom@6:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.7.0.tgz#0249f4ca4eb704562b8b0ff29caeb928c3a6ed38"
|
||||
integrity sha512-jQtXUJyhso3kFw430+0SPCbmCmY1/kJv8iRffGHwHy3CkoomGxeYzMkmeSPYo6Egzh3FKJZRAL22yg5p2tXtfg==
|
||||
version "6.10.0"
|
||||
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.10.0.tgz#090ddc5c84dc41b583ce08468c4007c84245f61f"
|
||||
integrity sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==
|
||||
dependencies:
|
||||
"@remix-run/router" "1.3.0"
|
||||
react-router "6.7.0"
|
||||
"@remix-run/router" "1.5.0"
|
||||
react-router "6.10.0"
|
||||
|
||||
react-router@6.7.0:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.7.0.tgz#db262684c13b5c2970694084ae9e8531718a0681"
|
||||
integrity sha512-KNWlG622ddq29MAM159uUsNMdbX8USruoKnwMMQcs/QWZgFUayICSn2oB7reHce1zPj6CG18kfkZIunSSRyGHg==
|
||||
react-router@6.10.0:
|
||||
version "6.10.0"
|
||||
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.10.0.tgz#230f824fde9dd0270781b5cb497912de32c0a971"
|
||||
integrity sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==
|
||||
dependencies:
|
||||
"@remix-run/router" "1.3.0"
|
||||
"@remix-run/router" "1.5.0"
|
||||
|
||||
react-scripts@5.0.1:
|
||||
version "5.0.1"
|
||||
@ -8789,10 +8798,10 @@ sass-loader@^12.3.0:
|
||||
klona "^2.0.4"
|
||||
neo-async "^2.6.2"
|
||||
|
||||
sass@^1.60.0:
|
||||
version "1.60.0"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81"
|
||||
integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==
|
||||
sass@^1.61.0:
|
||||
version "1.61.0"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.61.0.tgz#d1f6761bb833887b8fdab32a24e052c40531d02b"
|
||||
integrity sha512-PDsN7BrVkNZK2+dj/dpKQAWZavbAQ87IXqVvw2+oEYI+GwlTWkvbQtL7F2cCNbMqJEYKPh1EcjSxsnqIb/kyaQ==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
@ -9439,16 +9448,16 @@ svgo@^2.7.0:
|
||||
picocolors "^1.0.0"
|
||||
stable "^0.1.8"
|
||||
|
||||
swagger-client@^3.19.1:
|
||||
version "3.19.2"
|
||||
resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.19.2.tgz#7fabea7d953c19532670f3ee983a61addb134304"
|
||||
integrity sha512-oBR6VtD99yJOY8W3vf1h8zU91H5UpwUk2trSL4xzZIzChWtlaOMyWh+/GyUGgDCmQY4B1E4qTgAD/kFQ4dFnnA==
|
||||
swagger-client@^3.19.5:
|
||||
version "3.19.5"
|
||||
resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.19.5.tgz#5e2fc71cf0308a2e884265b416bce99e2fc19fe8"
|
||||
integrity sha512-ssRMlGoYswj7/hlZV0EtGi406Y8/hfUAVw5SIqbWlsXSkaf+FfTWGRO39WOmbpfhsdLsskj/J2wmytPpbu2Njg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.20.13"
|
||||
"@swagger-api/apidom-core" "=0.69.0"
|
||||
"@swagger-api/apidom-json-pointer" "=0.69.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" "=0.69.0"
|
||||
"@swagger-api/apidom-reference" "=0.69.0"
|
||||
"@swagger-api/apidom-core" ">=0.69.1 <1.0.0"
|
||||
"@swagger-api/apidom-json-pointer" ">=0.69.1 <1.0.0"
|
||||
"@swagger-api/apidom-ns-openapi-3-1" ">=0.69.1 <1.0.0"
|
||||
"@swagger-api/apidom-reference" ">=0.69.1 <1.0.0"
|
||||
cookie "~0.5.0"
|
||||
cross-fetch "^3.1.5"
|
||||
deepmerge "~4.3.0"
|
||||
@ -9462,10 +9471,10 @@ swagger-client@^3.19.1:
|
||||
traverse "~0.6.6"
|
||||
url "~0.11.0"
|
||||
|
||||
swagger-ui@^4.18.1:
|
||||
version "4.18.1"
|
||||
resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-4.18.1.tgz#14b90dba50cb827e57747458ef455f99a677535b"
|
||||
integrity sha512-KMG/Mg+b7oPtBOlpx9abbmU6Rm86kiVUvvpR3EkplBz0CSnseuQZN2XdDZKD7QsvM78NkUhn53y5EZCb+4rd1g==
|
||||
swagger-ui@^4.18.2:
|
||||
version "4.18.2"
|
||||
resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-4.18.2.tgz#35b4c05aedb5c055d4698932f42c4dd23f680073"
|
||||
integrity sha512-0IFzqYLBZ2BQYOW5lbDzF9BZl2o2/IDXYhErsazUXHWIXLkMDCxsgd+ocdj4AGtUO3gdGk4QZgHkJwZb/OGbgg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.18.9"
|
||||
"@braintree/sanitize-url" "=6.0.2"
|
||||
@ -9473,7 +9482,7 @@ swagger-ui@^4.18.1:
|
||||
classnames "^2.3.1"
|
||||
css.escape "1.5.1"
|
||||
deep-extend "0.6.0"
|
||||
dompurify "=2.3.10"
|
||||
dompurify "=3.0.1"
|
||||
ieee754 "^1.2.1"
|
||||
immutable "^3.x.x"
|
||||
js-file-download "^0.4.12"
|
||||
@ -9498,7 +9507,7 @@ swagger-ui@^4.18.1:
|
||||
reselect "^4.1.5"
|
||||
serialize-error "^8.1.0"
|
||||
sha.js "^2.4.11"
|
||||
swagger-client "^3.19.1"
|
||||
swagger-client "^3.19.5"
|
||||
url-parse "^1.5.8"
|
||||
xml "=1.0.1"
|
||||
xml-but-prettier "^1.0.1"
|
||||
|
Loading…
Reference in New Issue
Block a user