mirror of
https://github.com/kremalicious/umami.git
synced 2024-12-24 18:26:20 +01:00
commit
cc2be9f47a
@ -123,7 +123,7 @@ const DaySelector = ({ date, minDate, maxDate, locale, onSelect }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const days = [];
|
const days = [];
|
||||||
for (let i = 0; i < 35; i++) {
|
for (let i = 0; i < 42; i++) {
|
||||||
days.push(addDays(startDay, i));
|
days.push(addDays(startDay, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,21 +29,24 @@ export default function Header() {
|
|||||||
<Icon icon={<Logo />} size="large" className={styles.logo} />
|
<Icon icon={<Logo />} size="large" className={styles.logo} />
|
||||||
<Link href={isSharePage ? HOMEPAGE_URL : '/'}>umami</Link>
|
<Link href={isSharePage ? HOMEPAGE_URL : '/'}>umami</Link>
|
||||||
</div>
|
</div>
|
||||||
<HamburgerButton />
|
|
||||||
{user && (
|
{user && (
|
||||||
<div className={styles.links}>
|
<>
|
||||||
<Link href="/dashboard">
|
<HamburgerButton />
|
||||||
<FormattedMessage id="label.dashboard" defaultMessage="Dashboard" />
|
<div className={styles.links}>
|
||||||
</Link>
|
<Link href="/dashboard">
|
||||||
<Link href="/realtime">
|
<FormattedMessage id="label.dashboard" defaultMessage="Dashboard" />
|
||||||
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
|
||||||
</Link>
|
|
||||||
{!process.env.isCloudMode && (
|
|
||||||
<Link href="/settings">
|
|
||||||
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
<Link href="/realtime">
|
||||||
</div>
|
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
||||||
|
</Link>
|
||||||
|
{!process.env.isCloudMode && (
|
||||||
|
<Link href="/settings">
|
||||||
|
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
<div className={styles.buttons}>
|
<div className={styles.buttons}>
|
||||||
<ThemeButton />
|
<ThemeButton />
|
||||||
|
@ -68,7 +68,8 @@ CREATE PROCEDURE `UmamiRenameIndexIfExists`(
|
|||||||
INFORMATION_SCHEMA.STATISTICS
|
INFORMATION_SCHEMA.STATISTICS
|
||||||
WHERE
|
WHERE
|
||||||
TABLE_NAME = @tableName
|
TABLE_NAME = @tableName
|
||||||
AND INDEX_NAME = @currentIndexName;
|
AND INDEX_NAME = @currentIndexName
|
||||||
|
AND TABLE_SCHEMA = database();
|
||||||
|
|
||||||
SET @query = CONCAT(
|
SET @query = CONCAT(
|
||||||
'ALTER TABLE `', @tableName, '` RENAME INDEX `', @currentIndexName, '` TO `', @newIndexName, '`;'
|
'ALTER TABLE `', @tableName, '` RENAME INDEX `', @currentIndexName, '` TO `', @newIndexName, '`;'
|
||||||
|
120
lang/am-ET.json
Normal file
120
lang/am-ET.json
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
{
|
||||||
|
"label.accounts": "Accounts",
|
||||||
|
"label.add-account": "Add account",
|
||||||
|
"label.add-column": "Add column",
|
||||||
|
"label.add-filter": "Add filter",
|
||||||
|
"label.add-website": "Add website",
|
||||||
|
"label.administrator": "Administrator",
|
||||||
|
"label.all": "All",
|
||||||
|
"label.all-time": "All time",
|
||||||
|
"label.all-websites": "All websites",
|
||||||
|
"label.back": "Back",
|
||||||
|
"label.cancel": "Cancel",
|
||||||
|
"label.change-password": "Change password",
|
||||||
|
"label.confirm-password": "Confirm password",
|
||||||
|
"label.copy-to-clipboard": "Copy to clipboard",
|
||||||
|
"label.current-password": "Current password",
|
||||||
|
"label.custom-range": "Custom range",
|
||||||
|
"label.dashboard": "Dashboard",
|
||||||
|
"label.date-range": "Date range",
|
||||||
|
"label.default-date-range": "Default date range",
|
||||||
|
"label.delete": "Delete",
|
||||||
|
"label.delete-account": "Delete account",
|
||||||
|
"label.delete-website": "Delete website",
|
||||||
|
"label.dismiss": "Dismiss",
|
||||||
|
"label.domain": "Domain",
|
||||||
|
"label.edit": "Edit",
|
||||||
|
"label.edit-account": "Edit account",
|
||||||
|
"label.edit-website": "Edit website",
|
||||||
|
"label.enable-share-url": "Enable share URL",
|
||||||
|
"label.event-data": "Event Data",
|
||||||
|
"label.field-name": "Field Name",
|
||||||
|
"label.invalid": "Invalid",
|
||||||
|
"label.invalid-domain": "Invalid domain",
|
||||||
|
"label.language": "Language",
|
||||||
|
"label.last-days": "Last {x} days",
|
||||||
|
"label.last-hours": "Last {x} hours",
|
||||||
|
"label.logged-in-as": "Logged in as {username}",
|
||||||
|
"label.login": "Login",
|
||||||
|
"label.logout": "Logout",
|
||||||
|
"label.more": "More",
|
||||||
|
"label.name": "Name",
|
||||||
|
"label.new-password": "New password",
|
||||||
|
"label.none": "None",
|
||||||
|
"label.owner": "Owner",
|
||||||
|
"label.password": "Password",
|
||||||
|
"label.passwords-dont-match": "Passwords don't match",
|
||||||
|
"label.profile": "Profile",
|
||||||
|
"label.realtime": "Realtime",
|
||||||
|
"label.realtime-logs": "Realtime logs",
|
||||||
|
"label.refresh": "Refresh",
|
||||||
|
"label.required": "Required",
|
||||||
|
"label.reset": "Reset",
|
||||||
|
"label.reset-website": "Reset statistics",
|
||||||
|
"label.save": "Save",
|
||||||
|
"label.search": "Search",
|
||||||
|
"label.settings": "Settings",
|
||||||
|
"label.share-url": "Share URL",
|
||||||
|
"label.single-day": "Single day",
|
||||||
|
"label.theme": "Theme",
|
||||||
|
"label.this-month": "This month",
|
||||||
|
"label.this-week": "This week",
|
||||||
|
"label.this-year": "This year",
|
||||||
|
"label.timezone": "Timezone",
|
||||||
|
"label.today": "Today",
|
||||||
|
"label.tracking-code": "Tracking code",
|
||||||
|
"label.type": "Type",
|
||||||
|
"label.unknown": "Unknown",
|
||||||
|
"label.username": "Username",
|
||||||
|
"label.value": "Value",
|
||||||
|
"label.view-details": "View details",
|
||||||
|
"label.websites": "Websites",
|
||||||
|
"label.yesterday": "Yesterday",
|
||||||
|
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
|
||||||
|
"message.confirm-delete": "Are you sure you want to delete {target}?",
|
||||||
|
"message.confirm-reset": "Are you sure you want to reset {target}'s statistics?",
|
||||||
|
"message.copied": "Copied!",
|
||||||
|
"message.delete-warning": "All associated data will be deleted as well.",
|
||||||
|
"message.edit-dashboard": "Edit dashboard",
|
||||||
|
"message.failure": "Something went wrong.",
|
||||||
|
"message.get-share-url": "Get share URL",
|
||||||
|
"message.get-tracking-code": "Get tracking code",
|
||||||
|
"message.go-to-settings": "Go to settings",
|
||||||
|
"message.incorrect-username-password": "Incorrect username/password.",
|
||||||
|
"message.log.visitor": "Visitor from {country} using {browser} on {os} {device}",
|
||||||
|
"message.new-version-available": "A new version of umami {version} is available!",
|
||||||
|
"message.no-data-available": "No data available.",
|
||||||
|
"message.no-websites-configured": "You don't have any websites configured.",
|
||||||
|
"message.page-not-found": "Page not found.",
|
||||||
|
"message.powered-by": "Powered by {name}",
|
||||||
|
"message.reset-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.",
|
||||||
|
"message.save-success": "Saved successfully.",
|
||||||
|
"message.share-url": "This is the publicly shared URL for {target}.",
|
||||||
|
"message.toggle-charts": "Toggle charts",
|
||||||
|
"message.track-stats": "To track stats for {target}, place the following code in the {head} section of your website.",
|
||||||
|
"message.type-delete": "Type {delete} in the box below to confirm.",
|
||||||
|
"message.type-reset": "Type {reset} in the box below to confirm.",
|
||||||
|
"metrics.actions": "Actions",
|
||||||
|
"metrics.average-visit-time": "Average visit time",
|
||||||
|
"metrics.bounce-rate": "Bounce rate",
|
||||||
|
"metrics.browsers": "Browsers",
|
||||||
|
"metrics.countries": "Countries",
|
||||||
|
"metrics.device.desktop": "Desktop",
|
||||||
|
"metrics.device.laptop": "Laptop",
|
||||||
|
"metrics.device.mobile": "Mobile",
|
||||||
|
"metrics.device.tablet": "Tablet",
|
||||||
|
"metrics.devices": "Devices",
|
||||||
|
"metrics.events": "Events",
|
||||||
|
"metrics.filter.combined": "Combined",
|
||||||
|
"metrics.filter.raw": "Raw",
|
||||||
|
"metrics.languages": "Languages",
|
||||||
|
"metrics.operating-systems": "Operating systems",
|
||||||
|
"metrics.page-views": "Page views",
|
||||||
|
"metrics.pages": "Pages",
|
||||||
|
"metrics.query-parameters": "Query parameters",
|
||||||
|
"metrics.referrers": "Referrers",
|
||||||
|
"metrics.screens": "Screens",
|
||||||
|
"metrics.unique-visitors": "Unique visitors",
|
||||||
|
"metrics.views": "Views",
|
||||||
|
"metrics.visitors": "Visitors"
|
||||||
|
}
|
@ -6,9 +6,9 @@
|
|||||||
"label.add-website": "Dodaj web stranicu",
|
"label.add-website": "Dodaj web stranicu",
|
||||||
"label.administrator": "Administrator",
|
"label.administrator": "Administrator",
|
||||||
"label.all": "Sve",
|
"label.all": "Sve",
|
||||||
"label.all-time": "Svo vrijeme" ,
|
"label.all-time": "Svo vrijeme",
|
||||||
"label.all-websites": "Sve web stranice",
|
"label.all-websites": "Sve web stranice",
|
||||||
"label.back": "Natrag ",
|
"label.back": "Natrag ",
|
||||||
"label.cancel": "Odustani",
|
"label.cancel": "Odustani",
|
||||||
"label.change-password": "Promijeni lozinku",
|
"label.change-password": "Promijeni lozinku",
|
||||||
"label.confirm-password": "Potvrdi lozinku",
|
"label.confirm-password": "Potvrdi lozinku",
|
||||||
@ -21,15 +21,15 @@
|
|||||||
"label.delete": "Obriši",
|
"label.delete": "Obriši",
|
||||||
"label.delete-account": "Obriši račun",
|
"label.delete-account": "Obriši račun",
|
||||||
"label.delete-website": "Obriši web stranicu",
|
"label.delete-website": "Obriši web stranicu",
|
||||||
"label.dismiss": "Odbaci",
|
"label.dismiss": "Odbaci",
|
||||||
"label.domain": "Domena",
|
"label.domain": "Domena",
|
||||||
"label.edit": "Uredi",
|
"label.edit": "Uredi",
|
||||||
"label.edit-account": "Uredi račun",
|
"label.edit-account": "Uredi račun",
|
||||||
"label.edit-website": "Uredi web stranicu",
|
"label.edit-website": "Uredi web stranicu",
|
||||||
"label.enable-share-url": "Omogući dijeljenje URL-a",
|
"label.enable-share-url": "Omogući dijeljenje poveznice",
|
||||||
"label.event-data": "Podaci događaja",
|
"label.event-data": "Podaci događaja",
|
||||||
"label.field-name": "Naziv polja",
|
"label.field-name": "Naziv polja",
|
||||||
"label.invalid": "Nesipravno",
|
"label.invalid": "Neispravno",
|
||||||
"label.invalid-domain": "Neispravna domena",
|
"label.invalid-domain": "Neispravna domena",
|
||||||
"label.language": "Jezik",
|
"label.language": "Jezik",
|
||||||
"label.last-days": "Zadnjih {x} dana",
|
"label.last-days": "Zadnjih {x} dana",
|
||||||
@ -40,21 +40,21 @@
|
|||||||
"label.more": "Više",
|
"label.more": "Više",
|
||||||
"label.name": "Ime",
|
"label.name": "Ime",
|
||||||
"label.new-password": "Nova lozinka",
|
"label.new-password": "Nova lozinka",
|
||||||
"label.none": "Ništa",
|
"label.none": "Ništa",
|
||||||
"label.owner": "Vlasnik",
|
"label.owner": "Vlasnik",
|
||||||
"label.password": "Lozinka",
|
"label.password": "Lozinka",
|
||||||
"label.passwords-dont-match": "Lozinka nije točna",
|
"label.passwords-dont-match": "Lozinke se ne podudaraju",
|
||||||
"label.profile": "Profil",
|
"label.profile": "Profil",
|
||||||
"label.realtime": "Stvarno vrijeme",
|
"label.realtime": "Stvarno vrijeme",
|
||||||
"label.realtime-logs":"Trenutni zapisi",
|
"label.realtime-logs": "Trenutni zapisi",
|
||||||
"label.refresh": "Osvježi",
|
"label.refresh": "Osvježi",
|
||||||
"label.required": "Potrebna",
|
"label.required": "Potrebna",
|
||||||
"label.reset": "Resetirati",
|
"label.reset": "Resetirati",
|
||||||
"label.reset-website": "Resetirati web stranicu",
|
"label.reset-website": "Resetirati web stranicu",
|
||||||
"label.save": "Spremi",
|
"label.save": "Spremi",
|
||||||
"label.search": "Pretraži",
|
"label.search": "Pretraži",
|
||||||
"label.settings": "Postavke",
|
"label.settings": "Postavke",
|
||||||
"label.share-url": "Podijeli URL",
|
"label.share-url": "Podijeli poveznicu",
|
||||||
"label.single-day": "Jedan dan",
|
"label.single-day": "Jedan dan",
|
||||||
"label.theme": "Tema",
|
"label.theme": "Tema",
|
||||||
"label.this-month": "Ovaj mjesec",
|
"label.this-month": "Ovaj mjesec",
|
||||||
@ -70,15 +70,15 @@
|
|||||||
"label.view-details": "Pogledaj detalje",
|
"label.view-details": "Pogledaj detalje",
|
||||||
"label.websites": "Web stranice",
|
"label.websites": "Web stranice",
|
||||||
"label.yesterday": "Jučer",
|
"label.yesterday": "Jučer",
|
||||||
"message.active-users": "{x} Trenutno {x, plural, one {visitor} other {visitors}}",
|
"message.active-users": "{x} Trenutno {x, plural, one {posjetitelj} other {posjetitelja}}",
|
||||||
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
|
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
|
||||||
"message.confirm-reset": "Jeste li sigurni da želite resetirati {target}'s statistiku?",
|
"message.confirm-reset": "Jeste li sigurni da želite resetirati {target}'s statistiku?",
|
||||||
"message.copied": "Kopirano!",
|
"message.copied": "Kopirano!",
|
||||||
"message.delete-warning": "Izbrisat će se svi povezani podaci.",
|
"message.delete-warning": "Izbrisat će se svi povezani podaci.",
|
||||||
"message.edit-dashboard": "Uredi nadzornu ploču",
|
"message.edit-dashboard": "Uredi nadzornu ploču",
|
||||||
"message.failure": "Nešto je pošlo po zlu.",
|
"message.failure": "Nešto je pošlo po zlu.",
|
||||||
"message.get-share-url": "Dohvati URL za dijeljenje",
|
"message.get-share-url": "Dohvati poveznicu za dijeljenje",
|
||||||
"message.get-tracking-code": "Dohvati kod za praćenje",
|
"message.get-tracking-code": "Dohvati kod za praćenje",
|
||||||
"message.go-to-settings": "Idi u postavke",
|
"message.go-to-settings": "Idi u postavke",
|
||||||
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
|
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
|
||||||
"message.log.visitor": "Posjetitelj iz {country} koristi {browser} na {os} {device}",
|
"message.log.visitor": "Posjetitelj iz {country} koristi {browser} na {os} {device}",
|
||||||
@ -86,33 +86,33 @@
|
|||||||
"message.no-data-available": "Nema dostupnih podataka.",
|
"message.no-data-available": "Nema dostupnih podataka.",
|
||||||
"message.no-websites-configured": "Nemate konfiguriranu nijednu web stranicu.",
|
"message.no-websites-configured": "Nemate konfiguriranu nijednu web stranicu.",
|
||||||
"message.page-not-found": "Stranica nije pronađena.",
|
"message.page-not-found": "Stranica nije pronađena.",
|
||||||
"message.powered-by": "Powered by {name}",
|
"message.powered-by": "Pokreće {name}",
|
||||||
"message.reset-warning": "Sve statistike za ovu web stranicu bit će izbrisane, ali će vaš kod za praćenje ostati netaknut.",
|
"message.reset-warning": "Sve statistike za ovu web stranicu bit će izbrisane, ali će vaš kod za praćenje ostati netaknut.",
|
||||||
"message.save-success": "Uspješno spremljeno.",
|
"message.save-success": "Uspješno spremljeno.",
|
||||||
"message.share-url": "Ovo je javno dijeljeni URL za {target}.",
|
"message.share-url": "Ovo je javno dijeljena poveznica za {target}.",
|
||||||
"message.toggle-charts": "Uključi/isključi grafikone",
|
"message.toggle-charts": "Uključi/isključi grafikone",
|
||||||
"message.track-stats": "Da biste pratili statistiku za {target}, postavite sljedeći kod u odjeljak {head} svoje web stranice.",
|
"message.track-stats": "Da biste pratili statistiku za {target}, postavite sljedeći kod u odjeljak {head} svoje web stranice.",
|
||||||
"message.type-delete": "Upišite {delete} u donji okvir za potvrdu.",
|
"message.type-delete": "Upišite {delete} u donji okvir za potvrdu.",
|
||||||
"message.type-reset": " Upišite {reset} u donji okvir za potvrdu. ",
|
"message.type-reset": " Upišite {reset} u donji okvir za potvrdu. ",
|
||||||
"metrics.actions": "Akcije",
|
"metrics.actions": "Akcije",
|
||||||
"metrics.average-visit-time": "Prosječno vrijeme posjeta",
|
"metrics.average-visit-time": "Prosječno vrijeme posjeta",
|
||||||
"metrics.bounce-rate": "Stopa napuštanja stranice",
|
"metrics.bounce-rate": "Stopa napuštanja stranice",
|
||||||
"metrics.browsers": "Web preglednici",
|
"metrics.browsers": "Web preglednici",
|
||||||
"metrics.countries": "Zemlje",
|
"metrics.countries": "Zemlje",
|
||||||
"metrics.device.desktop": "Pc",
|
"metrics.device.desktop": "Pc",
|
||||||
"metrics.device.laptop": "Laptop",
|
"metrics.device.laptop": "Laptop",
|
||||||
"metrics.device.mobile": "Mobitel",
|
"metrics.device.mobile": "Mobitel",
|
||||||
"metrics.device.tablet": "Tablet",
|
"metrics.device.tablet": "Tablet",
|
||||||
"metrics.devices": "Uređaji",
|
"metrics.devices": "Uređaji",
|
||||||
"metrics.events": "Događaji",
|
"metrics.events": "Događaji",
|
||||||
"metrics.filter.combined": "Kombinirano",
|
"metrics.filter.combined": "Kombinirano",
|
||||||
"metrics.filter.raw": "Neobrađeni podaci",
|
"metrics.filter.raw": "Neobrađeni podaci",
|
||||||
"metrics.languages": "Jezici",
|
"metrics.languages": "Jezici",
|
||||||
"metrics.operating-systems": "Operativni sustavi",
|
"metrics.operating-systems": "Operativni sustavi",
|
||||||
"metrics.page-views": "Pregledi stranice",
|
"metrics.page-views": "Pregledi stranice",
|
||||||
"metrics.pages": "Stranice",
|
"metrics.pages": "Stranice",
|
||||||
"metrics.query-parameters": "Parametri upita",
|
"metrics.query-parameters": "Parametri upita",
|
||||||
"metrics.referrers": "Upučivaći",
|
"metrics.referrers": "Upučivaći",
|
||||||
"metrics.screens": "Zasloni",
|
"metrics.screens": "Zasloni",
|
||||||
"metrics.unique-visitors": "Jedinstveni posjetitelji",
|
"metrics.unique-visitors": "Jedinstveni posjetitelji",
|
||||||
"metrics.views": "Pregledi",
|
"metrics.views": "Pregledi",
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
"label.username": "Vartotojo vardas",
|
"label.username": "Vartotojo vardas",
|
||||||
"label.view-details": "Peržiūrėti detaliau",
|
"label.view-details": "Peržiūrėti detaliau",
|
||||||
"label.websites": "Svetainės",
|
"label.websites": "Svetainės",
|
||||||
|
"label.yesterday": "Vakar",
|
||||||
"message.active-users": "{x, plural, =0 {# aktyvių vartotojų} zero {# aktyvių vartotojų} one {# aktyvus vartotojas} other {# aktyvūs vartotojai}}",
|
"message.active-users": "{x, plural, =0 {# aktyvių vartotojų} zero {# aktyvių vartotojų} one {# aktyvus vartotojas} other {# aktyvūs vartotojai}}",
|
||||||
"message.confirm-delete": "Ar esate tikri, jog norite ištrinti svetainę {target}?",
|
"message.confirm-delete": "Ar esate tikri, jog norite ištrinti svetainę {target}?",
|
||||||
"message.confirm-reset": "Are esate tikri, jog norite atstatyti svetainės {target} statistikos duomenis?",
|
"message.confirm-reset": "Are esate tikri, jog norite atstatyti svetainės {target} statistikos duomenis?",
|
||||||
|
120
lang/si-LK.json
Normal file
120
lang/si-LK.json
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
{
|
||||||
|
"label.accounts": "ගිණුම්",
|
||||||
|
"label.add-account": "ගිණුම එකතු කරන්න",
|
||||||
|
"label.add-column": "තීරුව එක් කරන්න",
|
||||||
|
"label.add-filter": "පෙරහන එකතු කරන්න",
|
||||||
|
"label.add-website": "වෙබ් අඩවිය එක් කරන්න",
|
||||||
|
"label.administrator": "පරිපාලක",
|
||||||
|
"label.all": "සියල්ල",
|
||||||
|
"label.all-time": "හැම වෙලාවෙම",
|
||||||
|
"label.all-websites": "සියලුම වෙබ් අඩවි",
|
||||||
|
"label.back": "ආපසු",
|
||||||
|
"label.cancel": "අවලංගු කරන්න",
|
||||||
|
"label.change-password": "මුරපදය වෙනස් කරන්න",
|
||||||
|
"label.confirm-password": "මුරපදය සත්යාපනය කරන්න",
|
||||||
|
"label.copy-to-clipboard": "පසුරු පුවරුවට පිටපත් කරන්න",
|
||||||
|
"label.current-password": "වත්මන් මුරපදය",
|
||||||
|
"label.custom-range": "අභිරුචි පරාසය",
|
||||||
|
"label.dashboard": "උපකරණ පුවරුව",
|
||||||
|
"label.date-range": "දින පරාසය",
|
||||||
|
"label.default-date-range": "පෙරනිමි දින පරාසය",
|
||||||
|
"label.delete": "මකන්න",
|
||||||
|
"label.delete-account": "ගිණුම මකන්න",
|
||||||
|
"label.delete-website": "වෙබ් අඩවිය මකන්න",
|
||||||
|
"label.dismiss": "මගහරින්න",
|
||||||
|
"label.domain": "වසම",
|
||||||
|
"label.edit": "සංස්කරණය කරන්න",
|
||||||
|
"label.edit-account": "ගිණුම සංස්කරණය කරන්න",
|
||||||
|
"label.edit-website": "වෙබ් අඩවිය සංස්කරණය කරන්න",
|
||||||
|
"label.enable-share-url": "බෙදාගැනීමේ URL සබල කරන්න",
|
||||||
|
"label.event-data": "සිදුවීම් දත්ත",
|
||||||
|
"label.field-name": "ක්ෂේත්ර නාම",
|
||||||
|
"label.invalid": "වලංගු නැත",
|
||||||
|
"label.invalid-domain": "වලංගු නොවන වසමක්",
|
||||||
|
"label.language": "භාෂාව",
|
||||||
|
"label.last-days": "අන්තිම {x} දින",
|
||||||
|
"label.last-hours": "අන්තිම {x} පැය",
|
||||||
|
"label.logged-in-as": "ලොග් වී ඇත්තේ {username}",
|
||||||
|
"label.login": "ලොග් වෙන්න",
|
||||||
|
"label.logout": "පිටවීම",
|
||||||
|
"label.more": "තවත්",
|
||||||
|
"label.name": "නම",
|
||||||
|
"label.new-password": "අලුත් මුරපදය",
|
||||||
|
"label.none": "කිසිවක් නැත",
|
||||||
|
"label.owner": "හිමිකරු",
|
||||||
|
"label.password": "මුරපදය",
|
||||||
|
"label.passwords-dont-match": "මුරපද නොගැලපේ",
|
||||||
|
"label.profile": "පැතිකඩ",
|
||||||
|
"label.realtime": "තත්ය කාල",
|
||||||
|
"label.realtime-logs": "තත්ය කාලීන ලොග්",
|
||||||
|
"label.refresh": "නැවුම් කරන්න",
|
||||||
|
"label.required": "අවශ්යයි",
|
||||||
|
"label.reset": "යළි පිහිටුවන්න",
|
||||||
|
"label.reset-website": "සංඛ්යා ලේඛන නැවත සකසන්න",
|
||||||
|
"label.save": "සුරකින්න",
|
||||||
|
"label.search": "සෙවීම",
|
||||||
|
"label.settings": "සැකසුම්",
|
||||||
|
"label.share-url": "බෙදාගැනීමේ URL",
|
||||||
|
"label.single-day": "තනි දවස",
|
||||||
|
"label.theme": "තේමාව",
|
||||||
|
"label.this-month": "මෙ මාසය",
|
||||||
|
"label.this-week": "මේ සතිය",
|
||||||
|
"label.this-year": "මේ අවුරුද්ද",
|
||||||
|
"label.timezone": "වේලා කලාපය",
|
||||||
|
"label.today": "අද",
|
||||||
|
"label.tracking-code": "ලුහුබැඳීමේ කේතය",
|
||||||
|
"label.type": "වර්ගය",
|
||||||
|
"label.unknown": "නොදනී",
|
||||||
|
"label.username": "පරිශීලක නාමය",
|
||||||
|
"label.value": "වටිනාකම",
|
||||||
|
"label.view-details": "තොරතුරු පෙන්වන්න",
|
||||||
|
"label.websites": "වෙබ් අඩවි",
|
||||||
|
"label.yesterday": "ඊයේ",
|
||||||
|
"message.active-users": "{x} දැන් {x, plural, one {අමුත්තා} other {අමුත්තන්}}",
|
||||||
|
"message.confirm-delete": "{target} මකා දැමීම ගැන විශ්වාසද?",
|
||||||
|
"message.confirm-reset": "{target} ට අදාල සංඛ්යාලේඛන නැවත පිහිටුවීමට අවශ්යද?",
|
||||||
|
"message.copied": "පිටපත් කරගත්තා!",
|
||||||
|
"message.delete-warning": "සියලුම ආශ්රිත දත්ත ද මකා දැමෙනු ඇත.",
|
||||||
|
"message.edit-dashboard": "උපකරණ පුවරුව සංස්කරණය කරන්න",
|
||||||
|
"message.failure": "යම් ගැටලුවක් මතු වී ඇත.",
|
||||||
|
"message.get-share-url": "බෙදාගැනීමේ URL ලබා ගන්න",
|
||||||
|
"message.get-tracking-code": "ලුහුබැඳීමේ කේතය ලබා ගන්න",
|
||||||
|
"message.go-to-settings": "සැකසීම් වෙත යන්න",
|
||||||
|
"message.incorrect-username-password": "වැරදි පරිශීලක නාමය/මුරපදය.",
|
||||||
|
"message.log.visitor": "{country} වලින් පැමිණි අමුත්තකු {device} එකේ, මේ {os} එකේ, මේ {browser} එකෙන් ඉන්නවා",
|
||||||
|
"message.new-version-available": "umami අලුත්ම {version} වන අනුවාදය නිකුත් උනා!",
|
||||||
|
"message.no-data-available": "පෙන්වීමට දත්ත නොමැත.",
|
||||||
|
"message.no-websites-configured": "ඔබට වින්යාස කර ඇති වෙබ් අඩවි කිසිවක් නොමැත.",
|
||||||
|
"message.page-not-found": "පිටුව හමු නොවීය.",
|
||||||
|
"message.powered-by": "බල ගැන්වුයේ {name}",
|
||||||
|
"message.reset-warning": "සියලුම සංඛ්යාලේඛන මකා දමනු ඇත. නමුත් ඔබගේ නිරීක්ෂණ කේතය නොවෙනස්ව පවතිනු ඇත.",
|
||||||
|
"message.save-success": "සාර්තකව සුරැකිණි.",
|
||||||
|
"message.share-url": "මේ {target} සඳහා ප්රසිද්ධියේ බෙදාගත් URL එකයි.",
|
||||||
|
"message.toggle-charts": "ප්රස්ථාර ටොගල් කරන්න",
|
||||||
|
"message.track-stats": "{target} හි සංඛ්යාලේඛන බැලීම සදහා, පහත කේතය {head} කොටසට ඇතුලත් කරන්න.",
|
||||||
|
"message.type-delete": "සත්යාපනය සදහා {delete} ලෙස පහල කොටුවේ ටයිප් කරන්න",
|
||||||
|
"message.type-reset": "සත්යාපනය සදහා {reset} ලෙස පහල කොටුවේ ටයිප් කරන්න",
|
||||||
|
"metrics.actions": "ක්රියාවන්",
|
||||||
|
"metrics.average-visit-time": "සාමාන්ය සංචාර කාලය",
|
||||||
|
"metrics.bounce-rate": "හැරී යන ප්රමාණය",
|
||||||
|
"metrics.browsers": "බ්රව්සර්",
|
||||||
|
"metrics.countries": "රටවල්",
|
||||||
|
"metrics.device.desktop": "ඩෙස්ක්ටොප්",
|
||||||
|
"metrics.device.laptop": "ලැප්ටොප්",
|
||||||
|
"metrics.device.mobile": "ජංගම",
|
||||||
|
"metrics.device.tablet": "ටැබ්ලට්",
|
||||||
|
"metrics.devices": "උපකරණ",
|
||||||
|
"metrics.events": "සිද්ධීන්",
|
||||||
|
"metrics.filter.combined": "ඒකාබද්ධ",
|
||||||
|
"metrics.filter.raw": "අමු",
|
||||||
|
"metrics.languages": "භාෂා",
|
||||||
|
"metrics.operating-systems": "මෙහෙයුම් පද්ධති",
|
||||||
|
"metrics.page-views": "පිටු බැලීම්",
|
||||||
|
"metrics.pages": "පිටු",
|
||||||
|
"metrics.query-parameters": "විමසුම් පරාමිතීන්",
|
||||||
|
"metrics.referrers": "යොමු කරන්නන්",
|
||||||
|
"metrics.screens": "තිර",
|
||||||
|
"metrics.unique-visitors": "අලුත්ම අමුත්තන්",
|
||||||
|
"metrics.views": "බැලූ ගණන",
|
||||||
|
"metrics.visitors": "අමුත්තන්"
|
||||||
|
}
|
@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"label.accounts": "บัญชี",
|
"label.accounts": "บัญชี",
|
||||||
"label.add-account": "เพิ่มบัญชี",
|
"label.add-account": "เพิ่มบัญชี",
|
||||||
|
"label.add-column": "สร้างคอลัมน์",
|
||||||
|
"label.add-filter": "สร้างตัวกรอง",
|
||||||
"label.add-website": "เพิ่มเว็บไซต์",
|
"label.add-website": "เพิ่มเว็บไซต์",
|
||||||
"label.administrator": "ผู้ดูแลระบบ",
|
"label.administrator": "ผู้ดูแลระบบ",
|
||||||
"label.all": "ทั้งหมด",
|
"label.all": "ทั้งหมด",
|
||||||
@ -44,10 +46,11 @@
|
|||||||
"label.realtime": "เรียลไทม์",
|
"label.realtime": "เรียลไทม์",
|
||||||
"label.realtime-logs": "Log แบบเรียลไทม์",
|
"label.realtime-logs": "Log แบบเรียลไทม์",
|
||||||
"label.refresh": "รีเฟรช",
|
"label.refresh": "รีเฟรช",
|
||||||
"label.required": "ต้องการ",
|
"label.required": "จำเป็น",
|
||||||
"label.reset": "รีเซต",
|
"label.reset": "รีเซต",
|
||||||
"label.reset-website": "รีเซตข้อมูลสถิติ",
|
"label.reset-website": "รีเซตข้อมูลสถิติ",
|
||||||
"label.save": "บันทึก",
|
"label.save": "บันทึก",
|
||||||
|
"label.search": "ค้นหา",
|
||||||
"label.settings": "ตั้งค่า",
|
"label.settings": "ตั้งค่า",
|
||||||
"label.share-url": "แชร์ลิงก์",
|
"label.share-url": "แชร์ลิงก์",
|
||||||
"label.single-day": "วันที่",
|
"label.single-day": "วันที่",
|
||||||
@ -62,12 +65,13 @@
|
|||||||
"label.username": "ชื่อผู้ใช้",
|
"label.username": "ชื่อผู้ใช้",
|
||||||
"label.view-details": "แสดงรายละเอียด",
|
"label.view-details": "แสดงรายละเอียด",
|
||||||
"label.websites": "เว็บไซต์",
|
"label.websites": "เว็บไซต์",
|
||||||
|
"label.yesterday": "เมื่อวาน",
|
||||||
"message.active-users": "มีผู้ใช้งาน {x} {x, plural, one {คนในขณะนี้} other {คนในขณะนี้}}",
|
"message.active-users": "มีผู้ใช้งาน {x} {x, plural, one {คนในขณะนี้} other {คนในขณะนี้}}",
|
||||||
"message.confirm-delete": "คุณแน่ใจหรือไม่ว่าต้องการลบ {target} ?",
|
"message.confirm-delete": "คุณแน่ใจหรือไม่ว่าต้องการลบ {target} ?",
|
||||||
"message.confirm-reset": "คุณแน่ใจหรือไม่ว่าต้องการรีเซตข้อมูลสถิติของ {target} ?",
|
"message.confirm-reset": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตข้อมูลสถิติของ {target} ?",
|
||||||
"message.copied": "คัดลอกแล้ว!",
|
"message.copied": "คัดลอกแล้ว!",
|
||||||
"message.delete-warning": "ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบ.",
|
"message.delete-warning": "ข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกลบ.",
|
||||||
"message.edit-dashboard": "Edit dashboard",
|
"message.edit-dashboard": "แก้ไขแดชบอร์ด",
|
||||||
"message.failure": "เกิดข้อผิดพลาด.",
|
"message.failure": "เกิดข้อผิดพลาด.",
|
||||||
"message.get-share-url": "รับลิงก์สำหรับแชร์",
|
"message.get-share-url": "รับลิงก์สำหรับแชร์",
|
||||||
"message.get-tracking-code": "รับโค้ดสำหรับใช้ติดตาม",
|
"message.get-tracking-code": "รับโค้ดสำหรับใช้ติดตาม",
|
||||||
@ -103,7 +107,7 @@
|
|||||||
"metrics.operating-systems": "ระบบปฏิบัติการ",
|
"metrics.operating-systems": "ระบบปฏิบัติการ",
|
||||||
"metrics.page-views": "การเข้าชม",
|
"metrics.page-views": "การเข้าชม",
|
||||||
"metrics.pages": "หน้าเพจ",
|
"metrics.pages": "หน้าเพจ",
|
||||||
"metrics.query-parameters": "Query parameters",
|
"metrics.query-parameters": "พารามิเตอร์ URL",
|
||||||
"metrics.referrers": "แหล่งที่มา",
|
"metrics.referrers": "แหล่งที่มา",
|
||||||
"metrics.screens": "ขนาดหน้าจอ",
|
"metrics.screens": "ขนาดหน้าจอ",
|
||||||
"metrics.unique-visitors": "ผู้เข้าชม",
|
"metrics.unique-visitors": "ผู้เข้าชม",
|
||||||
|
@ -35,7 +35,7 @@ export function isValidToken(token, validation) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function allowQuery(req, type) {
|
export async function allowQuery(req, type, allowShareToken = true) {
|
||||||
const { id } = req.query;
|
const { id } = req.query;
|
||||||
|
|
||||||
const { userId, isAdmin, shareToken } = req.auth ?? {};
|
const { userId, isAdmin, shareToken } = req.auth ?? {};
|
||||||
@ -44,7 +44,7 @@ export async function allowQuery(req, type) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shareToken) {
|
if (allowShareToken && shareToken) {
|
||||||
return isValidToken(shareToken, { id });
|
return isValidToken(shareToken, { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ import {
|
|||||||
ca,
|
ca,
|
||||||
hu,
|
hu,
|
||||||
vi,
|
vi,
|
||||||
|
si,
|
||||||
} from 'date-fns/locale';
|
} from 'date-fns/locale';
|
||||||
|
|
||||||
export const languages = {
|
export const languages = {
|
||||||
@ -62,7 +63,7 @@ export const languages = {
|
|||||||
'he-IL': { label: 'עברית', dateLocale: he },
|
'he-IL': { label: 'עברית', dateLocale: he },
|
||||||
'hi-IN': { label: 'हिन्दी', dateLocale: hi },
|
'hi-IN': { label: 'हिन्दी', dateLocale: hi },
|
||||||
'hu-HU': { label: 'Hungarian', dateLocale: hu },
|
'hu-HU': { label: 'Hungarian', dateLocale: hu },
|
||||||
'hr-HR': { label: 'hrvatski', dateLocale: hr },
|
'hr-HR': { label: 'Hrvatski', dateLocale: hr },
|
||||||
'it-IT': { label: 'Italiano', dateLocale: it },
|
'it-IT': { label: 'Italiano', dateLocale: it },
|
||||||
'id-ID': { label: 'Bahasa Indonesia', dateLocale: id },
|
'id-ID': { label: 'Bahasa Indonesia', dateLocale: id },
|
||||||
'ja-JP': { label: '日本語', dateLocale: ja },
|
'ja-JP': { label: '日本語', dateLocale: ja },
|
||||||
@ -82,6 +83,7 @@ export const languages = {
|
|||||||
'fi-FI': { label: 'Suomi', dateLocale: fi },
|
'fi-FI': { label: 'Suomi', dateLocale: fi },
|
||||||
'sv-SE': { label: 'Svenska', dateLocale: sv },
|
'sv-SE': { label: 'Svenska', dateLocale: sv },
|
||||||
'ta-IN': { label: 'தமிழ்', dateLocale: ta },
|
'ta-IN': { label: 'தமிழ்', dateLocale: ta },
|
||||||
|
'si-LK': { label: 'සිංහල', dateLocale: si },
|
||||||
'th-TH': { label: 'ภาษาไทย', dateLocale: th },
|
'th-TH': { label: 'ภาษาไทย', dateLocale: th },
|
||||||
'tr-TR': { label: 'Türkçe', dateLocale: tr },
|
'tr-TR': { label: 'Türkçe', dateLocale: tr },
|
||||||
'uk-UA': { label: 'українська', dateLocale: uk },
|
'uk-UA': { label: 'українська', dateLocale: uk },
|
||||||
|
@ -3,7 +3,12 @@ import cors from 'cors';
|
|||||||
import { getSession } from './session';
|
import { getSession } from './session';
|
||||||
import { getAuthToken, getShareToken } from './auth';
|
import { getAuthToken, getShareToken } from './auth';
|
||||||
|
|
||||||
export const useCors = createMiddleware(cors());
|
export const useCors = createMiddleware(
|
||||||
|
cors({
|
||||||
|
// Cache CORS preflight request 24 hours by default
|
||||||
|
maxAge: process.env.CORS_MAX_AGE || 86400,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
export const useSession = createMiddleware(async (req, res, next) => {
|
export const useSession = createMiddleware(async (req, res, next) => {
|
||||||
let session;
|
let session;
|
||||||
|
@ -36,6 +36,18 @@ function logQuery(e) {
|
|||||||
log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
|
log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toUuid() {
|
||||||
|
const db = getDatabaseType(process.env.DATABASE_URL);
|
||||||
|
|
||||||
|
if (db === POSTGRESQL) {
|
||||||
|
return '::uuid';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (db === MYSQL) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getClient(options) {
|
function getClient(options) {
|
||||||
const prisma = new PrismaClient(options);
|
const prisma = new PrismaClient(options);
|
||||||
|
|
||||||
@ -85,11 +97,23 @@ function getTimestampInterval(field) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getJsonField(column, property, isNumber) {
|
function getSanitizedColumns(columns) {
|
||||||
|
return Object.keys(columns).reduce((acc, keyName) => {
|
||||||
|
const sanitizedProperty = keyName.replace(/[^\w\s_]/g, '');
|
||||||
|
|
||||||
|
acc[sanitizedProperty] = columns[keyName];
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getJsonField(column, property, isNumber, params) {
|
||||||
const db = getDatabaseType(process.env.DATABASE_URL);
|
const db = getDatabaseType(process.env.DATABASE_URL);
|
||||||
|
|
||||||
if (db === POSTGRESQL) {
|
if (db === POSTGRESQL) {
|
||||||
let accessor = `${column} ->> '${property}'`;
|
params.push(property);
|
||||||
|
|
||||||
|
let accessor = `${column} ->> $${params.length}`;
|
||||||
|
|
||||||
if (isNumber) {
|
if (isNumber) {
|
||||||
accessor = `CAST(${accessor} AS DECIMAL)`;
|
accessor = `CAST(${accessor} AS DECIMAL)`;
|
||||||
@ -99,21 +123,29 @@ function getJsonField(column, property, isNumber) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (db === MYSQL) {
|
if (db === MYSQL) {
|
||||||
return `${column} ->> "$.${property}"`;
|
return `${column} ->> '$.${property}'`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventDataColumnsQuery(column, columns) {
|
function getEventDataColumnsQuery(column, columns, params) {
|
||||||
const query = Object.keys(columns).reduce((arr, key) => {
|
const query = Object.keys(columns).reduce((arr, key, i) => {
|
||||||
const filter = columns[key];
|
const filter = columns[key];
|
||||||
|
|
||||||
if (filter === undefined) {
|
if (filter === undefined) {
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const isNumber = ['sum', 'avg', 'min', 'max'].some(a => a === filter);
|
switch (filter) {
|
||||||
|
case 'sum':
|
||||||
arr.push(`${filter}(${getJsonField(column, key, isNumber)}) as "${filter}(${key})"`);
|
case 'avg':
|
||||||
|
case 'min':
|
||||||
|
case 'max':
|
||||||
|
arr.push(`${filter}(${getJsonField(column, key, true, params)}) as "${i}"`);
|
||||||
|
break;
|
||||||
|
case 'count':
|
||||||
|
arr.push(`${filter}(${getJsonField(column, key, false, params)}) as "${i}"`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return arr;
|
return arr;
|
||||||
}, []);
|
}, []);
|
||||||
@ -121,7 +153,7 @@ function getEventDataColumnsQuery(column, columns) {
|
|||||||
return query.join(',\n');
|
return query.join(',\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
function getEventDataFilterQuery(column, filters) {
|
function getEventDataFilterQuery(column, filters, params) {
|
||||||
const query = Object.keys(filters).reduce((arr, key) => {
|
const query = Object.keys(filters).reduce((arr, key) => {
|
||||||
const filter = filters[key];
|
const filter = filters[key];
|
||||||
|
|
||||||
@ -131,11 +163,9 @@ function getEventDataFilterQuery(column, filters) {
|
|||||||
|
|
||||||
const isNumber = filter && typeof filter === 'number';
|
const isNumber = filter && typeof filter === 'number';
|
||||||
|
|
||||||
arr.push(
|
arr.push(`${getJsonField(column, key, isNumber, params)} = $${params.length + 1}`);
|
||||||
`${getJsonField(column, key, isNumber)} = ${
|
|
||||||
typeof filter === 'string' ? `'${filter}'` : filter
|
params.push(filter);
|
||||||
}`,
|
|
||||||
);
|
|
||||||
|
|
||||||
return arr;
|
return arr;
|
||||||
}, []);
|
}, []);
|
||||||
@ -248,11 +278,13 @@ const prisma = global[PRISMA] || getClient(PRISMA_OPTIONS);
|
|||||||
export default {
|
export default {
|
||||||
client: prisma,
|
client: prisma,
|
||||||
log,
|
log,
|
||||||
|
toUuid,
|
||||||
getDateQuery,
|
getDateQuery,
|
||||||
getTimestampInterval,
|
getTimestampInterval,
|
||||||
getFilterQuery,
|
getFilterQuery,
|
||||||
getEventDataColumnsQuery,
|
getEventDataColumnsQuery,
|
||||||
getEventDataFilterQuery,
|
getEventDataFilterQuery,
|
||||||
|
getSanitizedColumns,
|
||||||
parseFilters,
|
parseFilters,
|
||||||
rawQuery,
|
rawQuery,
|
||||||
transaction,
|
transaction,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "umami",
|
"name": "umami",
|
||||||
"version": "1.39.5",
|
"version": "1.40.0",
|
||||||
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
|
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
|
||||||
"author": "Mike Cao <mike@mikecao.com>",
|
"author": "Mike Cao <mike@mikecao.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -56,7 +56,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/inter": "4.5.7",
|
"@fontsource/inter": "4.5.7",
|
||||||
"@prisma/client": "4.5.0",
|
"@prisma/client": "4.9.0",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
@ -126,7 +126,7 @@
|
|||||||
"postcss-preset-env": "7.4.3",
|
"postcss-preset-env": "7.4.3",
|
||||||
"postcss-rtlcss": "^3.6.1",
|
"postcss-rtlcss": "^3.6.1",
|
||||||
"prettier": "^2.6.2",
|
"prettier": "^2.6.2",
|
||||||
"prisma": "4.5.0",
|
"prisma": "4.9.0",
|
||||||
"prompts": "2.4.2",
|
"prompts": "2.4.2",
|
||||||
"rollup": "^2.70.1",
|
"rollup": "^2.70.1",
|
||||||
"rollup-plugin-terser": "^7.0.2",
|
"rollup-plugin-terser": "^7.0.2",
|
||||||
|
@ -17,7 +17,7 @@ export default async (req, res) => {
|
|||||||
const { current_password, new_password } = req.body;
|
const { current_password, new_password } = req.body;
|
||||||
const { id: accountUuid } = req.query;
|
const { id: accountUuid } = req.query;
|
||||||
|
|
||||||
if (!(await allowQuery(req, TYPE_ACCOUNT))) {
|
if (!(await allowQuery(req, TYPE_ACCOUNT, false))) {
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { subMinutes } from 'date-fns';
|
import { subMinutes } from 'date-fns';
|
||||||
import { ok, methodNotAllowed, createToken } from 'next-basics';
|
import { ok, unauthorized, methodNotAllowed, createToken } from 'next-basics';
|
||||||
import { useAuth } from 'lib/middleware';
|
import { useAuth } from 'lib/middleware';
|
||||||
import { getUserWebsites, getRealtimeData } from 'queries';
|
import { getUserWebsites, getRealtimeData } from 'queries';
|
||||||
import { secret } from 'lib/crypto';
|
import { secret } from 'lib/crypto';
|
||||||
@ -10,6 +10,10 @@ export default async (req, res) => {
|
|||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
const { userId } = req.auth;
|
const { userId } = req.auth;
|
||||||
|
|
||||||
|
if (!userId) {
|
||||||
|
return unauthorized(res);
|
||||||
|
}
|
||||||
|
|
||||||
const websites = await getUserWebsites({ userId });
|
const websites = await getUserWebsites({ userId });
|
||||||
const ids = websites.map(({ websiteUuid }) => websiteUuid);
|
const ids = websites.map(({ websiteUuid }) => websiteUuid);
|
||||||
const token = createToken({ websites: ids }, secret());
|
const token = createToken({ websites: ids }, secret());
|
||||||
|
@ -10,17 +10,21 @@ export default async (req, res) => {
|
|||||||
|
|
||||||
const { id: websiteUuid } = req.query;
|
const { id: websiteUuid } = req.query;
|
||||||
|
|
||||||
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
|
||||||
return unauthorized(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
|
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
||||||
|
return unauthorized(res);
|
||||||
|
}
|
||||||
|
|
||||||
const website = await getWebsite({ websiteUuid });
|
const website = await getWebsite({ websiteUuid });
|
||||||
|
|
||||||
return ok(res, website);
|
return ok(res, website);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.method === 'POST') {
|
if (req.method === 'POST') {
|
||||||
|
if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
|
||||||
|
return unauthorized(res);
|
||||||
|
}
|
||||||
|
|
||||||
const { name, domain, owner, enableShareUrl, shareId } = req.body;
|
const { name, domain, owner, enableShareUrl, shareId } = req.body;
|
||||||
const { accountUuid } = req.auth;
|
const { accountUuid } = req.auth;
|
||||||
|
|
||||||
@ -43,7 +47,7 @@ export default async (req, res) => {
|
|||||||
{
|
{
|
||||||
name,
|
name,
|
||||||
domain,
|
domain,
|
||||||
shareId: shareId ? shareId : newShareId,
|
shareId: shareId && enableShareUrl === undefined ? shareId : newShareId,
|
||||||
userId: +owner || account.id,
|
userId: +owner || account.id,
|
||||||
},
|
},
|
||||||
{ websiteUuid },
|
{ websiteUuid },
|
||||||
@ -58,7 +62,7 @@ export default async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (req.method === 'DELETE') {
|
if (req.method === 'DELETE') {
|
||||||
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ export default async (req, res) => {
|
|||||||
const { id: websiteId } = req.query;
|
const { id: websiteId } = req.query;
|
||||||
|
|
||||||
if (req.method === 'POST') {
|
if (req.method === 'POST') {
|
||||||
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
if (!(await allowQuery(req, TYPE_WEBSITE, false))) {
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ export default async (req, res) => {
|
|||||||
await useAuth(req, res);
|
await useAuth(req, res);
|
||||||
|
|
||||||
const { user_id, include_all } = req.query;
|
const { user_id, include_all } = req.query;
|
||||||
|
|
||||||
const { userId: currentUserId, isAdmin } = req.auth;
|
const { userId: currentUserId, isAdmin } = req.auth;
|
||||||
const accountUuid = user_id || req.auth.accountUuid;
|
const accountUuid = user_id || req.auth.accountUuid;
|
||||||
let account;
|
let account;
|
||||||
@ -18,7 +19,7 @@ export default async (req, res) => {
|
|||||||
const userId = account ? account.id : user_id;
|
const userId = account ? account.id : user_id;
|
||||||
|
|
||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
if (userId && userId !== currentUserId && !isAdmin) {
|
if (!userId || (userId !== currentUserId && !isAdmin)) {
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
public/intl/country/am-ET.json
Normal file
1
public/intl/country/am-ET.json
Normal file
File diff suppressed because one or more lines are too long
1
public/intl/country/si-LK.json
Normal file
1
public/intl/country/si-LK.json
Normal file
File diff suppressed because one or more lines are too long
1
public/intl/language/am-ET.json
Normal file
1
public/intl/language/am-ET.json
Normal file
File diff suppressed because one or more lines are too long
1
public/intl/language/si-LK.json
Normal file
1
public/intl/language/si-LK.json
Normal file
File diff suppressed because one or more lines are too long
854
public/intl/messages/am-ET.json
Normal file
854
public/intl/messages/am-ET.json
Normal file
@ -0,0 +1,854 @@
|
|||||||
|
{
|
||||||
|
"label.accounts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Accounts"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Add account"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-column": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Add column"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-filter": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Add filter"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Add website"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.administrator": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Administrator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "All"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "All time"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "All websites"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.back": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Back"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.cancel": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Cancel"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.change-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Change password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.confirm-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Confirm password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.copy-to-clipboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Copy to clipboard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.current-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Current password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.custom-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Custom range"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dashboard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Date range"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.default-date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Default date range"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Delete"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Delete account"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Delete website"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dismiss": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dismiss"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Domain"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Edit"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Edit account"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Edit website"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.enable-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Enable share URL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.event-data": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Event Data"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.field-name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Field Name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Invalid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid-domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Invalid domain"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.language": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Language"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-days": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Last "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " days"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-hours": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Last "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " hours"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logged-in-as": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Logged in as "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "username"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.login": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Login"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logout": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Logout"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.more": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "More"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.new-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "New password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.none": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.owner": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Owner"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.passwords-dont-match": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Passwords don't match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.profile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Profile"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Realtime"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime-logs": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Realtime logs"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.refresh": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Refresh"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.required": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Required"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Reset"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Reset statistics"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.save": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Save"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.search": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Search"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Settings"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Share URL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.single-day": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Single day"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.theme": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Theme"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-month": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "This month"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-week": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "This week"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-year": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "This year"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.timezone": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Timezone"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.today": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Today"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Tracking code"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.type": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Type"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.unknown": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Unknown"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.username": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Username"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Value"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.view-details": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "View details"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Websites"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.yesterday": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Yesterday"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.active-users": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " current "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"offset": 0,
|
||||||
|
"options": {
|
||||||
|
"one": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "visitor"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"other": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "visitors"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluralType": "cardinal",
|
||||||
|
"type": 6,
|
||||||
|
"value": "x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Are you sure you want to delete "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Are you sure you want to reset "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "'s statistics?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.copied": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Copied!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.delete-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "All associated data will be deleted as well."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.edit-dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Edit dashboard"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.failure": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Something went wrong."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Get share URL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Get tracking code"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.go-to-settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Go to settings"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.incorrect-username-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Incorrect username/password."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.log.visitor": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Visitor from "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "country"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " using "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "browser"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " on "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "os"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "device"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.new-version-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "A new version of umami "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "version"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " is available!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-data-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "No data available."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-websites-configured": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "You don't have any websites configured."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.page-not-found": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Page not found."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.powered-by": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Powered by "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.reset-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "All statistics for this website will be deleted, but your tracking code will remain intact."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.save-success": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Saved successfully."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "This is the publicly shared URL for "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.toggle-charts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Toggle charts"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.track-stats": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "To track stats for "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": ", place the following code in the "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "head"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " section of your website."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Type "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "delete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " in the box below to confirm."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Type "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "reset"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " in the box below to confirm."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.actions": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Actions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.average-visit-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Average visit time"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.bounce-rate": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Bounce rate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.browsers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Browsers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.countries": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Countries"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.desktop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Desktop"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.laptop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Laptop"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.mobile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Mobile"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.tablet": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Tablet"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.devices": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Devices"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.events": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Events"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.combined": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Combined"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.raw": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Raw"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.languages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Languages"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.operating-systems": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Operating systems"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.page-views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Page views"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.pages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pages"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.query-parameters": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Query parameters"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.referrers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Referrers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.screens": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Screens"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.unique-visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Unique visitors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Views"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Visitors"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -164,7 +164,7 @@
|
|||||||
"label.enable-share-url": [
|
"label.enable-share-url": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Omogući dijeljenje URL-a"
|
"value": "Omogući dijeljenje poveznice"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.event-data": [
|
"label.event-data": [
|
||||||
@ -182,7 +182,7 @@
|
|||||||
"label.invalid": [
|
"label.invalid": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Nesipravno"
|
"value": "Neispravno"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.invalid-domain": [
|
"label.invalid-domain": [
|
||||||
@ -286,7 +286,7 @@
|
|||||||
"label.passwords-dont-match": [
|
"label.passwords-dont-match": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Lozinka nije točna"
|
"value": "Lozinke se ne podudaraju"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.profile": [
|
"label.profile": [
|
||||||
@ -352,7 +352,7 @@
|
|||||||
"label.share-url": [
|
"label.share-url": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Podijeli URL"
|
"value": "Podijeli poveznicu"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.single-day": [
|
"label.single-day": [
|
||||||
@ -461,7 +461,7 @@
|
|||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "visitor"
|
"value": "posjetitelj"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -469,7 +469,7 @@
|
|||||||
"value": [
|
"value": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "visitors"
|
"value": "posjetitelja"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -516,7 +516,7 @@
|
|||||||
"message.delete-warning": [
|
"message.delete-warning": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Izbrisat će se svi povezani podaci."
|
"value": "Izbrisat će se svi povezani podaci."
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"message.edit-dashboard": [
|
"message.edit-dashboard": [
|
||||||
@ -534,7 +534,7 @@
|
|||||||
"message.get-share-url": [
|
"message.get-share-url": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Dohvati URL za dijeljenje"
|
"value": "Dohvati poveznicu za dijeljenje"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"message.get-tracking-code": [
|
"message.get-tracking-code": [
|
||||||
@ -624,7 +624,7 @@
|
|||||||
"message.powered-by": [
|
"message.powered-by": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Powered by "
|
"value": "Pokreće "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": 1,
|
"type": 1,
|
||||||
@ -646,7 +646,7 @@
|
|||||||
"message.share-url": [
|
"message.share-url": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Ovo je javno dijeljeni URL za "
|
"value": "Ovo je javno dijeljena poveznica za "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": 1,
|
"type": 1,
|
||||||
|
@ -502,6 +502,12 @@
|
|||||||
"value": "Svetainės"
|
"value": "Svetainės"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"label.yesterday": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Vakar"
|
||||||
|
}
|
||||||
|
],
|
||||||
"message.active-users": [
|
"message.active-users": [
|
||||||
{
|
{
|
||||||
"offset": 0,
|
"offset": 0,
|
||||||
|
842
public/intl/messages/si-LK.json
Normal file
842
public/intl/messages/si-LK.json
Normal file
@ -0,0 +1,842 @@
|
|||||||
|
{
|
||||||
|
"label.accounts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ගිණුම්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ගිණුම එකතු කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-column": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තීරුව එක් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-filter": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පෙරහන එකතු කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වෙබ් අඩවිය එක් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.administrator": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පරිපාලක"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සියල්ල"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "හැම වෙලාවෙම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සියලුම වෙබ් අඩවි"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.back": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ආපසු"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.cancel": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අවලංගු කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.change-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මුරපදය වෙනස් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.confirm-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මුරපදය සත්යාපනය කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.copy-to-clipboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පසුරු පුවරුවට පිටපත් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.current-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වත්මන් මුරපදය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.custom-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අභිරුචි පරාසය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "උපකරණ පුවරුව"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "දින පරාසය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.default-date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පෙරනිමි දින පරාසය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මකන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ගිණුම මකන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වෙබ් අඩවිය මකන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dismiss": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මගහරින්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වසම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සංස්කරණය කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ගිණුම සංස්කරණය කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වෙබ් අඩවිය සංස්කරණය කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.enable-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බෙදාගැනීමේ URL සබල කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.event-data": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සිදුවීම් දත්ත"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.field-name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ක්ෂේත්ර නාම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වලංගු නැත"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid-domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වලංගු නොවන වසමක්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.language": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "භාෂාව"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-days": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අන්තිම "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " දින"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-hours": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අන්තිම "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " පැය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logged-in-as": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ලොග් වී ඇත්තේ "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "username"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.login": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ලොග් වෙන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logout": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පිටවීම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.more": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තවත්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "නම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.new-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අලුත් මුරපදය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.none": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "කිසිවක් නැත"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.owner": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "හිමිකරු"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මුරපදය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.passwords-dont-match": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මුරපද නොගැලපේ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.profile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පැතිකඩ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තත්ය කාල"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime-logs": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තත්ය කාලීන ලොග්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.refresh": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "නැවුම් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.required": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අවශ්යයි"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "යළි පිහිටුවන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සංඛ්යා ලේඛන නැවත සකසන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.save": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සුරකින්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.search": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සෙවීම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සැකසුම්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බෙදාගැනීමේ URL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.single-day": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තනි දවස"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.theme": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තේමාව"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-month": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මෙ මාසය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-week": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මේ සතිය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-year": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මේ අවුරුද්ද"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.timezone": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වේලා කලාපය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.today": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අද"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ලුහුබැඳීමේ කේතය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.type": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වර්ගය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.unknown": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "නොදනී"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.username": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පරිශීලක නාමය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වටිනාකම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.view-details": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තොරතුරු පෙන්වන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වෙබ් අඩවි"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.yesterday": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ඊයේ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.active-users": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " දැන් "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"offset": 0,
|
||||||
|
"options": {
|
||||||
|
"one": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අමුත්තා"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"other": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අමුත්තන්"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluralType": "cardinal",
|
||||||
|
"type": 6,
|
||||||
|
"value": "x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-delete": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " මකා දැමීම ගැන විශ්වාසද?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-reset": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " ට අදාල සංඛ්යාලේඛන නැවත පිහිටුවීමට අවශ්යද?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.copied": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පිටපත් කරගත්තා!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.delete-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සියලුම ආශ්රිත දත්ත ද මකා දැමෙනු ඇත."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.edit-dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "උපකරණ පුවරුව සංස්කරණය කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.failure": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "යම් ගැටලුවක් මතු වී ඇත."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බෙදාගැනීමේ URL ලබා ගන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ලුහුබැඳීමේ කේතය ලබා ගන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.go-to-settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සැකසීම් වෙත යන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.incorrect-username-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "වැරදි පරිශීලක නාමය/මුරපදය."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.log.visitor": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "country"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " වලින් පැමිණි අමුත්තකු "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "device"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " එකේ, මේ "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "os"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " එකේ, මේ "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "browser"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " එකෙන් ඉන්නවා"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.new-version-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "umami අලුත්ම "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "version"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " වන අනුවාදය නිකුත් උනා!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-data-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පෙන්වීමට දත්ත නොමැත."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-websites-configured": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ඔබට වින්යාස කර ඇති වෙබ් අඩවි කිසිවක් නොමැත."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.page-not-found": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පිටුව හමු නොවීය."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.powered-by": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බල ගැන්වුයේ "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.reset-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සියලුම සංඛ්යාලේඛන මකා දමනු ඇත. නමුත් ඔබගේ නිරීක්ෂණ කේතය නොවෙනස්ව පවතිනු ඇත."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.save-success": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සාර්තකව සුරැකිණි."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මේ "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " සඳහා ප්රසිද්ධියේ බෙදාගත් URL එකයි."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.toggle-charts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ප්රස්ථාර ටොගල් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.track-stats": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " හි සංඛ්යාලේඛන බැලීම සදහා, පහත කේතය "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "head"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " කොටසට ඇතුලත් කරන්න."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සත්යාපනය සදහා "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "delete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " ලෙස පහල කොටුවේ ටයිප් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සත්යාපනය සදහා "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "reset"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " ලෙස පහල කොටුවේ ටයිප් කරන්න"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.actions": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ක්රියාවන්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.average-visit-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සාමාන්ය සංචාර කාලය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.bounce-rate": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "හැරී යන ප්රමාණය"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.browsers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බ්රව්සර්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.countries": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "රටවල්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.desktop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ඩෙස්ක්ටොප්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.laptop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ලැප්ටොප්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.mobile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ජංගම"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.tablet": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ටැබ්ලට්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.devices": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "උපකරණ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.events": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "සිද්ධීන්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.combined": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ඒකාබද්ධ"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.raw": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අමු"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.languages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "භාෂා"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.operating-systems": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "මෙහෙයුම් පද්ධති"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.page-views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පිටු බැලීම්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.pages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "පිටු"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.query-parameters": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "විමසුම් පරාමිතීන්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.referrers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "යොමු කරන්නන්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.screens": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "තිර"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.unique-visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අලුත්ම අමුත්තන්"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "බැලූ ගණන"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "අමුත්තන්"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -11,6 +11,18 @@
|
|||||||
"value": "เพิ่มบัญชี"
|
"value": "เพิ่มบัญชี"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"label.add-column": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "สร้างคอลัมน์"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-filter": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "สร้างตัวกรอง"
|
||||||
|
}
|
||||||
|
],
|
||||||
"label.add-website": [
|
"label.add-website": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
@ -284,7 +296,7 @@
|
|||||||
"label.required": [
|
"label.required": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "ต้องการ"
|
"value": "จำเป็น"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.reset": [
|
"label.reset": [
|
||||||
@ -305,6 +317,12 @@
|
|||||||
"value": "บันทึก"
|
"value": "บันทึก"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"label.search": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "ค้นหา"
|
||||||
|
}
|
||||||
|
],
|
||||||
"label.settings": [
|
"label.settings": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
@ -389,6 +407,12 @@
|
|||||||
"value": "เว็บไซต์"
|
"value": "เว็บไซต์"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"label.yesterday": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "เมื่อวาน"
|
||||||
|
}
|
||||||
|
],
|
||||||
"message.active-users": [
|
"message.active-users": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
@ -444,7 +468,7 @@
|
|||||||
"message.confirm-reset": [
|
"message.confirm-reset": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "คุณแน่ใจหรือไม่ว่าต้องการรีเซตข้อมูลสถิติของ "
|
"value": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตข้อมูลสถิติของ "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": 1,
|
"type": 1,
|
||||||
@ -470,7 +494,7 @@
|
|||||||
"message.edit-dashboard": [
|
"message.edit-dashboard": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Edit dashboard"
|
"value": "แก้ไขแดชบอร์ด"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"message.failure": [
|
"message.failure": [
|
||||||
@ -766,7 +790,7 @@
|
|||||||
"metrics.query-parameters": [
|
"metrics.query-parameters": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Query parameters"
|
"value": "พารามิเตอร์ URL"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metrics.referrers": [
|
"metrics.referrers": [
|
||||||
|
@ -10,29 +10,44 @@ export async function getEventData(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId, { startDate, endDate, event_name, columns, filters }) {
|
async function relationalQuery(websiteId, { startDate, endDate, event_name, columns, filters }) {
|
||||||
const { rawQuery, getEventDataColumnsQuery, getEventDataFilterQuery } = prisma;
|
const {
|
||||||
const params = [startDate, endDate];
|
rawQuery,
|
||||||
|
getEventDataColumnsQuery,
|
||||||
|
getEventDataFilterQuery,
|
||||||
|
toUuid,
|
||||||
|
getSanitizedColumns,
|
||||||
|
} = prisma;
|
||||||
|
const sanitizedColumns = getSanitizedColumns(columns);
|
||||||
|
const params = [websiteId, startDate, endDate];
|
||||||
|
|
||||||
|
if (event_name) {
|
||||||
|
params.push(event_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
const columnQuery = getEventDataColumnsQuery('event_data.event_data', sanitizedColumns, params);
|
||||||
|
const filterQuery =
|
||||||
|
Object.keys(filters).length > 0
|
||||||
|
? `and ${getEventDataFilterQuery('event_data.event_data', filters, params)}`
|
||||||
|
: '';
|
||||||
|
|
||||||
return rawQuery(
|
return rawQuery(
|
||||||
`select
|
`select
|
||||||
${getEventDataColumnsQuery('event_data.event_data', columns)}
|
${columnQuery}
|
||||||
from event
|
from event
|
||||||
join website
|
join website
|
||||||
on event.website_id = website.website_id
|
on event.website_id = website.website_id
|
||||||
join event_data
|
join event_data
|
||||||
on event.event_id = event_data.event_id
|
on event.event_id = event_data.event_id
|
||||||
where website_uuid='${websiteId}'
|
where website_uuid = $1${toUuid()}
|
||||||
and event.created_at between $1 and $2
|
and event.created_at between $2 and $3
|
||||||
${event_name ? `and event_name = ${event_name}` : ''}
|
${event_name ? `and event_name = $4` : ''}
|
||||||
${
|
${filterQuery}`,
|
||||||
Object.keys(filters).length > 0
|
|
||||||
? `and ${getEventDataFilterQuery('event_data.event_data', filters)}`
|
|
||||||
: ''
|
|
||||||
}`,
|
|
||||||
params,
|
params,
|
||||||
).then(results => {
|
).then(results => {
|
||||||
return Object.keys(results[0]).map(a => {
|
const fields = Object.keys(sanitizedColumns);
|
||||||
return { x: a, y: results[0][`${a}`] };
|
|
||||||
|
return Object.keys(results[0]).map((a, i) => {
|
||||||
|
return { x: `${sanitizedColumns[fields[i]]}(${fields[i]})`, y: results[0][i] };
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,8 @@ async function relationalQuery(
|
|||||||
unit = 'day',
|
unit = 'day',
|
||||||
filters = {},
|
filters = {},
|
||||||
) {
|
) {
|
||||||
const { rawQuery, getDateQuery, getFilterQuery } = prisma;
|
const { rawQuery, getDateQuery, getFilterQuery, toUuid } = prisma;
|
||||||
const params = [start_at, end_at];
|
const params = [websiteId, start_at, end_at];
|
||||||
|
|
||||||
return rawQuery(
|
return rawQuery(
|
||||||
`select
|
`select
|
||||||
@ -28,8 +28,8 @@ async function relationalQuery(
|
|||||||
from event
|
from event
|
||||||
join website
|
join website
|
||||||
on event.website_id = website.website_id
|
on event.website_id = website.website_id
|
||||||
where website_uuid='${websiteId}'
|
where website_uuid = $1${toUuid()}
|
||||||
and event.created_at between $1 and $2
|
and event.created_at between $2 and $3
|
||||||
${getFilterQuery('event', filters, params)}
|
${getFilterQuery('event', filters, params)}
|
||||||
group by 1, 2
|
group by 1, 2
|
||||||
order by 2`,
|
order by 2`,
|
||||||
|
@ -10,8 +10,8 @@ export async function getPageviewMetrics(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId, { startDate, endDate, column, table, filters = {} }) {
|
async function relationalQuery(websiteId, { startDate, endDate, column, table, filters = {} }) {
|
||||||
const { rawQuery, parseFilters } = prisma;
|
const { rawQuery, parseFilters, toUuid } = prisma;
|
||||||
const params = [startDate, endDate];
|
const params = [websiteId, startDate, endDate];
|
||||||
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
|
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
|
||||||
table,
|
table,
|
||||||
column,
|
column,
|
||||||
@ -24,8 +24,8 @@ async function relationalQuery(websiteId, { startDate, endDate, column, table, f
|
|||||||
from ${table}
|
from ${table}
|
||||||
${` join website on ${table}.website_id = website.website_id`}
|
${` join website on ${table}.website_id = website.website_id`}
|
||||||
${joinSession}
|
${joinSession}
|
||||||
where website.website_uuid='${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and ${table}.created_at between $1 and $2
|
and ${table}.created_at between $2 and $3
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${joinSession && sessionQuery}
|
${joinSession && sessionQuery}
|
||||||
${eventQuery}
|
${eventQuery}
|
||||||
|
@ -9,8 +9,8 @@ export async function getPageviewParams(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId, start_at, end_at, column, table, filters = {}) {
|
async function relationalQuery(websiteId, start_at, end_at, column, table, filters = {}) {
|
||||||
const { parseFilters, rawQuery } = prisma;
|
const { parseFilters, rawQuery, toUuid } = prisma;
|
||||||
const params = [start_at, end_at];
|
const params = [websiteId, start_at, end_at];
|
||||||
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
|
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
|
||||||
table,
|
table,
|
||||||
column,
|
column,
|
||||||
@ -24,8 +24,8 @@ async function relationalQuery(websiteId, start_at, end_at, column, table, filte
|
|||||||
from ${table}
|
from ${table}
|
||||||
${` join website on ${table}.website_id = website.website_id`}
|
${` join website on ${table}.website_id = website.website_id`}
|
||||||
${joinSession}
|
${joinSession}
|
||||||
where website.website_uuid='${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and ${table}.created_at between $1 and $2
|
and ${table}.created_at between $2 and $3
|
||||||
and ${table}.url like '%?%'
|
and ${table}.url like '%?%'
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${joinSession && sessionQuery}
|
${joinSession && sessionQuery}
|
||||||
|
@ -21,8 +21,8 @@ async function relationalQuery(
|
|||||||
sessionKey = 'session_id',
|
sessionKey = 'session_id',
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
const { getDateQuery, parseFilters, rawQuery } = prisma;
|
const { getDateQuery, parseFilters, rawQuery, toUuid } = prisma;
|
||||||
const params = [start_at, end_at];
|
const params = [websiteId, start_at, end_at];
|
||||||
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
||||||
'pageview',
|
'pageview',
|
||||||
null,
|
null,
|
||||||
@ -37,8 +37,8 @@ async function relationalQuery(
|
|||||||
join website
|
join website
|
||||||
on pageview.website_id = website.website_id
|
on pageview.website_id = website.website_id
|
||||||
${joinSession}
|
${joinSession}
|
||||||
where website.website_uuid='${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and pageview.created_at between $1 and $2
|
and pageview.created_at between $2 and $3
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${sessionQuery}
|
${sessionQuery}
|
||||||
group by 1`,
|
group by 1`,
|
||||||
|
@ -10,8 +10,8 @@ export async function getSessionMetrics(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId, { startDate, endDate, field, filters = {} }) {
|
async function relationalQuery(websiteId, { startDate, endDate, field, filters = {} }) {
|
||||||
const { parseFilters, rawQuery } = prisma;
|
const { parseFilters, rawQuery, toUuid } = prisma;
|
||||||
const params = [startDate, endDate];
|
const params = [websiteId, startDate, endDate];
|
||||||
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(null, filters, params);
|
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(null, filters, params);
|
||||||
|
|
||||||
return rawQuery(
|
return rawQuery(
|
||||||
@ -23,8 +23,8 @@ async function relationalQuery(websiteId, { startDate, endDate, field, filters =
|
|||||||
join website
|
join website
|
||||||
on pageview.website_id = website.website_id
|
on pageview.website_id = website.website_id
|
||||||
${joinSession}
|
${joinSession}
|
||||||
where website.website_uuid='${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and pageview.created_at between $1 and $2
|
and pageview.created_at between $2 and $3
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${sessionQuery}
|
${sessionQuery}
|
||||||
)
|
)
|
||||||
|
@ -11,16 +11,17 @@ export async function getActiveVisitors(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId) {
|
async function relationalQuery(websiteId) {
|
||||||
|
const { rawQuery, toUuid } = prisma;
|
||||||
const date = subMinutes(new Date(), 5);
|
const date = subMinutes(new Date(), 5);
|
||||||
const params = [date];
|
const params = [websiteId, date];
|
||||||
|
|
||||||
return prisma.rawQuery(
|
return rawQuery(
|
||||||
`select count(distinct session_id) x
|
`select count(distinct session_id) x
|
||||||
from pageview
|
from pageview
|
||||||
join website
|
join website
|
||||||
on pageview.website_id = website.website_id
|
on pageview.website_id = website.website_id
|
||||||
where website.website_uuid = '${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and pageview.created_at >= $1`,
|
and pageview.created_at >= $2`,
|
||||||
params,
|
params,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,8 @@ export async function getWebsiteStats(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function relationalQuery(websiteId, { start_at, end_at, filters = {} }) {
|
async function relationalQuery(websiteId, { start_at, end_at, filters = {} }) {
|
||||||
const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
|
const { getDateQuery, getTimestampInterval, parseFilters, rawQuery, toUuid } = prisma;
|
||||||
const params = [start_at, end_at];
|
const params = [websiteId, start_at, end_at];
|
||||||
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
||||||
'pageview',
|
'pageview',
|
||||||
null,
|
null,
|
||||||
@ -33,8 +33,8 @@ async function relationalQuery(websiteId, { start_at, end_at, filters = {} }) {
|
|||||||
join website
|
join website
|
||||||
on pageview.website_id = website.website_id
|
on pageview.website_id = website.website_id
|
||||||
${joinSession}
|
${joinSession}
|
||||||
where website.website_uuid='${websiteId}'
|
where website.website_uuid = $1${toUuid()}
|
||||||
and pageview.created_at between $1 and $2
|
and pageview.created_at between $2 and $3
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${sessionQuery}
|
${sessionQuery}
|
||||||
group by 1, 2
|
group by 1, 2
|
||||||
|
@ -47,6 +47,10 @@ body {
|
|||||||
'Times New Roman', serif !important;
|
'Times New Roman', serif !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.si-LK {
|
||||||
|
font-family: 'Noto Sans Sinhala', Roboto, Noto, 'Times New Roman', sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
.he-IL {
|
.he-IL {
|
||||||
font-family: 'New Peninim MT', 'Arial Hebrew', Gisha, 'Times New Roman', Roboto, Noto,
|
font-family: 'New Peninim MT', 'Arial Hebrew', Gisha, 'Times New Roman', Roboto, Noto,
|
||||||
'Noto Sans Hebrew', sans-serif !important;
|
'Noto Sans Hebrew', sans-serif !important;
|
||||||
|
272
yarn.lock
272
yarn.lock
@ -1555,37 +1555,37 @@
|
|||||||
"@netlify/esbuild-windows-64" "0.14.39"
|
"@netlify/esbuild-windows-64" "0.14.39"
|
||||||
"@netlify/esbuild-windows-arm64" "0.14.39"
|
"@netlify/esbuild-windows-arm64" "0.14.39"
|
||||||
|
|
||||||
"@netlify/functions@^1.3.0":
|
"@netlify/functions@^1.4.0":
|
||||||
version "1.3.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.3.0.tgz#4305a3fb6b49caf56cd2be88d4b8534b1d5aff4f"
|
resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.4.0.tgz#027a2e5d54df5519ccbd14cf450231e97bbbf93a"
|
||||||
integrity sha512-hN/Fgpz8XIOBfsBPLYUMxVKBlCopgeqGB0popayicnmkFLnvKByTTMYgF01wcF9DBtBQdV0H2h1kPFpMl34I8w==
|
integrity sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-promise "^4.0.0"
|
is-promise "^4.0.0"
|
||||||
|
|
||||||
"@netlify/ipx@^1.3.1":
|
"@netlify/ipx@^1.3.3":
|
||||||
version "1.3.1"
|
version "1.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.1.tgz#0330e1e5025ea1a12c3e6fba6a3e0f0d0df741f3"
|
resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.3.tgz#db28352ee1ed86d0b991cb8236f64a4dfbe70b8c"
|
||||||
integrity sha512-kjw26KYM1jLe+bGRnhqxWs0ACG8eg6kN6wV7uqUu1J8dE6QC73ksyVtCA6IAHl3/5qf5RyMUzquNCp0N0+lXEw==
|
integrity sha512-2rDdCGPDPW7cyJr57rwfvpouOJx34CLDgfa2yfqTKvPzqCMOqkCi1PN/rHGuvJ/k5trZ8rxmWnnZyEbeQaZcqA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@netlify/functions" "^1.3.0"
|
"@netlify/functions" "^1.4.0"
|
||||||
etag "^1.8.1"
|
etag "^1.8.1"
|
||||||
fs-extra "^10.0.0"
|
fs-extra "^11.0.0"
|
||||||
ipx "^0.9.11"
|
ipx "^0.9.11"
|
||||||
micromatch "^4.0.5"
|
micromatch "^4.0.5"
|
||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
murmurhash "^2.0.0"
|
murmurhash "^2.0.0"
|
||||||
node-fetch "^2.0.0"
|
node-fetch "^2.0.0"
|
||||||
ufo "^0.8.0"
|
ufo "^1.0.0"
|
||||||
unstorage "^0.6.0"
|
unstorage "^1.0.0"
|
||||||
|
|
||||||
"@netlify/plugin-nextjs@^4.27.3":
|
"@netlify/plugin-nextjs@^4.27.3":
|
||||||
version "4.28.3"
|
version "4.30.2"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.28.3.tgz#e1d3d413a75605efcedc2f3fc27501f9bc8a49e6"
|
resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.30.2.tgz#c783ecb0eb080a1f124fc331360c6403378fca68"
|
||||||
integrity sha512-fA+gOkIowfQVaL1YDF3t+3uCsZ7OEkandLpFIv0D1faA/6Fy7VxCWhAxowRQ6oV3SjYxsV259aRMT0LaRejLMw==
|
integrity sha512-hqvdHlQEMfpTXh+fM0jwvtKla/gUS4gVKEZeQEkJlCzAJO+8XT2bTFAGrusNHLQ53L081nLXVXx1c+HUo0LFfQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@netlify/esbuild" "0.14.39"
|
"@netlify/esbuild" "0.14.39"
|
||||||
"@netlify/functions" "^1.3.0"
|
"@netlify/functions" "^1.4.0"
|
||||||
"@netlify/ipx" "^1.3.1"
|
"@netlify/ipx" "^1.3.3"
|
||||||
"@vercel/node-bridge" "^2.1.0"
|
"@vercel/node-bridge" "^2.1.0"
|
||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
destr "^1.1.1"
|
destr "^1.1.1"
|
||||||
@ -1704,22 +1704,22 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
"@prisma/client@4.5.0":
|
"@prisma/client@4.9.0":
|
||||||
version "4.5.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.5.0.tgz#f708549bee3da396d5741d846b4e4306b120210c"
|
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.9.0.tgz#4a4068f3540732ea5723c008d49ed684d20f9340"
|
||||||
integrity sha512-B2cV0OPI1smhdYUxsJoLYQLoMlLH06MUxgFUWQnHodGMX98VRVXKmQE/9OcrTNkqtke5RC+YU24Szxd04tZA2g==
|
integrity sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@prisma/engines-version" "4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452"
|
"@prisma/engines-version" "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
|
||||||
|
|
||||||
"@prisma/engines-version@4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452":
|
"@prisma/engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5":
|
||||||
version "4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452"
|
version "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.5.0-43.0362da9eebca54d94c8ef5edd3b2e90af99ba452.tgz#5b7fae294ee9bd9790d0e7b7a0b0912e4222ac08"
|
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5.tgz#9d817a5779fc05b107eb02f63d197ad296d60b3c"
|
||||||
integrity sha512-o7LyVx8PPJBLrEzLl6lpxxk2D5VnlM4Fwmrbq0NoT6pr5aa1OuHD9ZG+WJY6TlR/iD9bhmo2LNcxddCMr5Rv2A==
|
integrity sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==
|
||||||
|
|
||||||
"@prisma/engines@4.5.0":
|
"@prisma/engines@4.9.0":
|
||||||
version "4.5.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.5.0.tgz#82df347a893a5ae2a67707d44772ba181f4b9328"
|
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.9.0.tgz#05a1411964e047c1bc43f777c7a1c69f86a2a26c"
|
||||||
integrity sha512-4t9ir2SbQQr/wMCNU4YpHWp5hU14J2m3wHUZnGJPpmBF8YtkisxyVyQsKd1e6FyLTaGq8LOLhm6VLYHKqKNm+g==
|
integrity sha512-t1pt0Gsp+HcgPJrHFc+d/ZSAaKKWar2G/iakrE07yeKPNavDP3iVKPpfXP22OTCHZUWf7OelwKJxQgKAm5hkgw==
|
||||||
|
|
||||||
"@react-spring/animated@~9.5.2":
|
"@react-spring/animated@~9.5.2":
|
||||||
version "9.5.2"
|
version "9.5.2"
|
||||||
@ -2358,9 +2358,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
|||||||
color-convert "^2.0.1"
|
color-convert "^2.0.1"
|
||||||
|
|
||||||
anymatch@^3.1.2, anymatch@~3.1.2:
|
anymatch@^3.1.2, anymatch@~3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
|
||||||
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
|
||||||
dependencies:
|
dependencies:
|
||||||
normalize-path "^3.0.0"
|
normalize-path "^3.0.0"
|
||||||
picomatch "^2.0.4"
|
picomatch "^2.0.4"
|
||||||
@ -3272,10 +3272,10 @@ define-properties@^1.1.3, define-properties@^1.1.4:
|
|||||||
has-property-descriptors "^1.0.0"
|
has-property-descriptors "^1.0.0"
|
||||||
object-keys "^1.1.1"
|
object-keys "^1.1.1"
|
||||||
|
|
||||||
defu@^6.0.0, defu@^6.1.0:
|
defu@^6.0.0, defu@^6.1.0, defu@^6.1.2:
|
||||||
version "6.1.0"
|
version "6.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.0.tgz#7a5411655da73335c7d933256911f17c74443e2d"
|
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c"
|
||||||
integrity sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw==
|
integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==
|
||||||
|
|
||||||
del@^6.0.0:
|
del@^6.0.0:
|
||||||
version "6.1.1"
|
version "6.1.1"
|
||||||
@ -3296,15 +3296,15 @@ delayed-stream@~1.0.0:
|
|||||||
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
||||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||||
|
|
||||||
denque@^2.0.1:
|
denque@^2.0.1, denque@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
|
resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
|
||||||
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
||||||
|
|
||||||
destr@^1.1.1, destr@^1.2.0:
|
destr@^1.1.1, destr@^1.2.0, destr@^1.2.1, destr@^1.2.2:
|
||||||
version "1.2.0"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.0.tgz#8adb17fa3861b8032ea1bba92f60ba989a9ff119"
|
resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.2.tgz#7ba9befcafb645a50e76b260449c63927b51e22f"
|
||||||
integrity sha512-JG+cG4ZPB1L27sl2C2URg8MIOmIUtTbE5wEx02BpmrTCqg/hXxFKXsYsnODl5PdpqNRaS1KQGUQ56V8jk8XpYQ==
|
integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==
|
||||||
|
|
||||||
detect-browser@^5.2.0:
|
detect-browser@^5.2.0:
|
||||||
version "5.3.0"
|
version "5.3.0"
|
||||||
@ -3863,9 +3863,9 @@ fastest-levenshtein@^1.0.16:
|
|||||||
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
|
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
|
||||||
|
|
||||||
fastq@^1.6.0:
|
fastq@^1.6.0:
|
||||||
version "1.13.0"
|
version "1.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
|
||||||
integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
|
integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
|
||||||
dependencies:
|
dependencies:
|
||||||
reusify "^1.0.4"
|
reusify "^1.0.4"
|
||||||
|
|
||||||
@ -3983,6 +3983,15 @@ fs-extra@10, fs-extra@^10.0.0, fs-extra@^10.0.1:
|
|||||||
jsonfile "^6.0.1"
|
jsonfile "^6.0.1"
|
||||||
universalify "^2.0.0"
|
universalify "^2.0.0"
|
||||||
|
|
||||||
|
fs-extra@^11.0.0:
|
||||||
|
version "11.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed"
|
||||||
|
integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.2.0"
|
||||||
|
jsonfile "^6.0.1"
|
||||||
|
universalify "^2.0.0"
|
||||||
|
|
||||||
fs-extra@^9.0.0:
|
fs-extra@^9.0.0:
|
||||||
version "9.1.0"
|
version "9.1.0"
|
||||||
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
|
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
|
||||||
@ -4066,6 +4075,11 @@ get-port-please@^2.6.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fs-memo "^1.2.0"
|
fs-memo "^1.2.0"
|
||||||
|
|
||||||
|
get-port-please@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.0.1.tgz#a24953a41dc249f76869ac25e81d6623e61ab010"
|
||||||
|
integrity sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==
|
||||||
|
|
||||||
get-stream@^6.0.0:
|
get-stream@^6.0.0:
|
||||||
version "6.0.1"
|
version "6.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
||||||
@ -4187,15 +4201,15 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
|
|||||||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
|
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
|
||||||
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
||||||
|
|
||||||
h3@^0.8.1:
|
h3@^1.0.1:
|
||||||
version "0.8.6"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/h3/-/h3-0.8.6.tgz#8095ef998fe14769b87170b7c8b68ba9c54973d5"
|
resolved "https://registry.yarnpkg.com/h3/-/h3-1.1.0.tgz#ff10d590005711dfb41034b9b1496d165507b1ea"
|
||||||
integrity sha512-CSWNOKa3QGo67rFU2PhbFTp0uPJtilNji2Z0pMiSRQt3+OkIW0u3E1WMJqIycLqaTgb9JyFqH/S4mcTyyGtvyQ==
|
integrity sha512-kx3u+RMzY963fU8NNT2ePWgsryAn9DNztPqbHia/M7HgA+rtXKjHjED9/uidcYPmImNwAfJsCachCzh2T3QH2A==
|
||||||
dependencies:
|
dependencies:
|
||||||
cookie-es "^0.5.0"
|
cookie-es "^0.5.0"
|
||||||
destr "^1.2.0"
|
destr "^1.2.2"
|
||||||
radix3 "^0.2.1"
|
radix3 "^1.0.0"
|
||||||
ufo "^0.8.6"
|
ufo "^1.0.1"
|
||||||
|
|
||||||
har-schema@^2.0.0:
|
har-schema@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@ -4315,9 +4329,9 @@ ignore@^4.0.6:
|
|||||||
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
||||||
|
|
||||||
ignore@^5.2.0:
|
ignore@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
|
||||||
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
|
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
|
||||||
|
|
||||||
image-meta@^0.1.1:
|
image-meta@^0.1.1:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
@ -4424,6 +4438,21 @@ ioredis@^5.2.3:
|
|||||||
redis-parser "^3.0.0"
|
redis-parser "^3.0.0"
|
||||||
standard-as-callback "^2.1.0"
|
standard-as-callback "^2.1.0"
|
||||||
|
|
||||||
|
ioredis@^5.2.4:
|
||||||
|
version "5.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.0.tgz#b5469f0fd374648ef074840c00c1d8eed42fca3f"
|
||||||
|
integrity sha512-Id9jKHhsILuIZpHc61QkagfVdUj2Rag5GzG1TGEvRNeM7dtTOjICgjC+tvqYxi//PuX2wjQ+Xjva2ONBuf92Pw==
|
||||||
|
dependencies:
|
||||||
|
"@ioredis/commands" "^1.1.1"
|
||||||
|
cluster-key-slot "^1.1.0"
|
||||||
|
debug "^4.3.4"
|
||||||
|
denque "^2.1.0"
|
||||||
|
lodash.defaults "^4.2.0"
|
||||||
|
lodash.isarguments "^3.1.0"
|
||||||
|
redis-errors "^1.2.0"
|
||||||
|
redis-parser "^3.0.0"
|
||||||
|
standard-as-callback "^2.1.0"
|
||||||
|
|
||||||
ip-regex@^5.0.0:
|
ip-regex@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632"
|
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632"
|
||||||
@ -4912,19 +4941,19 @@ listhen@^0.2.15:
|
|||||||
selfsigned "^2.0.1"
|
selfsigned "^2.0.1"
|
||||||
ufo "^0.8.5"
|
ufo "^0.8.5"
|
||||||
|
|
||||||
listhen@^0.3.4:
|
listhen@^1.0.0:
|
||||||
version "0.3.4"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.3.4.tgz#5bb0db65dae5f2204ffa7ee46b40f2330854cf7f"
|
resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.0.2.tgz#3332af0cf77dd914e12d125c70a9c6aed9537033"
|
||||||
integrity sha512-cuzWWoIWF8JvsPLmIurTkUXi27owH4RRKnBsbPswRJvB82uTv15W01yOOLaPvjxY5mMlftmW2p1XnxB835AdRA==
|
integrity sha512-yXz0NIYfVJDBQK2vlCpD/OjSzYkur2mR44boUtlg0eES4holn7oYZf439y5JxP55EOzFtClZ8eZlMJ8a++FwlQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
clipboardy "^3.0.0"
|
clipboardy "^3.0.0"
|
||||||
colorette "^2.0.19"
|
colorette "^2.0.19"
|
||||||
defu "^6.1.0"
|
defu "^6.1.2"
|
||||||
get-port-please "^2.6.1"
|
get-port-please "^3.0.1"
|
||||||
http-shutdown "^1.2.2"
|
http-shutdown "^1.2.2"
|
||||||
ip-regex "^5.0.0"
|
ip-regex "^5.0.0"
|
||||||
node-forge "^1.3.1"
|
node-forge "^1.3.1"
|
||||||
ufo "^0.8.5"
|
ufo "^1.0.1"
|
||||||
|
|
||||||
listr2@^3.12.2:
|
listr2@^3.12.2:
|
||||||
version "3.14.0"
|
version "3.14.0"
|
||||||
@ -5184,9 +5213,9 @@ merge2@^1.3.0, merge2@^1.4.1:
|
|||||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
micro-memoize@^4.0.11:
|
micro-memoize@^4.0.11:
|
||||||
version "4.0.11"
|
version "4.0.14"
|
||||||
resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.11.tgz#f664afc8bd8c11cb2838716a7306d6e1ec205d3a"
|
resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.14.tgz#d1239ce2e5831125ac518509f5a23b54e7ca3e17"
|
||||||
integrity sha512-CjxsaYe4j43df32DtzzNCwanPqZjZDwuQAZilsCYpa2ZVtSPDjHXbTlR4gsEZRyO9/twHs0b7HLjvy/sowl7sA==
|
integrity sha512-2tzWP1w2Hh+r7kCYa4f//jpBEA6dAueiuLco38NxfjF9Py3KCCI7wVOTdCvOhmTC043t+ulclVBdl3v+s+UJIQ==
|
||||||
|
|
||||||
micromatch@^4.0.4, micromatch@^4.0.5:
|
micromatch@^4.0.4, micromatch@^4.0.5:
|
||||||
version "4.0.5"
|
version "4.0.5"
|
||||||
@ -5280,9 +5309,9 @@ mmdb-lib@2.0.2:
|
|||||||
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
|
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
|
||||||
|
|
||||||
moize@^6.1.0:
|
moize@^6.1.0:
|
||||||
version "6.1.3"
|
version "6.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.3.tgz#2e188a5ee02e4e3c06beaab39a4a3c92f92dd9aa"
|
resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.5.tgz#e9a589685a3de4266eeb5f2bbfdfe1a173265f1a"
|
||||||
integrity sha512-Cn+1T5Ypieeo46fn8X98V2gHj2VSRohVPjvT8BRvNANJJC3UOeege/G84xA/3S9c5qA4p9jOdSB1jfhumwe8qw==
|
integrity sha512-Fu46qKV9F8DOi2vXimR3yRw/JAJfFRQEFZeclvOFnG92AEFERqwFtu4PIxETYFtCghHGlU1itKcvvNioKgWGIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-equals "^3.0.1"
|
fast-equals "^3.0.1"
|
||||||
micro-memoize "^4.0.11"
|
micro-memoize "^4.0.11"
|
||||||
@ -5380,16 +5409,16 @@ nice-try@^1.0.4:
|
|||||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||||
|
|
||||||
node-abi@^3.3.0:
|
node-abi@^3.3.0:
|
||||||
version "3.28.0"
|
version "3.31.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.28.0.tgz#b0df8b317e1c4f2f323756c5fc8ffccc5bca4718"
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.31.0.tgz#dfb2ea3d01188eb80859f69bb4a4354090c1b355"
|
||||||
integrity sha512-fRlDb4I0eLcQeUvGq7IY3xHrSb0c9ummdvDSYWfT9+LKP+3jCKw/tKoqaM7r1BAoiAC6GtwyjaGnOz6B3OtF+A==
|
integrity sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
|
|
||||||
node-addon-api@^5.0.0:
|
node-addon-api@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
|
||||||
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
|
integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
|
||||||
|
|
||||||
node-domexception@^1.0.0:
|
node-domexception@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@ -5401,10 +5430,15 @@ node-fetch-native@^0.1.8:
|
|||||||
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.8.tgz#19e2eaf6d86ac14e711ebd2612f40517c3468f2a"
|
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.8.tgz#19e2eaf6d86ac14e711ebd2612f40517c3468f2a"
|
||||||
integrity sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==
|
integrity sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==
|
||||||
|
|
||||||
|
node-fetch-native@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.1.tgz#1dfe78f57545d07e07016b7df4c0cb9d2ff416c7"
|
||||||
|
integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==
|
||||||
|
|
||||||
node-fetch@^2.0.0, node-fetch@^2.6.6:
|
node-fetch@^2.0.0, node-fetch@^2.6.6:
|
||||||
version "2.6.7"
|
version "2.6.8"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
|
||||||
dependencies:
|
dependencies:
|
||||||
whatwg-url "^5.0.0"
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
@ -5556,15 +5590,24 @@ object.values@^1.1.5:
|
|||||||
define-properties "^1.1.3"
|
define-properties "^1.1.3"
|
||||||
es-abstract "^1.19.1"
|
es-abstract "^1.19.1"
|
||||||
|
|
||||||
ohmyfetch@^0.4.18, ohmyfetch@^0.4.19:
|
ofetch@^1.0.0:
|
||||||
version "0.4.20"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.20.tgz#735895d396c6d2fbf5705625db1196bd3f29be16"
|
resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.0.0.tgz#5a2604cdcb33349900e4f73ffe44de449a61101a"
|
||||||
integrity sha512-+c3/l+X91owrT1reTos1R13rb2j8NGZpKi0bRWwrnxIHlr1FZ8NzghIsNBKpUvk9nsnFoNK4phw+nTnXrcALzA==
|
integrity sha512-d40aof8czZFSQKJa4+F7Ch3UC5D631cK1TTUoK+iNEut9NoiCL+u0vykl/puYVUS2df4tIQl5upQcolIcEzQjQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
destr "^1.1.1"
|
destr "^1.2.1"
|
||||||
|
node-fetch-native "^1.0.1"
|
||||||
|
ufo "^1.0.0"
|
||||||
|
|
||||||
|
ohmyfetch@^0.4.18:
|
||||||
|
version "0.4.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.21.tgz#6850db751fc7bbf08153aa8b11ff1ef45fcfd963"
|
||||||
|
integrity sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==
|
||||||
|
dependencies:
|
||||||
|
destr "^1.2.0"
|
||||||
node-fetch-native "^0.1.8"
|
node-fetch-native "^0.1.8"
|
||||||
ufo "^0.8.6"
|
ufo "^0.8.6"
|
||||||
undici "^5.11.0"
|
undici "^5.12.0"
|
||||||
|
|
||||||
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
@ -6095,12 +6138,12 @@ pretty-bytes@^5.6.0:
|
|||||||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
|
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
|
||||||
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
|
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
|
||||||
|
|
||||||
prisma@4.5.0:
|
prisma@4.9.0:
|
||||||
version "4.5.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.5.0.tgz#361ae3f4476d0821b97645e5da42975a7c2943bb"
|
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.9.0.tgz#295954b2a89cd35a0e6bcf66b2b036dbf80c75ee"
|
||||||
integrity sha512-9Aeg4qiKlv9Wsjz4NO8k2CzRzlvS3A4FYVJ5+28sBBZ0eEwbiVOE/Jj7v6rZC1tFW2s4GSICQOAyuOjc6WsNew==
|
integrity sha512-bS96oZ5oDFXYgoF2l7PJ3Mp1wWWfLOo8B/jAfbA2Pn0Wm5Z/owBHzaMQKS3i1CzVBDWWPVnOohmbJmjvkcHS5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@prisma/engines" "4.5.0"
|
"@prisma/engines" "4.9.0"
|
||||||
|
|
||||||
progress@^2.0.0:
|
progress@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
@ -6167,10 +6210,10 @@ quick-lru@^4.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
||||||
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
||||||
|
|
||||||
radix3@^0.2.1:
|
radix3@^1.0.0:
|
||||||
version "0.2.1"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/radix3/-/radix3-0.2.1.tgz#77e66a41c7ba5600a8bc137fd259ef661d314418"
|
resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.0.0.tgz#d1c760b850206a6bd5dfd26820c25903cb20eccc"
|
||||||
integrity sha512-FnhArTl5Tq7dodiLeSPKrDUyCQuJqEncP8cKdyy399g8F/cz7GH6FmzA3Rkosu2IZMkpswFFwXfb2ERSiL06pg==
|
integrity sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==
|
||||||
|
|
||||||
raf-schd@^4.0.2:
|
raf-schd@^4.0.2:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
@ -7421,11 +7464,16 @@ typescript@^4.5:
|
|||||||
resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz"
|
resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz"
|
||||||
integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
|
integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
|
||||||
|
|
||||||
ufo@^0.8.0, ufo@^0.8.5, ufo@^0.8.6:
|
ufo@^0.8.5, ufo@^0.8.6:
|
||||||
version "0.8.6"
|
version "0.8.6"
|
||||||
resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.6.tgz#c0ec89bc0e0c9fa59a683680feb0f28b55ec323b"
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.6.tgz#c0ec89bc0e0c9fa59a683680feb0f28b55ec323b"
|
||||||
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
|
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
|
||||||
|
|
||||||
|
ufo@^1.0.0, ufo@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29"
|
||||||
|
integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==
|
||||||
|
|
||||||
unbox-primitive@^1.0.2:
|
unbox-primitive@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
|
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
|
||||||
@ -7436,10 +7484,10 @@ unbox-primitive@^1.0.2:
|
|||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
undici@^5.11.0:
|
undici@^5.12.0:
|
||||||
version "5.12.0"
|
version "5.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531"
|
resolved "https://registry.yarnpkg.com/undici/-/undici-5.16.0.tgz#6b64f9b890de85489ac6332bd45ca67e4f7d9943"
|
||||||
integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==
|
integrity sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
busboy "^1.6.0"
|
busboy "^1.6.0"
|
||||||
|
|
||||||
@ -7494,22 +7542,22 @@ universalify@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
||||||
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
||||||
|
|
||||||
unstorage@^0.6.0:
|
unstorage@^1.0.0:
|
||||||
version "0.6.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.6.0.tgz#9a70d770d08ed8dbb87f4aa5fbf7700baf4a641d"
|
resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.0.1.tgz#8cac09e435e727f68ac8ffdac10caa1a5b35883d"
|
||||||
integrity sha512-X05PIq28pVNA1BypX6Y00YNqAsHM25MGemvpjHeYvwJ8/wg936GoO1YD+VdWlqm3LmVX4fNJ5tlC7uhXsMPgeg==
|
integrity sha512-J1c4b8K2KeihHrQtdgl/ybIapArUbPaPb+TyJy/nGSauDwDYqciZsEKdkee568P3c8SSH4TIgnGRHDWMPGw+Lg==
|
||||||
dependencies:
|
dependencies:
|
||||||
anymatch "^3.1.2"
|
anymatch "^3.1.2"
|
||||||
chokidar "^3.5.3"
|
chokidar "^3.5.3"
|
||||||
destr "^1.1.1"
|
destr "^1.2.1"
|
||||||
h3 "^0.8.1"
|
h3 "^1.0.1"
|
||||||
ioredis "^5.2.3"
|
ioredis "^5.2.4"
|
||||||
listhen "^0.3.4"
|
listhen "^1.0.0"
|
||||||
mkdir "^0.0.2"
|
mkdir "^0.0.2"
|
||||||
mri "^1.2.0"
|
mri "^1.2.0"
|
||||||
ohmyfetch "^0.4.19"
|
ofetch "^1.0.0"
|
||||||
ufo "^0.8.6"
|
ufo "^1.0.0"
|
||||||
ws "^8.9.0"
|
ws "^8.11.0"
|
||||||
|
|
||||||
update-browserslist-db@^1.0.9:
|
update-browserslist-db@^1.0.9:
|
||||||
version "1.0.10"
|
version "1.0.10"
|
||||||
@ -7695,10 +7743,10 @@ write-json-file@^4.3.0:
|
|||||||
sort-keys "^4.0.0"
|
sort-keys "^4.0.0"
|
||||||
write-file-atomic "^3.0.0"
|
write-file-atomic "^3.0.0"
|
||||||
|
|
||||||
ws@^8.9.0:
|
ws@^8.11.0:
|
||||||
version "8.10.0"
|
version "8.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8"
|
||||||
integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==
|
integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==
|
||||||
|
|
||||||
xss@^1.0.14:
|
xss@^1.0.14:
|
||||||
version "1.0.14"
|
version "1.0.14"
|
||||||
|
Loading…
Reference in New Issue
Block a user