Merge branch 'master' into db-merge-test
commit
00a7272ec7
|
@ -70,12 +70,12 @@ docker compose up
|
||||||
|
|
||||||
Alternatively, to pull just the Umami Docker image with PostgreSQL support:
|
Alternatively, to pull just the Umami Docker image with PostgreSQL support:
|
||||||
```bash
|
```bash
|
||||||
docker pull docker.umami.is/umami-software/umami:postgresql-latest
|
docker pull docker.umami.dev/umami-software/umami:postgresql-latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Or with MySQL support:
|
Or with MySQL support:
|
||||||
```bash
|
```bash
|
||||||
docker pull docker.umami.is/umami-software/umami:mysql-latest
|
docker pull docker.umami.dev/umami-software/umami:mysql-latest
|
||||||
```
|
```
|
||||||
|
|
||||||
## Getting updates
|
## Getting updates
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import styles from './Header.module.css';
|
||||||
export default function Header() {
|
export default function Header() {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { pathname } = useRouter();
|
const { pathname } = useRouter();
|
||||||
const { updatesDisabled, adminDisabled } = useConfig();
|
const { updatesDisabled } = useConfig();
|
||||||
const isSharePage = pathname.includes('/share/');
|
const isSharePage = pathname.includes('/share/');
|
||||||
const allowUpdate = user?.isAdmin && !updatesDisabled && !isSharePage;
|
const allowUpdate = user?.isAdmin && !updatesDisabled && !isSharePage;
|
||||||
|
|
||||||
|
@ -29,8 +29,10 @@ 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>
|
||||||
|
|
||||||
|
{user && (
|
||||||
|
<>
|
||||||
<HamburgerButton />
|
<HamburgerButton />
|
||||||
{user && !adminDisabled && (
|
|
||||||
<div className={styles.links}>
|
<div className={styles.links}>
|
||||||
<Link href="/dashboard">
|
<Link href="/dashboard">
|
||||||
<FormattedMessage id="label.dashboard" defaultMessage="Dashboard" />
|
<FormattedMessage id="label.dashboard" defaultMessage="Dashboard" />
|
||||||
|
@ -38,10 +40,13 @@ export default function Header() {
|
||||||
<Link href="/realtime">
|
<Link href="/realtime">
|
||||||
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
||||||
</Link>
|
</Link>
|
||||||
|
{!process.env.isCloudMode && (
|
||||||
<Link href="/settings">
|
<Link href="/settings">
|
||||||
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
||||||
</Link>
|
</Link>
|
||||||
|
)}
|
||||||
</div>
|
</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, '`;'
|
||||||
|
|
|
@ -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"
|
||||||
|
}
|
|
@ -36,7 +36,7 @@
|
||||||
"label.more": "بیشتر",
|
"label.more": "بیشتر",
|
||||||
"label.name": "نام",
|
"label.name": "نام",
|
||||||
"label.new-password": "رمز جدید",
|
"label.new-password": "رمز جدید",
|
||||||
"label.none": "None",
|
"label.none": "هیچ",
|
||||||
"label.owner": "ایجاد شده توسط",
|
"label.owner": "ایجاد شده توسط",
|
||||||
"label.password": "رمز",
|
"label.password": "رمز",
|
||||||
"label.passwords-dont-match": "رمزها یکسان نیستند",
|
"label.passwords-dont-match": "رمزها یکسان نیستند",
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
"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": "دریافت URL برای اشتراک گذاری",
|
"message.get-share-url": "دریافت URL برای اشتراک گذاری",
|
||||||
"message.get-tracking-code": "گرفتن کد رهگیری",
|
"message.get-tracking-code": "گرفتن کد رهگیری",
|
||||||
|
@ -103,9 +103,9 @@
|
||||||
"metrics.operating-systems": "سیستمعاملها",
|
"metrics.operating-systems": "سیستمعاملها",
|
||||||
"metrics.page-views": "بازدید صفحه",
|
"metrics.page-views": "بازدید صفحه",
|
||||||
"metrics.pages": "صفحهها",
|
"metrics.pages": "صفحهها",
|
||||||
"metrics.query-parameters": "Query parameters",
|
"metrics.query-parameters": "پارامترهای کوئری",
|
||||||
"metrics.referrers": "ارجاع دهندگان",
|
"metrics.referrers": "ارجاع دهندگان",
|
||||||
"metrics.screens": "Screens",
|
"metrics.screens": "نمایشگرها",
|
||||||
"metrics.unique-visitors": "بازدیدکنندههای یکتا",
|
"metrics.unique-visitors": "بازدیدکنندههای یکتا",
|
||||||
"metrics.views": "بازدید",
|
"metrics.views": "بازدید",
|
||||||
"metrics.visitors": "بازدیدکننده"
|
"metrics.visitors": "بازدیدکننده"
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
{
|
||||||
|
"label.accounts": "Računi",
|
||||||
|
"label.add-account": "Dodaj račun",
|
||||||
|
"label.add-column": "Dodaj stupac",
|
||||||
|
"label.add-filter": "Dodaj filter",
|
||||||
|
"label.add-website": "Dodaj web stranicu",
|
||||||
|
"label.administrator": "Administrator",
|
||||||
|
"label.all": "Sve",
|
||||||
|
"label.all-time": "Svo vrijeme",
|
||||||
|
"label.all-websites": "Sve web stranice",
|
||||||
|
"label.back": "Natrag ",
|
||||||
|
"label.cancel": "Odustani",
|
||||||
|
"label.change-password": "Promijeni lozinku",
|
||||||
|
"label.confirm-password": "Potvrdi lozinku",
|
||||||
|
"label.copy-to-clipboard": "Kopiraj u međuspremnik",
|
||||||
|
"label.current-password": "Trenutna lozinka",
|
||||||
|
"label.custom-range": "Prilagođeni raspon",
|
||||||
|
"label.dashboard": "Nadzorna ploča",
|
||||||
|
"label.date-range": "Raspon datuma",
|
||||||
|
"label.default-date-range": "Zadani datumski raspon",
|
||||||
|
"label.delete": "Obriši",
|
||||||
|
"label.delete-account": "Obriši račun",
|
||||||
|
"label.delete-website": "Obriši web stranicu",
|
||||||
|
"label.dismiss": "Odbaci",
|
||||||
|
"label.domain": "Domena",
|
||||||
|
"label.edit": "Uredi",
|
||||||
|
"label.edit-account": "Uredi račun",
|
||||||
|
"label.edit-website": "Uredi web stranicu",
|
||||||
|
"label.enable-share-url": "Omogući dijeljenje poveznice",
|
||||||
|
"label.event-data": "Podaci događaja",
|
||||||
|
"label.field-name": "Naziv polja",
|
||||||
|
"label.invalid": "Neispravno",
|
||||||
|
"label.invalid-domain": "Neispravna domena",
|
||||||
|
"label.language": "Jezik",
|
||||||
|
"label.last-days": "Zadnjih {x} dana",
|
||||||
|
"label.last-hours": "Zadnjih {x} sati",
|
||||||
|
"label.logged-in-as": "Prijavljen kao {username}",
|
||||||
|
"label.login": "Prijava",
|
||||||
|
"label.logout": "Odjava",
|
||||||
|
"label.more": "Više",
|
||||||
|
"label.name": "Ime",
|
||||||
|
"label.new-password": "Nova lozinka",
|
||||||
|
"label.none": "Ništa",
|
||||||
|
"label.owner": "Vlasnik",
|
||||||
|
"label.password": "Lozinka",
|
||||||
|
"label.passwords-dont-match": "Lozinke se ne podudaraju",
|
||||||
|
"label.profile": "Profil",
|
||||||
|
"label.realtime": "Stvarno vrijeme",
|
||||||
|
"label.realtime-logs": "Trenutni zapisi",
|
||||||
|
"label.refresh": "Osvježi",
|
||||||
|
"label.required": "Potrebna",
|
||||||
|
"label.reset": "Resetirati",
|
||||||
|
"label.reset-website": "Resetirati web stranicu",
|
||||||
|
"label.save": "Spremi",
|
||||||
|
"label.search": "Pretraži",
|
||||||
|
"label.settings": "Postavke",
|
||||||
|
"label.share-url": "Podijeli poveznicu",
|
||||||
|
"label.single-day": "Jedan dan",
|
||||||
|
"label.theme": "Tema",
|
||||||
|
"label.this-month": "Ovaj mjesec",
|
||||||
|
"label.this-week": "Ovaj tjedan",
|
||||||
|
"label.this-year": "Ova godina",
|
||||||
|
"label.timezone": "Vremenska zona",
|
||||||
|
"label.today": "Danas",
|
||||||
|
"label.tracking-code": "Kod za praćenje",
|
||||||
|
"label.type": "Tip",
|
||||||
|
"label.unknown": "Nepoznato",
|
||||||
|
"label.username": "Korisničko ime",
|
||||||
|
"label.value": "Vrijednost",
|
||||||
|
"label.view-details": "Pogledaj detalje",
|
||||||
|
"label.websites": "Web stranice",
|
||||||
|
"label.yesterday": "Jučer",
|
||||||
|
"message.active-users": "{x} Trenutno {x, plural, one {posjetitelj} other {posjetitelja}}",
|
||||||
|
"message.confirm-delete": "Jeste li sigurni da želite obrisati {target}?",
|
||||||
|
"message.confirm-reset": "Jeste li sigurni da želite resetirati {target}'s statistiku?",
|
||||||
|
"message.copied": "Kopirano!",
|
||||||
|
"message.delete-warning": "Izbrisat će se svi povezani podaci.",
|
||||||
|
"message.edit-dashboard": "Uredi nadzornu ploču",
|
||||||
|
"message.failure": "Nešto je pošlo po zlu.",
|
||||||
|
"message.get-share-url": "Dohvati poveznicu za dijeljenje",
|
||||||
|
"message.get-tracking-code": "Dohvati kod za praćenje",
|
||||||
|
"message.go-to-settings": "Idi u postavke",
|
||||||
|
"message.incorrect-username-password": "Neispravno korisničke ime/lozinka.",
|
||||||
|
"message.log.visitor": "Posjetitelj iz {country} koristi {browser} na {os} {device}",
|
||||||
|
"message.new-version-available": "Nova verzija umami {version} je dostupna!",
|
||||||
|
"message.no-data-available": "Nema dostupnih podataka.",
|
||||||
|
"message.no-websites-configured": "Nemate konfiguriranu nijednu web stranicu.",
|
||||||
|
"message.page-not-found": "Stranica nije pronađena.",
|
||||||
|
"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.save-success": "Uspješno spremljeno.",
|
||||||
|
"message.share-url": "Ovo je javno dijeljena poveznica za {target}.",
|
||||||
|
"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.type-delete": "Upišite {delete} u donji okvir za potvrdu.",
|
||||||
|
"message.type-reset": " Upišite {reset} u donji okvir za potvrdu. ",
|
||||||
|
"metrics.actions": "Akcije",
|
||||||
|
"metrics.average-visit-time": "Prosječno vrijeme posjeta",
|
||||||
|
"metrics.bounce-rate": "Stopa napuštanja stranice",
|
||||||
|
"metrics.browsers": "Web preglednici",
|
||||||
|
"metrics.countries": "Zemlje",
|
||||||
|
"metrics.device.desktop": "Pc",
|
||||||
|
"metrics.device.laptop": "Laptop",
|
||||||
|
"metrics.device.mobile": "Mobitel",
|
||||||
|
"metrics.device.tablet": "Tablet",
|
||||||
|
"metrics.devices": "Uređaji",
|
||||||
|
"metrics.events": "Događaji",
|
||||||
|
"metrics.filter.combined": "Kombinirano",
|
||||||
|
"metrics.filter.raw": "Neobrađeni podaci",
|
||||||
|
"metrics.languages": "Jezici",
|
||||||
|
"metrics.operating-systems": "Operativni sustavi",
|
||||||
|
"metrics.page-views": "Pregledi stranice",
|
||||||
|
"metrics.pages": "Stranice",
|
||||||
|
"metrics.query-parameters": "Parametri upita",
|
||||||
|
"metrics.referrers": "Upučivaći",
|
||||||
|
"metrics.screens": "Zasloni",
|
||||||
|
"metrics.unique-visitors": "Jedinstveni posjetitelji",
|
||||||
|
"metrics.views": "Pregledi",
|
||||||
|
"metrics.visitors": "Posjetitelji"
|
||||||
|
}
|
|
@ -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?",
|
||||||
|
|
|
@ -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": "ผู้เข้าชม",
|
||||||
|
|
|
@ -40,7 +40,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 ?? {};
|
||||||
|
@ -49,7 +49,7 @@ export async function allowQuery(req, type) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shareToken) {
|
if (allowShareToken && shareToken) {
|
||||||
return isValidToken(shareToken, { id });
|
return isValidToken(shareToken, { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -198,6 +198,11 @@ export const customFormats = {
|
||||||
p: 'ha',
|
p: 'ha',
|
||||||
pp: 'h:mm:ss',
|
pp: 'h:mm:ss',
|
||||||
},
|
},
|
||||||
|
'fr-FR': {
|
||||||
|
'M/d': 'd/M',
|
||||||
|
'MMM d': 'd MMM',
|
||||||
|
'EEE M/d': 'EEE d/M',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export function dateFormat(date, str, locale = 'en-US') {
|
export function dateFormat(date, str, locale = 'en-US') {
|
||||||
|
|
|
@ -14,6 +14,7 @@ import {
|
||||||
faIR,
|
faIR,
|
||||||
he,
|
he,
|
||||||
hi,
|
hi,
|
||||||
|
hr,
|
||||||
id,
|
id,
|
||||||
it,
|
it,
|
||||||
ja,
|
ja,
|
||||||
|
@ -39,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 = {
|
||||||
|
@ -61,6 +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 },
|
||||||
'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 },
|
||||||
|
@ -80,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 { parseAuthToken, parseShareToken } from './auth';
|
import { parseAuthToken, parseShareToken } 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);
|
||||||
|
|
||||||
|
@ -92,11 +104,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 || db === COCKROACHDB) {
|
if (db === POSTGRESQL || db === COCKROACHDB) {
|
||||||
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)`;
|
||||||
|
@ -106,21 +130,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;
|
||||||
}, []);
|
}, []);
|
||||||
|
@ -128,7 +160,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];
|
||||||
|
|
||||||
|
@ -138,11 +170,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;
|
||||||
}, []);
|
}, []);
|
||||||
|
@ -255,11 +285,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": "2.0.0-beta.1",
|
"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,7 +1,7 @@
|
||||||
const { Resolver } = require('dns').promises;
|
const { Resolver } = require('dns').promises;
|
||||||
import isbot from 'isbot';
|
import isbot from 'isbot';
|
||||||
import ipaddr from 'ipaddr.js';
|
import ipaddr from 'ipaddr.js';
|
||||||
import { createToken, unauthorized, send, badRequest, forbidden } from 'next-basics';
|
import { createToken, ok, send, badRequest, forbidden } from 'next-basics';
|
||||||
import { savePageView, saveEvent } from 'queries';
|
import { savePageView, saveEvent } from 'queries';
|
||||||
import { useCors, useSession } from 'lib/middleware';
|
import { useCors, useSession } from 'lib/middleware';
|
||||||
import { getJsonBody, getIpAddress } from 'lib/request';
|
import { getJsonBody, getIpAddress } from 'lib/request';
|
||||||
|
@ -11,7 +11,7 @@ export default async (req, res) => {
|
||||||
await useCors(req, res);
|
await useCors(req, res);
|
||||||
|
|
||||||
if (isbot(req.headers['user-agent']) && !process.env.DISABLE_BOT_CHECK) {
|
if (isbot(req.headers['user-agent']) && !process.env.DISABLE_BOT_CHECK) {
|
||||||
return unauthorized(res);
|
return ok(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
const ignoreIps = process.env.IGNORE_IP;
|
const ignoreIps = process.env.IGNORE_IP;
|
||||||
|
|
|
@ -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 (req.method === 'GET') {
|
||||||
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
if (!(await allowQuery(req, TYPE_WEBSITE))) {
|
||||||
return unauthorized(res);
|
return unauthorized(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.method === 'GET') {
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
||||||
|
{"AF":"Afganistan","AX":"\u00c5landski otoci","AL":"Albanija","DZ":"Al\u017eir","AS":"Ameri\u010dka Samoa","VI":"Ameri\u010dki Djevi\u010danski otoci","AD":"Andora","AO":"Angola","AI":"Angvila","AQ":"Antarktika","AG":"Antigva i Barbuda","AR":"Argentina","AM":"Armenija","AW":"Aruba","AU":"Australija","AT":"Austrija","AZ":"Azerbajd\u017ean","BS":"Bahami","BH":"Bahrein","BD":"Banglade\u0161","BB":"Barbados","BE":"Belgija","BZ":"Belize","BJ":"Benin","BM":"Bermudi","BY":"Bjelorusija","BW":"Bocvana","BO":"Bolivija","BA":"Bosna i Hercegovina","CX":"Bo\u017ei\u0107ni otok","BR":"Brazil","VG":"Britanski Djevi\u010danski otoci","IO":"Britanski Indijskooceanski teritorij","BN":"Brunej","BG":"Bugarska","BF":"Burkina Faso","BI":"Burundi","BT":"Butan","CY":"Cipar","CK":"Cookovi Otoci","ME":"Crna Gora","CW":"Cura\u00e7ao","TD":"\u010cad","CZ":"\u010ce\u0161ka","CL":"\u010cile","DK":"Danska","DM":"Dominika","DO":"Dominikanska Republika","DJ":"D\u017eibuti","EG":"Egipat","EC":"Ekvador","GQ":"Ekvatorska Gvineja","ER":"Eritreja","EE":"Estonija","SZ":"Esvatini","ET":"Etiopija","FK":"Falklandski otoci","FO":"Farski otoci","FJ":"Fid\u017ei","PH":"Filipini","FI":"Finska","FR":"Francuska","GF":"Francuska Gijana","PF":"Francuska Polinezija","TF":"Francuski ju\u017eni i antarkti\u010dki teritoriji","GA":"Gabon","GM":"Gambija","GH":"Gana","GI":"Gibraltar","GR":"Gr\u010dka","GD":"Grenada","GL":"Grenland","GE":"Gruzija","GP":"Guadalupe","GU":"Guam","GG":"Guernsey","GY":"Gvajana","GT":"Gvatemala","GN":"Gvineja","GW":"Gvineja Bisau","HT":"Haiti","HN":"Honduras","HR":"Hrvatska","IN":"Indija","ID":"Indonezija","IQ":"Irak","IR":"Iran","IE":"Irska","IS":"Island","IT":"Italija","IL":"Izrael","JM":"Jamajka","JP":"Japan","YE":"Jemen","JE":"Jersey","JO":"Jordan","GS":"Ju\u017ena Georgija i Ju\u017eni Sendvi\u010dki Otoci","KR":"Ju\u017ena Koreja","SS":"Ju\u017eni Sudan","ZA":"Ju\u017enoafri\u010dka Republika","KY":"Kajmanski otoci","KH":"Kambod\u017ea","CM":"Kamerun","CA":"Kanada","BQ":"Karipski otoci Nizozemske","QA":"Katar","KZ":"Kazahstan","KE":"Kenija","CN":"Kina","KG":"Kirgistan","KI":"Kiribati","CC":"Kokosovi (Keelingovi) otoci","CO":"Kolumbija","KM":"Komori","CG":"Kongo - Brazzaville","CD":"Kongo - Kinshasa","CR":"Kostarika","CU":"Kuba","KW":"Kuvajt","LA":"Laos","LV":"Latvija","LS":"Lesoto","LB":"Libanon","LR":"Liberija","LY":"Libija","LI":"Lihten\u0161tajn","LT":"Litva","LU":"Luksemburg","MG":"Madagaskar","HU":"Ma\u0111arska","MW":"Malavi","MV":"Maldivi","MY":"Malezija","ML":"Mali","UM":"Mali udaljeni otoci SAD-a","MT":"Malta","MA":"Maroko","MH":"Mar\u0161alovi Otoci","MQ":"Martinique","MR":"Mauretanija","MU":"Mauricijus","YT":"Mayotte","MX":"Meksiko","FM":"Mikronezija","MM":"Mjanmar (Burma)","MD":"Moldavija","MC":"Monako","MN":"Mongolija","MS":"Montserrat","MZ":"Mozambik","NA":"Namibija","NR":"Nauru","NP":"Nepal","NE":"Niger","NG":"Nigerija","NI":"Nikaragva","NU":"Niue","NL":"Nizozemska","NO":"Norve\u0161ka","NC":"Nova Kaledonija","NZ":"Novi Zeland","DE":"Njema\u010dka","CI":"Obala Bjelokosti","OM":"Oman","HM":"Otoci Heard i McDonald","PN":"Otoci Pitcairn","TC":"Otoci Turks i Caicos","BV":"Otok Bouvet","IM":"Otok Man","NF":"Otok Norfolk","PK":"Pakistan","PW":"Palau","PS":"Palestinsko podru\u010dje","PA":"Panama","PG":"Papua Nova Gvineja","PY":"Paragvaj","PE":"Peru","PL":"Poljska","PR":"Portoriko","PT":"Portugal","HK":"PUP Hong Kong Kina","MO":"PUP Makao Kina","RE":"R\u00e9union","RW":"Ruanda","RO":"Rumunjska","RU":"Rusija","BL":"Saint Barth\u00e9lemy","MF":"Saint Martin","PM":"Saint-Pierre-et-Miquelon","SB":"Salomonski Otoci","SV":"Salvador","WS":"Samoa","SM":"San Marino","SA":"Saudijska Arabija","SC":"Sej\u0161eli","SN":"Senegal","SL":"Sijera Leone","SG":"Singapur","SX":"Sint Maarten","SY":"Sirija","US":"Sjedinjene Ameri\u010dke Dr\u017eave","KP":"Sjeverna Koreja","MK":"Sjeverna Makedonija","MP":"Sjevernomarijanski otoci","SK":"Slova\u010dka","SI":"Slovenija","SO":"Somalija","RS":"Srbija","CF":"Srednjoafri\u010dka Republika","SD":"Sudan","SR":"Surinam","SJ":"Svalbard i Jan Mayen","SH":"Sveta Helena","LC":"Sveta Lucija","KN":"Sveti Kristofor i Nevis","ST":"Sveti Toma i Princip","VC":"Sveti Vincent i Grenadini","ES":"\u0160panjolska","LK":"\u0160ri Lanka","SE":"\u0160vedska","CH":"\u0160vicarska","TJ":"Tad\u017eikistan","TH":"Tajland","TW":"Tajvan","TZ":"Tanzanija","TL":"Timor-Leste","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad i Tobago","TN":"Tunis","TM":"Turkmenistan","TR":"Turska","TV":"Tuvalu","UG":"Uganda","AE":"Ujedinjeni Arapski Emirati","GB":"Ujedinjeno Kraljevstvo","UA":"Ukrajina","UY":"Urugvaj","UZ":"Uzbekistan","VU":"Vanuatu","VA":"Vatikanski Grad","VE":"Venezuela","VN":"Vijetnam","WF":"Wallis i Futuna","ZM":"Zambija","EH":"Zapadna Sahara","CV":"Zelenortska Republika","ZW":"Zimbabve"}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -244,7 +244,7 @@
|
||||||
"label.none": [
|
"label.none": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "None"
|
"value": "هیچ"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"label.owner": [
|
"label.owner": [
|
||||||
|
@ -474,7 +474,7 @@
|
||||||
"message.edit-dashboard": [
|
"message.edit-dashboard": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Edit dashboard"
|
"value": "ویرایش داشبورد"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"message.failure": [
|
"message.failure": [
|
||||||
|
@ -754,7 +754,7 @@
|
||||||
"metrics.query-parameters": [
|
"metrics.query-parameters": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Query parameters"
|
"value": "پارامترهای کوئری"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metrics.referrers": [
|
"metrics.referrers": [
|
||||||
|
@ -766,7 +766,7 @@
|
||||||
"metrics.screens": [
|
"metrics.screens": [
|
||||||
{
|
{
|
||||||
"type": 0,
|
"type": 0,
|
||||||
"value": "Screens"
|
"value": "نمایشگرها"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metrics.unique-visitors": [
|
"metrics.unique-visitors": [
|
||||||
|
|
|
@ -0,0 +1,854 @@
|
||||||
|
{
|
||||||
|
"label.accounts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Računi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dodaj račun"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-column": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dodaj stupac"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-filter": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dodaj filter"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.add-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dodaj web stranicu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.administrator": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Administrator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Sve"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Svo vrijeme"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.all-websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Sve web stranice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.back": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Natrag "
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.cancel": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Odustani"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.change-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Promijeni lozinku"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.confirm-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Potvrdi lozinku"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.copy-to-clipboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Kopiraj u međuspremnik"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.current-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Trenutna lozinka"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.custom-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Prilagođeni raspon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nadzorna ploča"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Raspon datuma"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.default-date-range": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Zadani datumski raspon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Obriši"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Obriši račun"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.delete-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Obriši web stranicu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.dismiss": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Odbaci"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Domena"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uredi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-account": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uredi račun"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.edit-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uredi web stranicu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.enable-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Omogući dijeljenje poveznice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.event-data": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Podaci događaja"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.field-name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Naziv polja"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Neispravno"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.invalid-domain": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Neispravna domena"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.language": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jezik"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-days": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Zadnjih "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " dana"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.last-hours": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Zadnjih "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " sati"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logged-in-as": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Prijavljen kao "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "username"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.login": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Prijava"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.logout": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Odjava"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.more": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Više"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.name": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ime"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.new-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nova lozinka"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.none": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ništa"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.owner": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Vlasnik"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Lozinka"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.passwords-dont-match": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Lozinke se ne podudaraju"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.profile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Profil"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Stvarno vrijeme"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.realtime-logs": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Trenutni zapisi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.refresh": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Osvježi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.required": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Potrebna"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Resetirati"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.reset-website": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Resetirati web stranicu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.save": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Spremi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.search": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pretraži"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Postavke"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Podijeli poveznicu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.single-day": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jedan dan"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.theme": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Tema"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-month": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ovaj mjesec"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-week": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ovaj tjedan"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.this-year": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ova godina"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.timezone": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Vremenska zona"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.today": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Danas"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Kod za praćenje"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.type": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Tip"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.unknown": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nepoznato"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.username": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Korisničko ime"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Vrijednost"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.view-details": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pogledaj detalje"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.websites": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Web stranice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"label.yesterday": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jučer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.active-users": [
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " Trenutno "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"offset": 0,
|
||||||
|
"options": {
|
||||||
|
"one": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "posjetitelj"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"other": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "posjetitelja"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluralType": "cardinal",
|
||||||
|
"type": 6,
|
||||||
|
"value": "x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jeste li sigurni da želite obrisati "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.confirm-reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jeste li sigurni da želite resetirati "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "'s statistiku?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.copied": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Kopirano!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.delete-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Izbrisat će se svi povezani podaci."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.edit-dashboard": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uredi nadzornu ploču"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.failure": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nešto je pošlo po zlu."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dohvati poveznicu za dijeljenje"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.get-tracking-code": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Dohvati kod za praćenje"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.go-to-settings": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Idi u postavke"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.incorrect-username-password": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Neispravno korisničke ime/lozinka."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.log.visitor": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Posjetitelj iz "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "country"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " koristi "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "browser"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " na "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "os"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "device"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.new-version-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nova verzija umami "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "version"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " je dostupna!"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-data-available": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nema dostupnih podataka."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.no-websites-configured": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Nemate konfiguriranu nijednu web stranicu."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.page-not-found": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Stranica nije pronađena."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.powered-by": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pokreće "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.reset-warning": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Sve statistike za ovu web stranicu bit će izbrisane, ali će vaš kod za praćenje ostati netaknut."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.save-success": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uspješno spremljeno."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.share-url": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Ovo je javno dijeljena poveznica za "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.toggle-charts": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uključi/isključi grafikone"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.track-stats": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Da biste pratili statistiku za "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "target"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": ", postavite sljedeći kod u odjeljak "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "head"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " svoje web stranice."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-delete": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Upišite "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "delete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " u donji okvir za potvrdu."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"message.type-reset": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " Upišite "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 1,
|
||||||
|
"value": "reset"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": " u donji okvir za potvrdu. "
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.actions": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Akcije"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.average-visit-time": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Prosječno vrijeme posjeta"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.bounce-rate": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Stopa napuštanja stranice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.browsers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Web preglednici"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.countries": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Zemlje"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.desktop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.laptop": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Laptop"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.mobile": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Mobitel"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.device.tablet": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Tablet"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.devices": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Uređaji"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.events": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Događaji"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.combined": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Kombinirano"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.filter.raw": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Neobrađeni podaci"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.languages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jezici"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.operating-systems": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Operativni sustavi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.page-views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pregledi stranice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.pages": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Stranice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.query-parameters": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Parametri upita"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.referrers": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Upučivaći"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.screens": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Zasloni"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.unique-visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Jedinstveni posjetitelji"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.views": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Pregledi"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metrics.visitors": [
|
||||||
|
{
|
||||||
|
"type": 0,
|
||||||
|
"value": "Posjetitelji"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
285
yarn.lock
285
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"
|
||||||
|
@ -4753,9 +4782,9 @@ json-stringify-safe@~5.0.1:
|
||||||
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
|
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
|
||||||
|
|
||||||
json5@^1.0.1:
|
json5@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
||||||
integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
|
integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "^1.2.0"
|
minimist "^1.2.0"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
@ -5239,16 +5268,11 @@ minimist-options@4.1.0, minimist-options@^4.0.2:
|
||||||
is-plain-obj "^1.1.0"
|
is-plain-obj "^1.1.0"
|
||||||
kind-of "^6.0.3"
|
kind-of "^6.0.3"
|
||||||
|
|
||||||
minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6:
|
minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6:
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
||||||
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
||||||
|
|
||||||
minimist@^1.2.5:
|
|
||||||
version "1.2.6"
|
|
||||||
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
|
|
||||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
|
||||||
|
|
||||||
minipass@^3.0.0:
|
minipass@^3.0.0:
|
||||||
version "3.1.6"
|
version "3.1.6"
|
||||||
resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz"
|
resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz"
|
||||||
|
@ -5285,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"
|
||||||
|
@ -5385,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"
|
||||||
|
@ -5406,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"
|
||||||
|
|
||||||
|
@ -5561,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"
|
||||||
|
@ -6100,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"
|
||||||
|
@ -6172,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"
|
||||||
|
@ -7426,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"
|
||||||
|
@ -7441,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"
|
||||||
|
|
||||||
|
@ -7499,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"
|
||||||
|
@ -7700,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