diff --git a/package.json b/package.json index 186a1cd4..9ca56fe3 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@dicebear/collection": "^9.2.1", "@dicebear/core": "^9.2.1", "@fontsource/inter": "^4.5.15", - "@prisma/client": "5.16.2", + "@prisma/client": "5.17.0", "@prisma/extension-read-replicas": "^0.3.0", "@react-spring/web": "^9.7.3", "@tanstack/react-query": "^5.28.6", @@ -104,9 +104,9 @@ "next-basics": "^0.39.0", "node-fetch": "^3.2.8", "npm-run-all": "^4.1.5", - "prisma": "5.16.2", + "prisma": "5.17.0", "react": "^18.2.0", - "react-basics": "^0.123.0", + "react-basics": "^0.124.0", "react-beautiful-dnd": "^13.1.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.4", diff --git a/public/intl/messages/be-BY.json b/public/intl/messages/be-BY.json index e6afc2ca..5d84ef4e 100644 --- a/public/intl/messages/be-BY.json +++ b/public/intl/messages/be-BY.json @@ -2,7 +2,7 @@ "label.access-code": [ { "type": 0, - "value": "Access code" + "value": "Код доступу" } ], "label.actions": [ @@ -14,31 +14,31 @@ "label.activity-log": [ { "type": 0, - "value": "Activity log" + "value": "Журнал актыўнасці" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "Дадаць" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Дадаць апісанне" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Дадаць удзельніка" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Дадаць крок" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Пасля" } ], "label.all": [ @@ -74,13 +74,13 @@ "label.analytics": [ { "type": 0, - "value": "Analytics" + "value": "Аналітыка" } ], "label.average": [ { "type": 0, - "value": "Average" + "value": "Сярэдняе" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "Да" } ], "label.bounce-rate": [ @@ -104,13 +104,13 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Разбіўка" } ], "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Браўзер" } ], "label.browsers": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "Гарады" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "Горад" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "Ачысціць усё" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Параўнаць" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "Падцвердзіць" } ], "label.confirm-password": [ @@ -170,19 +170,19 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Уключае" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "Працягнуць" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "Колькасць" } ], "label.countries": [ @@ -194,61 +194,61 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "Краіна" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Стварыць" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Стварыць справаздачу" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "Стварыць каманду" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "Стварыць карыстальніка" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "Створана" } ], "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Створана" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Цяперашні" } ], "label.current-password": [ { "type": 0, - "value": "Бягучы пароль" + "value": "Цяперашні пароль" } ], "label.custom-range": [ { "type": 0, - "value": "Карыстацкі дыяпазон" + "value": "Іншы дыяпазон" } ], "label.dashboard": [ @@ -260,13 +260,13 @@ "label.data": [ { "type": 0, - "value": "Data" + "value": "Дадзеныя" } ], "label.date": [ { "type": 0, - "value": "Date" + "value": "Дата" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Дзень" } ], "label.default-date-range": [ @@ -296,19 +296,19 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Выдаліць справаздачу" } ], "label.delete-team": [ { "type": 0, - "value": "Delete team" + "value": "Выдаліць каманду" } ], "label.delete-user": [ { "type": 0, - "value": "Delete user" + "value": "Выдаліць карыстальніка" } ], "label.delete-website": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Апісанне" } ], "label.desktop": [ @@ -332,13 +332,13 @@ "label.details": [ { "type": 0, - "value": "Details" + "value": "Дэталі" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "Прылада" } ], "label.devices": [ @@ -350,13 +350,13 @@ "label.dismiss": [ { "type": 0, - "value": "Адмена" + "value": "Адхіліць" } ], "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Не ўключае" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Адмовы" } ], "label.edit": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Рэдагаваць удзельніка" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Канчатковы крок" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL уваходу" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Падзея" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Дадзеныя падзеі" } ], "label.events": [ @@ -428,37 +428,37 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL выхаду" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Ложна" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Поле" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Палі" } ], "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Фільтр" } ], "label.filter-combined": [ { "type": 0, - "value": "Камбініаваны" + "value": "Камбініраваны" } ], "label.filter-raw": [ @@ -470,121 +470,121 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Фільтры" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Варонка" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Разумець паказчыкі канверсіі і адмоваў." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Мэта" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Мэты" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Сачыць за мэтамі па праглядах старонак і падзеях." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Больш чым" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Больш чым або роўна" } ], "label.host": [ { "type": 0, - "value": "Host" + "value": "Хост" } ], "label.hosts": [ { "type": 0, - "value": "Hosts" + "value": "Хасты" } ], "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Інсайты" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Даследваць дадзеныя з дапамогай сегментаў і фільтраў." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "З'яўляецца" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Не з'яўляецца" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Не ўстаноўлена" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Устаноўлена" } ], "label.join": [ { "type": 0, - "value": "Join" + "value": "Далучыцца" } ], "label.join-team": [ { "type": 0, - "value": "Join team" + "value": "Далучыцца да каманды" } ], "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Маршрут карыстальніка" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Разумець як карыстальнікі навігуюць па сайце." } ], "label.language": [ @@ -616,7 +616,7 @@ }, { "type": 0, - "value": " дні" + "value": " дзён" } ], "label.last-hours": [ @@ -636,7 +636,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Апошнія " }, { "type": 1, @@ -644,37 +644,37 @@ }, { "type": 0, - "value": " months" + "value": " месяцаў" } ], "label.leave": [ { "type": 0, - "value": "Leave" + "value": "Пакінуць" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "Пакінуць каманду" } ], "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Менш чым" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Менш чым або роўна" } ], "label.login": [ { "type": 0, - "value": "Login" + "value": "Увайсці" } ], "label.logout": [ @@ -686,37 +686,37 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Кіраваць" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Кіраўнік" } ], "label.max": [ { "type": 0, - "value": "Max" + "value": "Максімум" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "Удзельнік" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "Удзельнікі" } ], "label.min": [ { "type": 0, - "value": "Min" + "value": "Мінімум" } ], "label.mobile": [ @@ -734,13 +734,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Мой уліковы запіс" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Мае сайты" } ], "label.name": [ @@ -777,7 +777,7 @@ "value": [ { "type": 0, - "value": "record" + "value": "запіс" } ] }, @@ -785,7 +785,7 @@ "value": [ { "type": 0, - "value": "records" + "value": "запісаў" } ] } @@ -798,19 +798,19 @@ "label.ok": [ { "type": 0, - "value": "OK" + "value": "ОК" } ], "label.os": [ { "type": 0, - "value": "OS" + "value": "Аперацыйная сістэма" } ], "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Агляд" } ], "label.owner": [ @@ -822,7 +822,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Старонка " }, { "type": 1, @@ -830,7 +830,7 @@ }, { "type": 0, - "value": " of " + "value": " з " }, { "type": 1, @@ -846,7 +846,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Загаловак старонкі" } ], "label.pages": [ @@ -874,19 +874,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Папярэдні" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Папярэдні перыяд" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Папярэдні год" } ], "label.profile": [ @@ -898,25 +898,25 @@ "label.property": [ { "type": 0, - "value": "Property" + "value": "Уласцівасць" } ], "label.queries": [ { "type": 0, - "value": "Queries" + "value": "Запыты" } ], "label.query": [ { "type": 0, - "value": "Query" + "value": "Запыт" } ], "label.query-parameters": [ { "type": 0, - "value": "Query parameters" + "value": "Параметры запыту" } ], "label.realtime": [ @@ -928,13 +928,13 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Рэферэр" } ], "label.referrers": [ { "type": 0, - "value": "Referrers" + "value": "Рэферэры" } ], "label.refresh": [ @@ -946,37 +946,37 @@ "label.regenerate": [ { "type": 0, - "value": "Regenerate" + "value": "Рэгенераваць" } ], "label.region": [ { "type": 0, - "value": "Region" + "value": "Рэгіён" } ], "label.regions": [ { "type": 0, - "value": "Regions" + "value": "Рэгіёны" } ], "label.remove": [ { "type": 0, - "value": "Remove" + "value": "Выдаліць" } ], "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Выдаліць удзельніка" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Справаздачы" } ], "label.required": [ @@ -1000,25 +1000,25 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Утрыманне" } ], "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Ацаніць прыцягальнасць сайта, адсочваючы павяртанні карыстальнікаў." } ], "label.role": [ { "type": 0, - "value": "Role" + "value": "Роля" } ], "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Запусціць запыт" } ], "label.save": [ @@ -1036,37 +1036,37 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Пошук" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Выбраць" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Выбраць дату" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Выбраць ролю" } ], "label.select-website": [ { "type": 0, - "value": "Select website" + "value": "Выбраць сайт" } ], "label.sessions": [ { "type": 0, - "value": "Sessions" + "value": "Сесіі" } ], "label.settings": [ @@ -1090,19 +1090,19 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Першы кроку" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Крокі" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Сума" } ], "label.tablet": [ @@ -1114,55 +1114,55 @@ "label.team": [ { "type": 0, - "value": "Team" + "value": "Каманда" } ], "label.team-id": [ { "type": 0, - "value": "Team ID" + "value": "Ідэнтыфікатар каманды" } ], "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Кіраўнік каманды" } ], "label.team-member": [ { "type": 0, - "value": "Team member" + "value": "Удзельнік каманды" } ], "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Назва каманды" } ], "label.team-owner": [ { "type": 0, - "value": "Team owner" + "value": "Уласнік каманды" } ], "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Толькі для каманднага прагляду" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Сайты каманды" } ], "label.teams": [ { "type": 0, - "value": "Teams" + "value": "Каманды" } ], "label.theme": [ @@ -1192,13 +1192,13 @@ "label.timezone": [ { "type": 0, - "value": "Таймзона" + "value": "Часавы пояс" } ], "label.title": [ { "type": 0, - "value": "Title" + "value": "Загаловак" } ], "label.today": [ @@ -1216,13 +1216,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "Агульная колькасць" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Агульная колькасць запісаў" } ], "label.tracking-code": [ @@ -1234,31 +1234,31 @@ "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Перадаць" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Перадаць сайт" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Ісціна" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Тып" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Унікальны" } ], "label.unique-visitors": [ @@ -1276,13 +1276,13 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Без назвы" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "Абнавіць" } ], "label.url": [ @@ -1300,7 +1300,7 @@ "label.user": [ { "type": 0, - "value": "User" + "value": "Карыстальнік" } ], "label.username": [ @@ -1312,7 +1312,7 @@ "label.users": [ { "type": 0, - "value": "Users" + "value": "Карыстальнікі" } ], "label.utm": [ @@ -1324,31 +1324,31 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Сачыць за кампаніямі з дапамогай UTM-метак." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Значэнне" } ], "label.view": [ { "type": 0, - "value": "View" + "value": "Паглядзець" } ], "label.view-details": [ { "type": 0, - "value": "Пабачыць дэталі" + "value": "Паглядзець дэталі" } ], "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Толькі прагляд" } ], "label.views": [ @@ -1360,7 +1360,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Прагляды за наведванне" } ], "label.visit-duration": [ @@ -1378,19 +1378,19 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Наведванні" } ], "label.website": [ { "type": 0, - "value": "Website" + "value": "Сайт" } ], "label.website-id": [ { "type": 0, - "value": "Website ID" + "value": "Ідэнтыфікатар сайта" } ], "label.websites": [ @@ -1402,7 +1402,7 @@ "label.window": [ { "type": 0, - "value": "Window" + "value": "Вакно" } ], "label.yesterday": [ @@ -1414,7 +1414,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Увядзіце " }, { "type": 1, @@ -1422,7 +1422,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " у поле ніжэй, каб пацвердзіць." } ], "message.active-users": [ @@ -1432,7 +1432,7 @@ }, { "type": 0, - "value": " тякучых " + "value": " цякучых " }, { "offset": 0, @@ -1462,7 +1462,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Сабраныя дадзеныя" } ], "message.confirm-delete": [ @@ -1482,7 +1482,7 @@ "message.confirm-leave": [ { "type": 0, - "value": "Are you sure you want to leave " + "value": "Вы дакладна хочаце пакінуць " }, { "type": 1, @@ -1496,7 +1496,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Вы дакладна хочаце выдаліць " }, { "type": 1, @@ -1524,7 +1524,7 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Выдаленне каманды таксама выдаліць усе сайты каманды." } ], "message.delete-website-warning": [ @@ -1546,7 +1546,7 @@ }, { "type": 0, - "value": " on " + "value": " на " }, { "type": 1, @@ -1562,7 +1562,7 @@ "message.incorrect-username-password": [ { "type": 0, - "value": "Некарэктны username/password." + "value": "Некарэктнае імя карыстальніка/пароль." } ], "message.invalid-domain": [ @@ -1574,7 +1574,7 @@ "message.min-password-length": [ { "type": 0, - "value": "Minimum length of " + "value": "Мінімальная даўжыня " }, { "type": 1, @@ -1582,13 +1582,13 @@ }, { "type": 0, - "value": " characters" + "value": " знакаў" } ], "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Даступная новая версія Umami " }, { "type": 1, @@ -1596,7 +1596,7 @@ }, { "type": 0, - "value": " is available!" + "value": "!" } ], "message.no-data-available": [ @@ -1608,7 +1608,7 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Дадзеныя падзеі недаступныя." } ], "message.no-match-password": [ @@ -1620,31 +1620,31 @@ "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Вынікаў не знойдзена." } ], "message.no-team-websites": [ { "type": 0, - "value": "This team does not have any websites." + "value": "Гэтая каманда не мае ніводнага сайта." } ], "message.no-teams": [ { "type": 0, - "value": "You have not created any teams." + "value": "Вы не стварылі ніводнай каманды." } ], "message.no-users": [ { "type": 0, - "value": "There are no users." + "value": "Няма карыстальнікаў." } ], "message.no-websites-configured": [ { "type": 0, - "value": "Вы не наладзілі ніводнага сайту." + "value": "Вы не наладзілі ніводнага сайта." } ], "message.page-not-found": [ @@ -1656,7 +1656,7 @@ "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "Каб скінуць гэты сайт, увядзіце " }, { "type": 1, @@ -1664,13 +1664,13 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " у поле ніжэй для пацверджання." } ], "message.reset-website-warning": [ { "type": 0, - "value": "Уся статыстыка для гэтага сайту будзе выдалена, але код адсочвання будзе працягваць працаваць." + "value": "Уся статыстыка для гэтага сайта будзе выдалена, але код адсочвання будзе працягваць працаваць." } ], "message.saved": [ @@ -1696,19 +1696,19 @@ "message.team-already-member": [ { "type": 0, - "value": "You are already a member of the team." + "value": "Вы ўжо ўдзельнік каманды." } ], "message.team-not-found": [ { "type": 0, - "value": "Team not found." + "value": "Каманда не знойдзена." } ], "message.team-websites-info": [ { "type": 0, - "value": "Websites can be viewed by anyone on the team." + "value": "Сайты могуць быць праглядацца любым удзельнікам каманды." } ], "message.tracking-code": [ @@ -1720,37 +1720,37 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Перадаць гэты сайт на ваш уліковы запіс?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Выберыце каманду для перадачы гэтага сайта." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Перадача сайта на ваш уліковы запіс або іншай камандзе." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Падзея якая спрацавала" } ], "message.user-deleted": [ { "type": 0, - "value": "User deleted." + "value": "Карыстальнік выдалены." } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Праглядзеў старонку" } ], "message.visitor-log": [ @@ -1790,7 +1790,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Наведвальнікі сышлі" } ] } diff --git a/public/intl/messages/de-DE.json b/public/intl/messages/de-DE.json index a7d1f1ab..713238bc 100644 --- a/public/intl/messages/de-DE.json +++ b/public/intl/messages/de-DE.json @@ -74,7 +74,7 @@ "label.analytics": [ { "type": 0, - "value": "Analytics" + "value": "Analysen" } ], "label.average": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Vergleich" + "value": "Vergleichen" } ], "label.confirm": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Absprung" } ], "label.edit": [ @@ -398,13 +398,13 @@ "label.end-step": [ { "type": 0, - "value": "Schritt beenden" + "value": "Schlussschritt" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Eintrags-URL" } ], "label.event": [ @@ -428,7 +428,7 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "Ausgangs-URL" } ], "label.false": [ @@ -482,7 +482,7 @@ "label.funnel-description": [ { "type": 0, - "value": "Verstehe die Konversions- und Dropoffrate von Nutzern." + "value": "Verstehe die Konversions- und Abbruchrate der Nutzer." } ], "label.goal": [ @@ -500,7 +500,7 @@ "label.goals-description": [ { "type": 0, - "value": "Verfolgen Sie Ihre Ziele für Aufrufe und Events." + "value": "Verfolgen Sie Ihre Ziele für Seitenaufrufe und Ereignisse." } ], "label.greater-than": [ @@ -530,13 +530,13 @@ "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Einblicke" } ], "label.insights-description": [ { "type": 0, - "value": "Tauchen Sie tiefer in Ihre Daten mit Filtern und Segmenten ein." + "value": "Vertiefen Sie Ihre Daten mit Hilfe von Segmenten und Filtern." } ], "label.is": [ @@ -578,13 +578,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Reise" } ], "label.journey-description": [ { "type": 0, - "value": "Verstehen Sie, wie Nutzer Ihre Website navigieren." + "value": "Verstehe, wie Nutzer auf der Webseite navigieren" } ], "label.language": [ @@ -608,7 +608,7 @@ "label.last-days": [ { "type": 0, - "value": "Letzte " + "value": "Letzten " }, { "type": 1, @@ -622,7 +622,7 @@ "label.last-hours": [ { "type": 0, - "value": "Letzte " + "value": "Letzten " }, { "type": 1, @@ -636,7 +636,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Letzten " }, { "type": 1, @@ -644,7 +644,7 @@ }, { "type": 0, - "value": " months" + "value": " Monate" } ], "label.leave": [ @@ -692,7 +692,7 @@ "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Verwaltung" } ], "label.max": [ @@ -734,13 +734,13 @@ "label.my-account": [ { "type": 0, - "value": "Mein Konto" + "value": "Mein Account" } ], "label.my-websites": [ { "type": 0, - "value": "Meine Websites" + "value": "Meine Webseiten" } ], "label.name": [ @@ -874,13 +874,13 @@ "label.previous": [ { "type": 0, - "value": "Vorherige" + "value": "Vorheriges" } ], "label.previous-period": [ { "type": 0, - "value": "Vorheriger Zeitraum" + "value": "Vorherige Periode" } ], "label.previous-year": [ @@ -898,7 +898,7 @@ "label.property": [ { "type": 0, - "value": "Besitz" + "value": "Eigentum" } ], "label.queries": [ @@ -1000,13 +1000,13 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Bewahrung" } ], "label.retention-description": [ { "type": 0, - "value": "Messen Sie die Presenz Ihrer Website, indem Sie tracken wie oft Nutzer zurückkehren." + "value": "Messen Sie die Verweildauer auf Ihrer Website, indem Sie verfolgen, wie oft die Nutzer zurückkehren." } ], "label.role": [ @@ -1060,7 +1060,7 @@ "label.select-website": [ { "type": 0, - "value": "Website auswählen" + "value": "Webseite auswählen" } ], "label.sessions": [ @@ -1090,7 +1090,7 @@ "label.start-step": [ { "type": 0, - "value": "Schritt starten" + "value": "Startschritt" } ], "label.steps": [ @@ -1150,7 +1150,7 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Nur für Team sichtbar" } ], "label.team-websites": [ @@ -1324,7 +1324,7 @@ "label.utm-description": [ { "type": 0, - "value": "Tracken Sie Ihre Kampagnen mit Hilfe von UTM Parametern." + "value": "Tracke deine Kampagnen mit UTM parameterns." } ], "label.value": [ @@ -1384,19 +1384,19 @@ "label.website": [ { "type": 0, - "value": "Website" + "value": "Webseite" } ], "label.website-id": [ { "type": 0, - "value": "Website ID" + "value": "Webseiten-ID" } ], "label.websites": [ { "type": 0, - "value": "Websites" + "value": "Webseiten" } ], "label.window": [ @@ -1414,7 +1414,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Tippen Sie " + "value": "Schreibe " }, { "type": 1, @@ -1422,7 +1422,7 @@ }, { "type": 0, - "value": " in das untenliegende Feld, um zu bestätigen." + "value": " in die Box zur bestätigung." } ], "message.active-users": [ @@ -1496,7 +1496,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Sind Sie sicher, dass Sie " + "value": "Sind Sie sicher, " }, { "type": 1, @@ -1504,7 +1504,7 @@ }, { "type": 0, - "value": " entfernen möchten?" + "value": " zu entfernen?" } ], "message.confirm-reset": [ @@ -1524,7 +1524,7 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Alle zugehörigen Websiten werden ebenfalls gelöscht." + "value": "Ein Team zu löschen, wird auch alle Team-Webseiten löschen." } ], "message.delete-website-warning": [ @@ -1708,25 +1708,25 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Möchten Sie diese Website auf Ihr Konto übertragen?" + "value": "Diese Webseite zu deinem Account transferieren?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Wählen Sie das Team, auf das die Website übertragen wird." + "value": "Wähle ein Team aus, zu dem die Webseite transferiert werden soll." } ], "message.transfer-website": [ { "type": 0, - "value": "Übertragen Sie den Besitz der Website auf Ihren Account oder ein anderes Team." + "value": "Übertrage die Eigentümerrechte zu deinem Account oder einem anderen Team." } ], "message.triggered-event": [ { "type": 0, - "value": "Event ausgelöst" + "value": "Ausgelöstes Event" } ], "message.user-deleted": [ @@ -1738,7 +1738,7 @@ "message.viewed-page": [ { "type": 0, - "value": "Seite besucht" + "value": "Besuchte Seite" } ], "message.visitor-log": [ @@ -1778,7 +1778,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Besucher haben die Seite verlassen" + "value": "Besucherverlust" } ] } diff --git a/public/intl/messages/es-ES.json b/public/intl/messages/es-ES.json index 496fabc6..825877e4 100644 --- a/public/intl/messages/es-ES.json +++ b/public/intl/messages/es-ES.json @@ -38,7 +38,7 @@ "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Añadir paso" } ], "label.add-website": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Comparar" } ], "label.confirm": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Contar" } ], "label.countries": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Creado por" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Actual" } ], "label.current-password": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Editar miembro" } ], "label.enable-share-url": [ @@ -398,13 +398,13 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Paso final" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL de entrada" } ], "label.event": [ @@ -428,7 +428,7 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL de salida" } ], "label.false": [ @@ -476,7 +476,7 @@ "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Embudo" } ], "label.funnel-description": [ @@ -488,19 +488,19 @@ "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Objetivo" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Objetivos" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Realice un seguimiento de sus objetivos de páginas vistas y eventos." } ], "label.greater-than": [ @@ -578,13 +578,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Viaje" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Comprenda cómo los usuarios navegan por su sitio web." } ], "label.language": [ @@ -636,7 +636,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Últimos " }, { "type": 1, @@ -644,7 +644,7 @@ }, { "type": 0, - "value": " months" + "value": " meses" } ], "label.leave": [ @@ -698,7 +698,7 @@ "label.max": [ { "type": 0, - "value": "Máx" + "value": "Max" } ], "label.member": [ @@ -716,7 +716,7 @@ "label.min": [ { "type": 0, - "value": "Mín" + "value": "Min" } ], "label.mobile": [ @@ -874,19 +874,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Anterior" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Periodo anterior" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Año anterior" } ], "label.profile": [ @@ -898,7 +898,7 @@ "label.property": [ { "type": 0, - "value": "Property" + "value": "Propiedad" } ], "label.queries": [ @@ -952,7 +952,7 @@ "label.region": [ { "type": 0, - "value": "Region" + "value": "Región" } ], "label.regions": [ @@ -1042,7 +1042,7 @@ "label.select": [ { "type": 0, - "value": "Select" + "value": "Seleccionar" } ], "label.select-date": [ @@ -1090,13 +1090,13 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Paso inical" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Pasos" } ], "label.sum": [ @@ -1126,7 +1126,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Jefe de equipo" } ], "label.team-member": [ @@ -1282,7 +1282,7 @@ "label.update": [ { "type": 0, - "value": "Update" + "value": "Actualizar" } ], "label.url": [ @@ -1324,7 +1324,7 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Realice un seguimiento de sus campañas a través de parámetros UTM." } ], "label.value": [ @@ -1360,7 +1360,7 @@ "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Vistas por visita" } ], "label.visit-duration": [ @@ -1378,7 +1378,7 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Visitas" } ], "label.website": [ @@ -1462,7 +1462,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Datos obtenidos" } ], "message.confirm-delete": [ @@ -1726,7 +1726,7 @@ "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Seleccione el equipo al que transferir este sitio web." } ], "message.transfer-website": [ diff --git a/public/intl/messages/km-KH.json b/public/intl/messages/km-KH.json index 841dabdd..ad273d29 100644 --- a/public/intl/messages/km-KH.json +++ b/public/intl/messages/km-KH.json @@ -14,31 +14,31 @@ "label.activity-log": [ { "type": 0, - "value": "Activity log" + "value": "កំណត់ហេតុ​សកម្មភាព" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "បង្កើតបន្ថែម" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "បន្ថែមពិពណ៌នា" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "បន្ថែមសមាជិក" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "បន្ថែមជំហាន" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "បន្ទាប់" } ], "label.all": [ @@ -80,7 +80,7 @@ "label.average": [ { "type": 0, - "value": "Average" + "value": "ជាមធ្យម" } ], "label.back": [ @@ -92,7 +92,7 @@ "label.before": [ { "type": 0, - "value": "Before" + "value": "មុន" } ], "label.bounce-rate": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "ទីក្រុង" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "ទីក្រុង" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "លុបទាំងអស់" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "ប្រៀបធៀប" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "បញ្ជាក់" } ], "label.confirm-password": [ @@ -170,19 +170,19 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "មាន" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "បន្ត" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "ចំនួន" } ], "label.countries": [ @@ -194,49 +194,49 @@ "label.country": [ { "type": 0, - "value": "Country" + "value": "ប្រទេស" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "បង្កើត" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "បង្កើតរបាយការណ៍" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "បង្កើតក្រុម" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "បង្កើតអ្នកប្រើប្រាស់" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "បង្កើតនៅ" } ], "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "បង្កើតដោយ" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "បច្ចុប្បន្ន" } ], "label.current-password": [ @@ -260,13 +260,13 @@ "label.data": [ { "type": 0, - "value": "Data" + "value": "ទិន្នន័យ" } ], "label.date": [ { "type": 0, - "value": "Date" + "value": "កាលបរិច្ឆេទ" } ], "label.date-range": [ @@ -278,13 +278,13 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "ថ្ងៃ" } ], "label.default-date-range": [ { "type": 0, - "value": "ចន្លោះកាលបរិច្ឆេទស្រាប់" + "value": "ចន្លោះកាលបរិច្ឆេទដើម" } ], "label.delete": [ @@ -296,19 +296,19 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "លុបរបាយការណ៍" } ], "label.delete-team": [ { "type": 0, - "value": "Delete team" + "value": "លុបក្រុម" } ], "label.delete-user": [ { "type": 0, - "value": "Delete user" + "value": "លុបអ្នកប្រើប្រាស់" } ], "label.delete-website": [ @@ -320,7 +320,7 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "ការពិពណ៌នា" } ], "label.desktop": [ @@ -332,13 +332,13 @@ "label.details": [ { "type": 0, - "value": "Details" + "value": "ព័ត៌មានលម្អិត" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "ឧបករណ៍" } ], "label.devices": [ @@ -350,19 +350,19 @@ "label.dismiss": [ { "type": 0, - "value": "បដិសេធ" + "value": "រំសាយ" } ], "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "មិនមាន" } ], "label.domain": [ { "type": 0, - "value": "ឈ្មោះគេហទំព័រ" + "value": "Domain" } ], "label.dropoff": [ @@ -386,7 +386,7 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "កែព័ត៌មានសមាជិក" } ], "label.enable-share-url": [ @@ -398,25 +398,25 @@ "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "បញ្ចប់ជំហាន" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL ចូល" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "ព្រឹត្តិការណ៍" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "ទិន្នន័យព្រឹត្តិការណ៍" } ], "label.events": [ @@ -428,13 +428,13 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL ចេញ" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "មិនពិត" } ], "label.field": [ @@ -452,7 +452,7 @@ "label.filter": [ { "type": 0, - "value": "Filter" + "value": "ចម្រោះ" } ], "label.filter-combined": [ @@ -470,7 +470,7 @@ "label.filters": [ { "type": 0, - "value": "Filters" + "value": "ចម្រោះ" } ], "label.funnel": [ @@ -488,31 +488,31 @@ "label.goal": [ { "type": 0, - "value": "Goal" + "value": "គោលដៅ" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "គោលដៅ" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "តាមដានគោលដៅរបស់អ្នកសម្រាប់ pageviews និង events។" } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "ធំជាង" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "ធំជាងឬស្មើ" } ], "label.host": [ @@ -542,49 +542,49 @@ "label.is": [ { "type": 0, - "value": "Is" + "value": "គឺ" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "មិនមែន" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "មិនបានកំណត់" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "បានកំណត់" } ], "label.join": [ { "type": 0, - "value": "Join" + "value": "ចូលរួម" } ], "label.join-team": [ { "type": 0, - "value": "Join team" + "value": "ចូលក្រុម" } ], "label.journey": [ { "type": 0, - "value": "Journey" + "value": "​ដំណើរ" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "ស្វែងយល់ពីការប្រើប្រាស់គេហទំព័ររបស់អតិថិជនអ្នក។" } ], "label.language": [ @@ -612,7 +612,7 @@ }, { "type": 0, - "value": " ថ្ងៃមុន" + "value": " ថ្ងៃចុងក្រោយ" } ], "label.last-hours": [ @@ -622,45 +622,41 @@ }, { "type": 0, - "value": " ម៉ោងមុន" + "value": " ម៉ោងចុងក្រោយ" } ], "label.last-months": [ - { - "type": 0, - "value": "Last " - }, { "type": 1, "value": "x" }, { "type": 0, - "value": " months" + "value": " ខែចុងក្រោយ" } ], "label.leave": [ { "type": 0, - "value": "Leave" + "value": "ចាកចេញ" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "ចេញពីក្រុម" } ], "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "តិច​ជាង" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "តិចជាង ឬស្មើ" } ], "label.login": [ @@ -672,19 +668,19 @@ "label.logout": [ { "type": 0, - "value": "ចេញ" + "value": "Logout" } ], "label.manage": [ { "type": 0, - "value": "Manage" + "value": "គ្រប់គ្រង" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "អ្នកគ្រប់គ្រង" } ], "label.max": [ @@ -696,13 +692,13 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "សមាជិក" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "សមាជិក" } ], "label.min": [ @@ -726,13 +722,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "គណនី​របស់ខ្ញុំ" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "គេហទំព័ររបស់ខ្ញុំ" } ], "label.name": [ @@ -802,7 +798,7 @@ "label.overview": [ { "type": 0, - "value": "Overview" + "value": "ទិដ្ឋភាពរួម" } ], "label.owner": [ @@ -814,7 +810,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "ទំព័រទី " }, { "type": 1, @@ -822,7 +818,7 @@ }, { "type": 0, - "value": " of " + "value": " នៃ " }, { "type": 1, @@ -838,7 +834,7 @@ "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "ចំណងជើងទំព័រ" } ], "label.pages": [ @@ -866,25 +862,25 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "មុន" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "មួយរយៈពេលមុន" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "ឆ្នាំ​មុន" } ], "label.profile": [ { "type": 0, - "value": "ប្រវត្តិរូប" + "value": "គណនី" } ], "label.property": [ @@ -920,7 +916,7 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "អ្នកណែនាំ" } ], "label.referrers": [ @@ -944,31 +940,31 @@ "label.region": [ { "type": 0, - "value": "Region" + "value": "តំបន់" } ], "label.regions": [ { "type": 0, - "value": "Regions" + "value": "តំបន់" } ], "label.remove": [ { "type": 0, - "value": "Remove" + "value": "លុប" } ], "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "លុបសមាជិកក្រុម" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "របាយការណ៍" } ], "label.required": [ @@ -980,7 +976,7 @@ "label.reset": [ { "type": 0, - "value": "កំណត់ឡើងវិញ" + "value": "កែសម្រួល" } ], "label.reset-website": [ @@ -992,7 +988,7 @@ "label.retention": [ { "type": 0, - "value": "Retention" + "value": "ការរក្សាទុក" } ], "label.retention-description": [ @@ -1004,7 +1000,7 @@ "label.role": [ { "type": 0, - "value": "Role" + "value": "មុខងារ" } ], "label.run-query": [ @@ -1028,31 +1024,31 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "ស្វែងរក" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "ជ្រើសរើស" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "ជ្រើសរើសកាលបរិច្ឆេទ" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "ជ្រើសរើសមុខងារ" } ], "label.select-website": [ { "type": 0, - "value": "Select website" + "value": "ជ្រើសរើសគេហទំព័រ" } ], "label.sessions": [ @@ -1082,13 +1078,13 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "ជំហានចាប់ផ្តើម" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "ជំហាន" } ], "label.sum": [ @@ -1106,37 +1102,37 @@ "label.team": [ { "type": 0, - "value": "Team" + "value": "ក្រុម" } ], "label.team-id": [ { "type": 0, - "value": "Team ID" + "value": "ID ក្រុម" } ], "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "អ្នកគ្រប់គ្រងក្រុម" } ], "label.team-member": [ { "type": 0, - "value": "Team member" + "value": "សមាជិកក្រុម" } ], "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "ឈ្មោះក្រុម" } ], "label.team-owner": [ { "type": 0, - "value": "Team owner" + "value": "ម្ចាស់ក្រុម" } ], "label.team-view-only": [ @@ -1148,13 +1144,13 @@ "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "គេហទំព័ររបស់ក្រុម" } ], "label.teams": [ { "type": 0, - "value": "Teams" + "value": "ក្រុម" } ], "label.theme": [ @@ -1190,7 +1186,7 @@ "label.title": [ { "type": 0, - "value": "Title" + "value": "ចំណងជើង" } ], "label.today": [ @@ -1208,13 +1204,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "សរុប" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "កំណត់ត្រាសរុប" } ], "label.tracking-code": [ @@ -1226,19 +1222,19 @@ "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "ការផ្ទេរ" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "ការផ្ទេរគេហទំព័រ" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "ពិត" } ], "label.type": [ @@ -1268,7 +1264,7 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "គ្មានចំណងជើង" } ], "label.update": [ @@ -1292,7 +1288,7 @@ "label.user": [ { "type": 0, - "value": "User" + "value": "អ្នកប្រើប្រាស់" } ], "label.username": [ @@ -1304,7 +1300,7 @@ "label.users": [ { "type": 0, - "value": "Users" + "value": "អ្នកប្រើប្រាស់" } ], "label.utm": [ @@ -1316,7 +1312,7 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "តាមដានយុទ្ធនាការរបស់អ្នកតាមរយៈប៉ារ៉ាម៉ែត្រ UTM។" } ], "label.value": [ @@ -1340,7 +1336,7 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "បានតែមើលប៉ុណ្ណោះ" } ], "label.views": [ @@ -1358,7 +1354,7 @@ "label.visit-duration": [ { "type": 0, - "value": "មើលជាមធ្យម" + "value": "រយៈពេលទស្សនា" } ], "label.visitors": [ @@ -1370,19 +1366,19 @@ "label.visits": [ { "type": 0, - "value": "Visits" + "value": "ទស្សនា" } ], "label.website": [ { "type": 0, - "value": "Website" + "value": "គេហទំព័រ" } ], "label.website-id": [ { "type": 0, - "value": "Website ID" + "value": "ID គេហទំព័រ" } ], "label.websites": [ @@ -1406,7 +1402,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "សសេរ " }, { "type": 1, @@ -1414,7 +1410,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " នៅក្នុងប្រអប់ខាងក្រោមដើម្បីបញ្ជាក់។" } ], "message.active-users": [ @@ -1434,7 +1430,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "ទិន្នន័យដែលបានប្រមូលទុក" } ], "message.confirm-delete": [ @@ -1454,7 +1450,7 @@ "message.confirm-leave": [ { "type": 0, - "value": "Are you sure you want to leave " + "value": "តើអ្នកប្រាកដថាចង់ចាកចេញ " }, { "type": 1, @@ -1462,13 +1458,13 @@ }, { "type": 0, - "value": "?" + "value": " ទេ?" } ], "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "តើអ្នកប្រាកដថាចង់លុប " }, { "type": 1, @@ -1476,7 +1472,7 @@ }, { "type": 0, - "value": "?" + "value": " ទេ?" } ], "message.confirm-reset": [ @@ -1496,13 +1492,13 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "ពេលលុបក្រុម គេហទំព័ររបស់ក្រុមក៏នឹងត្រូវលប់ចោលទាំងអស់ផងដែរ។" } ], "message.delete-website-warning": [ { "type": 0, - "value": "ទិន្នន័យដែលពាក់ព័ន្ធទាំងអស់នឹងត្រូវបានលុបផងដែរ។" + "value": "ទិន្នន័យរបស់គេហទំព័រទាំងអស់នឹងត្រូវលុបចោល។" } ], "message.error": [ @@ -1534,19 +1530,19 @@ "message.incorrect-username-password": [ { "type": 0, - "value": "ឈ្មោះអ្នកប្រើ/ពាក្យសម្ងាត់មិនត្រឹមត្រូវ។" + "value": "ឈ្មោះអ្នកប្រើឬពាក្យសម្ងាត់មិនត្រឹមត្រូវ។" } ], "message.invalid-domain": [ { "type": 0, - "value": "ឈ្មោះគេហទំព័រមិន​ត្រឹមត្រូវ" + "value": "Domain មិន​ត្រឹមត្រូវ" } ], "message.min-password-length": [ { "type": 0, - "value": "Minimum length of " + "value": "តិចបំផុតដែលមានអក្សរ " }, { "type": 1, @@ -1554,13 +1550,13 @@ }, { "type": 0, - "value": " characters" + "value": " តួអក្សរ" } ], "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Version ថ្មីនៃ Umami " }, { "type": 1, @@ -1568,49 +1564,49 @@ }, { "type": 0, - "value": " is available!" + "value": " អាចប្រើប្រាស់បានហើយ!" } ], "message.no-data-available": [ { "type": 0, - "value": "មិនមានទិន្នន័យទេ។" + "value": "មិនមានទិន្នន័យ។" } ], "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "មិនមានទិន្នន័យព្រឹត្តិការណ៍ទេ។" } ], "message.no-match-password": [ { "type": 0, - "value": "ពាក្យសម្ងាត់មិនត្រូវគ្នាទេ" + "value": "ពាក្យសម្ងាត់មិនត្រូវគ្នាទេ។" } ], "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "មិនមានលទ្ធផល។" } ], "message.no-team-websites": [ { "type": 0, - "value": "This team does not have any websites." + "value": "ក្រុមនេះមិនមានគេហទំព័រទេ។" } ], "message.no-teams": [ { "type": 0, - "value": "You have not created any teams." + "value": "អ្នកមិនទាន់បានបង្កើតក្រុមណាមួយទេ។" } ], "message.no-users": [ { "type": 0, - "value": "There are no users." + "value": "មិនមានអ្នកប្រើប្រាស់ទេ។" } ], "message.no-websites-configured": [ @@ -1628,7 +1624,7 @@ "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "ដើម្បីកែគេហទំព័រនេះឡើងវិញ សូមសរសេរ " }, { "type": 1, @@ -1636,7 +1632,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " នៅក្នុងប្រអប់ខាងក្រោមដើម្បីបញ្ជាក់។" } ], "message.reset-website-warning": [ @@ -1654,7 +1650,7 @@ "message.share-url": [ { "type": 0, - "value": "នេះគឺជា URL ដែលបានចែករំលែកជាសាធារណៈសម្រាប់ " + "value": "នេះគឺជា URL ដែលអាចចែករំលែកជាសាធារណៈបានសម្រាប់ " }, { "type": 1, @@ -1668,43 +1664,57 @@ "message.team-already-member": [ { "type": 0, - "value": "You are already a member of the team." + "value": "អ្នកគឺជាសមាជិកនៃក្រុមរួចហើយ។" } ], "message.team-not-found": [ { "type": 0, - "value": "Team not found." + "value": "រកក្រុមមិនឃើញទេ។" } ], "message.team-websites-info": [ { "type": 0, - "value": "Websites can be viewed by anyone on the team." + "value": "គេហទំព័រនេះអាចមើលបានតែសមាជិកក្រុមតែប៉ុណ្ណោះ" } ], "message.tracking-code": [ { "type": 0, - "value": "លេខកូដតាមដាន" + "value": "ដើម្បីតាមដានស្ថិតិសម្រាប់គេហទំព័រអ្នក សូមដាក់កូដខាងក្រោមទៅក្នុងផ្នែក " + }, + { + "children": [ + { + "type": 0, + "value": "..." + } + ], + "type": 8, + "value": "head" + }, + { + "type": 0, + "value": " នៃ HTML របស់អ្នក។" } ], "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "ផ្ទេរគេហទំព័រនេះទៅគណនីរបស់អ្នក។?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "ជ្រើសក្រុមដែរត្រូវផ្ទេរគេហទំព័រនេះទៅ។" } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "ផ្ទេរកម្មសិទ្ធិគេហទំព័រទៅគណនីរបស់អ្នក ឬក្រុមផ្សេងទៀត។" } ], "message.triggered-event": [ @@ -1716,13 +1726,13 @@ "message.user-deleted": [ { "type": 0, - "value": "User deleted." + "value": "អ្នកប្រើប្រាស់ត្រូវបានលុបចោល។" } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "ទំព័រដែលបានមើល" } ], "message.visitor-log": [ @@ -1762,7 +1772,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "ចំនួនអ្នកទស្សនាធ្លាក់ចុះ" } ] } diff --git a/src/app/(main)/reports/ReportsTable.tsx b/src/app/(main)/reports/ReportsTable.tsx index 7cb9cca7..c35468aa 100644 --- a/src/app/(main)/reports/ReportsTable.tsx +++ b/src/app/(main)/reports/ReportsTable.tsx @@ -1,4 +1,4 @@ -import { GridColumn, GridTable, Icon, Icons, Text, useBreakpoint } from 'react-basics'; +import { GridColumn, GridTable, Icon, Icons, Text } from 'react-basics'; import LinkButton from 'components/common/LinkButton'; import { useMessages, useLogin, useTeamUrl } from 'components/hooks'; import { REPORT_TYPES } from 'lib/constants'; @@ -7,11 +7,10 @@ import ReportDeleteButton from './ReportDeleteButton'; export function ReportsTable({ data = [], showDomain }: { data: any[]; showDomain?: boolean }) { const { formatMessage, labels } = useMessages(); const { user } = useLogin(); - const breakpoint = useBreakpoint(); const { renderTeamUrl } = useTeamUrl(); return ( - + diff --git a/src/app/(main)/reports/create/ReportTemplates.tsx b/src/app/(main)/reports/create/ReportTemplates.tsx index 7a754d5f..dbff9f10 100644 --- a/src/app/(main)/reports/create/ReportTemplates.tsx +++ b/src/app/(main)/reports/create/ReportTemplates.tsx @@ -4,6 +4,7 @@ import Magnet from 'assets/magnet.svg'; import Path from 'assets/path.svg'; import Tag from 'assets/tag.svg'; import Target from 'assets/target.svg'; +import Money from 'assets/money.svg'; import { useMessages, useTeamUrl } from 'components/hooks'; import PageHeader from 'components/layout/PageHeader'; import Link from 'next/link'; @@ -51,12 +52,12 @@ export function ReportTemplates({ showHeader = true }: { showHeader?: boolean }) url: renderTeamUrl('/reports/journey'), icon: , }, - // { - // title: formatMessage(labels.revenue), - // description: formatMessage(labels.revenueDescription), - // url: renderTeamUrl('/reports/revenue'), - // icon: , - // }, + { + title: formatMessage(labels.revenue), + description: formatMessage(labels.revenueDescription), + url: renderTeamUrl('/reports/revenue'), + icon: , + }, ]; return ( diff --git a/src/app/(main)/reports/revenue/RevenueReport.tsx b/src/app/(main)/reports/revenue/RevenueReport.tsx index d82f424a..d67f57c0 100644 --- a/src/app/(main)/reports/revenue/RevenueReport.tsx +++ b/src/app/(main)/reports/revenue/RevenueReport.tsx @@ -4,7 +4,7 @@ import Report from '../[reportId]/Report'; import ReportHeader from '../[reportId]/ReportHeader'; import ReportMenu from '../[reportId]/ReportMenu'; import ReportBody from '../[reportId]/ReportBody'; -import Target from 'assets/target.svg'; +import Money from 'assets/money.svg'; import { REPORT_TYPES } from 'lib/constants'; const defaultParameters = { @@ -15,12 +15,12 @@ const defaultParameters = { export default function RevenueReport({ reportId }: { reportId?: string }) { return ( - } /> + } /> - + ); diff --git a/src/app/(main)/settings/teams/TeamsTable.tsx b/src/app/(main)/settings/teams/TeamsTable.tsx index 787d51c7..a7a03958 100644 --- a/src/app/(main)/settings/teams/TeamsTable.tsx +++ b/src/app/(main)/settings/teams/TeamsTable.tsx @@ -1,4 +1,4 @@ -import { GridColumn, GridTable, Icon, Text, useBreakpoint } from 'react-basics'; +import { GridColumn, GridTable, Icon, Text } from 'react-basics'; import { useMessages } from 'components/hooks'; import Icons from 'components/icons'; import { ROLES } from 'lib/constants'; @@ -13,10 +13,9 @@ export function TeamsTable({ showActions?: boolean; }) { const { formatMessage, labels } = useMessages(); - const breakpoint = useBreakpoint(); return ( - + {row => row.teamUser.find(({ role }) => role === ROLES.teamOwner)?.user?.username} diff --git a/src/app/(main)/settings/users/UsersTable.tsx b/src/app/(main)/settings/users/UsersTable.tsx index 76a04809..e074be24 100644 --- a/src/app/(main)/settings/users/UsersTable.tsx +++ b/src/app/(main)/settings/users/UsersTable.tsx @@ -1,4 +1,4 @@ -import { Text, Icon, Icons, GridTable, GridColumn, useBreakpoint } from 'react-basics'; +import { Text, Icon, Icons, GridTable, GridColumn } from 'react-basics'; import { formatDistance } from 'date-fns'; import { ROLES } from 'lib/constants'; import { useMessages, useLocale } from 'components/hooks'; @@ -14,10 +14,9 @@ export function UsersTable({ }) { const { formatMessage, labels } = useMessages(); const { dateLocale } = useLocale(); - const breakpoint = useBreakpoint(); return ( - + {row => diff --git a/src/app/(main)/settings/websites/WebsitesTable.tsx b/src/app/(main)/settings/websites/WebsitesTable.tsx index dced90be..5e9aef2c 100644 --- a/src/app/(main)/settings/websites/WebsitesTable.tsx +++ b/src/app/(main)/settings/websites/WebsitesTable.tsx @@ -1,5 +1,5 @@ import { ReactNode } from 'react'; -import { Text, Icon, Icons, GridTable, GridColumn, useBreakpoint } from 'react-basics'; +import { Text, Icon, Icons, GridTable, GridColumn } from 'react-basics'; import { useMessages, useTeamUrl } from 'components/hooks'; import LinkButton from 'components/common/LinkButton'; @@ -20,7 +20,6 @@ export function WebsitesTable({ children, }: WebsitesTableProps) { const { formatMessage, labels } = useMessages(); - const breakpoint = useBreakpoint(); const { renderTeamUrl } = useTeamUrl(); if (!data?.length) { @@ -28,7 +27,7 @@ export function WebsitesTable({ } return ( - + {showActions && ( diff --git a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx index 7d1efbf2..67cb23c7 100644 --- a/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx @@ -1,4 +1,4 @@ -import { GridColumn, GridTable, useBreakpoint } from 'react-basics'; +import { GridColumn, GridTable } from 'react-basics'; import { useMessages, useLogin } from 'components/hooks'; import { ROLES } from 'lib/constants'; import TeamMemberRemoveButton from './TeamMemberRemoveButton'; @@ -15,7 +15,6 @@ export function TeamMembersTable({ }) { const { formatMessage, labels } = useMessages(); const { user } = useLogin(); - const breakpoint = useBreakpoint(); const roles = { [ROLES.teamOwner]: formatMessage(labels.teamOwner), @@ -25,7 +24,7 @@ export function TeamMembersTable({ }; return ( - + {row => row?.user?.username} diff --git a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx index c733e3e3..dc6760a6 100644 --- a/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx +++ b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx @@ -1,4 +1,4 @@ -import { GridColumn, GridTable, Icon, Text, useBreakpoint } from 'react-basics'; +import { GridColumn, GridTable, Icon, Text } from 'react-basics'; import { useLogin, useMessages } from 'components/hooks'; import Icons from 'components/icons'; import LinkButton from 'components/common/LinkButton'; @@ -14,10 +14,9 @@ export function TeamWebsitesTable({ }) { const { user } = useLogin(); const { formatMessage, labels } = useMessages(); - const breakpoint = useBreakpoint(); return ( - + diff --git a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx index bdf0ba7d..ef0d2b90 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx @@ -52,7 +52,7 @@ export function WebsiteHeader({ }, { label: formatMessage(labels.events), - icon: , + icon: , path: '/events', }, ]; diff --git a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx index b3414097..261f8e47 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx @@ -1,12 +1,13 @@ -import { GridTable, GridColumn } from 'react-basics'; +import { GridTable, GridColumn, Icon } from 'react-basics'; import { useLocale, useMessages, useTeamUrl } from 'components/hooks'; import Empty from 'components/common/Empty'; -import { formatDistance } from 'date-fns'; import Avatar from 'components/common/Avatar'; import Link from 'next/link'; +import Icons from 'components/icons'; +import { formatDate } from 'lib/date'; export function EventsTable({ data = [] }) { - const { dateLocale } = useLocale(); + const { locale } = useLocale(); const { formatMessage, labels } = useMessages(); const { renderTeamUrl } = useTeamUrl(); @@ -27,20 +28,15 @@ export function EventsTable({ data = [] }) { {row => { return ( <> + {row.eventName ? : } {formatMessage(row.eventName ? labels.triggeredEvent : labels.viewedPage)} - {row.eventName} + {row.eventName || row.urlPath} ); }} - - - {row => - formatDistance(new Date(row.createdAt), new Date(), { - addSuffix: true, - locale: dateLocale, - }) - } + + {row => formatDate(new Date(row.createdAt), 'PPPpp', locale)} ); diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionMetricsBar.tsx deleted file mode 100644 index c4f21875..00000000 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionMetricsBar.tsx +++ /dev/null @@ -1,5 +0,0 @@ -export function SessionMetricsBar({ websiteId }: { websiteId: string }) { - return

{websiteId}

; -} - -export default SessionMetricsBar; diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx new file mode 100644 index 00000000..6d3c3579 --- /dev/null +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx @@ -0,0 +1,42 @@ +import WebsiteDateFilter from 'components/input/WebsiteDateFilter'; +import { Flexbox, Loading } from 'react-basics'; +import MetricCard from 'components/metrics/MetricCard'; +import { useMessages } from 'components/hooks'; +import useWebsiteStats from 'components/hooks/queries/useWebsiteStats'; +import { formatLongNumber } from 'lib/format'; + +export function SessionsMetricsBar({ websiteId }: { websiteId: string }) { + const { formatMessage, labels } = useMessages(); + const { data, isLoading } = useWebsiteStats(websiteId); + + return ( + + + {isLoading && } + {!isLoading && data && ( + <> + + + + + + )} + + + + ); +} + +export default SessionsMetricsBar; diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx index e95145a7..afb18735 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx @@ -1,11 +1,13 @@ 'use client'; import WebsiteHeader from '../WebsiteHeader'; import SessionsDataTable from './SessionsDataTable'; +import SessionsMetricsBar from './SessionsMetricsBar'; export function SessionsPage({ websiteId }) { return ( <> + ); diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx index 9dd6a56d..6e2e53ed 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx @@ -1,29 +1,33 @@ import Link from 'next/link'; -import { GridColumn, GridTable, useBreakpoint } from 'react-basics'; +import { GridColumn, GridTable } from 'react-basics'; import { useFormat, useLocale, useMessages } from 'components/hooks'; import Avatar from 'components/common/Avatar'; import styles from './SessionsTable.module.css'; import { formatDate } from 'lib/date'; +import TypeIcon from 'components/common/TypeIcon'; export function SessionsTable({ data = [] }: { data: any[]; showDomain?: boolean }) { const { locale } = useLocale(); const { formatMessage, labels } = useMessages(); - const breakpoint = useBreakpoint(); const { formatValue } = useFormat(); return ( - - + + {row => ( - {row.id} )} + - {row => formatValue(row.country, 'country')} + {row => ( + + {formatValue(row.country, 'country')} + + )} diff --git a/src/assets/location.svg b/src/assets/location.svg index b0f9af47..f7f085e4 100644 --- a/src/assets/location.svg +++ b/src/assets/location.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/logo-white.svg b/src/assets/logo-white.svg index 12a76d34..20c41fb2 100644 --- a/src/assets/logo-white.svg +++ b/src/assets/logo-white.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/src/assets/money.svg b/src/assets/money.svg new file mode 100644 index 00000000..954f954d --- /dev/null +++ b/src/assets/money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/common/DataTable.tsx b/src/components/common/DataTable.tsx index 041c2ba5..0f011c33 100644 --- a/src/components/common/DataTable.tsx +++ b/src/components/common/DataTable.tsx @@ -4,13 +4,13 @@ import { Banner, Loading, SearchField } from 'react-basics'; import { useMessages, useNavigation } from 'components/hooks'; import Empty from 'components/common/Empty'; import Pager from 'components/common/Pager'; -import { FilterQueryResult } from 'lib/types'; +import { PagedQueryResult } from 'lib/types'; import styles from './DataTable.module.css'; const DEFAULT_SEARCH_DELAY = 600; export interface DataTableProps { - queryResult: FilterQueryResult; + queryResult: PagedQueryResult; searchDelay?: number; allowSearch?: boolean; allowPaging?: boolean; diff --git a/src/components/common/TypeIcon.tsx b/src/components/common/TypeIcon.tsx index 8952bb26..475fe643 100644 --- a/src/components/common/TypeIcon.tsx +++ b/src/components/common/TypeIcon.tsx @@ -1,17 +1,24 @@ +import { ReactNode } from 'react'; + export function TypeIcon({ type, value, + children, }: { type: 'browser' | 'country' | 'device' | 'os'; value: string; + children?: ReactNode; }) { return ( - {value} + <> + {value} + {children} + ); } diff --git a/src/components/hooks/index.ts b/src/components/hooks/index.ts index e06a0414..d92329c7 100644 --- a/src/components/hooks/index.ts +++ b/src/components/hooks/index.ts @@ -1,6 +1,6 @@ export * from './queries/useApi'; export * from './queries/useConfig'; -export * from './queries/useFilterQuery'; +export * from './queries/usePagedQuery'; export * from './queries/useLogin'; export * from './queries/useRealtime'; export * from './queries/useReport'; @@ -19,6 +19,7 @@ export * from './queries/useUsers'; export * from './queries/useWebsite'; export * from './queries/useWebsites'; export * from './queries/useWebsiteEvents'; +export * from './queries/useWebsiteEventsSeries'; export * from './queries/useWebsiteMetrics'; export * from './queries/useWebsiteValues'; export * from './useCountryNames'; diff --git a/src/components/hooks/queries/useFilterQuery.ts b/src/components/hooks/queries/usePagedQuery.ts similarity index 79% rename from src/components/hooks/queries/useFilterQuery.ts rename to src/components/hooks/queries/usePagedQuery.ts index 82fc4d61..253f8092 100644 --- a/src/components/hooks/queries/useFilterQuery.ts +++ b/src/components/hooks/queries/usePagedQuery.ts @@ -1,14 +1,14 @@ import { UseQueryOptions } from '@tanstack/react-query'; import { useState } from 'react'; import { useApi } from './useApi'; -import { PageResult, PageParams, FilterQueryResult } from 'lib/types'; +import { PageResult, PageParams, PagedQueryResult } from 'lib/types'; import { useNavigation } from '../useNavigation'; -export function useFilterQuery({ +export function usePagedQuery({ queryKey, queryFn, ...options -}: Omit & { queryFn: (params?: object) => any }): FilterQueryResult { +}: Omit & { queryFn: (params?: object) => any }): PagedQueryResult { const { query: queryParams } = useNavigation(); const [params, setParams] = useState({ query: '', @@ -30,4 +30,4 @@ export function useFilterQuery({ }; } -export default useFilterQuery; +export default usePagedQuery; diff --git a/src/components/hooks/queries/useReports.ts b/src/components/hooks/queries/useReports.ts index 314880f8..88e4f02e 100644 --- a/src/components/hooks/queries/useReports.ts +++ b/src/components/hooks/queries/useReports.ts @@ -1,11 +1,11 @@ import useApi from './useApi'; -import useFilterQuery from './useFilterQuery'; +import usePagedQuery from './usePagedQuery'; import useModified from '../useModified'; export function useReports({ websiteId, teamId }: { websiteId?: string; teamId?: string }) { const { modified } = useModified(`reports`); const { get, del, useMutation } = useApi(); - const queryResult = useFilterQuery({ + const queryResult = usePagedQuery({ queryKey: ['reports', { websiteId, teamId, modified }], queryFn: (params: any) => { return get('/reports', { websiteId, teamId, ...params }); diff --git a/src/components/hooks/queries/useTeamMembers.ts b/src/components/hooks/queries/useTeamMembers.ts index 85860870..a3e8bcd2 100644 --- a/src/components/hooks/queries/useTeamMembers.ts +++ b/src/components/hooks/queries/useTeamMembers.ts @@ -1,12 +1,12 @@ import useApi from './useApi'; -import useFilterQuery from './useFilterQuery'; +import usePagedQuery from './usePagedQuery'; import useModified from '../useModified'; export function useTeamMembers(teamId: string) { const { get } = useApi(); const { modified } = useModified(`teams:members`); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['teams:members', { teamId, modified }], queryFn: (params: any) => { return get(`/teams/${teamId}/users`, params); diff --git a/src/components/hooks/queries/useTeamWebsites.ts b/src/components/hooks/queries/useTeamWebsites.ts index 7679d767..fac82d13 100644 --- a/src/components/hooks/queries/useTeamWebsites.ts +++ b/src/components/hooks/queries/useTeamWebsites.ts @@ -1,12 +1,12 @@ import useApi from './useApi'; -import useFilterQuery from './useFilterQuery'; +import usePagedQuery from './usePagedQuery'; import useModified from '../useModified'; export function useTeamWebsites(teamId: string) { const { get } = useApi(); const { modified } = useModified(`websites`); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['teams:websites', { teamId, modified }], queryFn: (params: any) => { return get(`/teams/${teamId}/websites`, params); diff --git a/src/components/hooks/queries/useTeams.ts b/src/components/hooks/queries/useTeams.ts index be710807..e1f7790a 100644 --- a/src/components/hooks/queries/useTeams.ts +++ b/src/components/hooks/queries/useTeams.ts @@ -1,12 +1,12 @@ import useApi from './useApi'; -import useFilterQuery from './useFilterQuery'; +import usePagedQuery from './usePagedQuery'; import useModified from '../useModified'; export function useTeams(userId: string) { const { get } = useApi(); const { modified } = useModified(`teams`); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['teams', { userId, modified }], queryFn: (params: any) => { return get(`/users/${userId}/teams`, params); diff --git a/src/components/hooks/queries/useUsers.ts b/src/components/hooks/queries/useUsers.ts index 169cf424..519fb899 100644 --- a/src/components/hooks/queries/useUsers.ts +++ b/src/components/hooks/queries/useUsers.ts @@ -1,12 +1,12 @@ import useApi from './useApi'; -import useFilterQuery from './useFilterQuery'; +import usePagedQuery from './usePagedQuery'; import useModified from '../useModified'; export function useUsers() { const { get } = useApi(); const { modified } = useModified(`users`); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['users', { modified }], queryFn: (params: any) => { return get('/admin/users', { diff --git a/src/components/hooks/queries/useWebsiteEvents.ts b/src/components/hooks/queries/useWebsiteEvents.ts index f0132470..12febcc8 100644 --- a/src/components/hooks/queries/useWebsiteEvents.ts +++ b/src/components/hooks/queries/useWebsiteEvents.ts @@ -1,7 +1,7 @@ import useApi from './useApi'; import { UseQueryOptions } from '@tanstack/react-query'; import { useFilterParams } from '../useFilterParams'; -import { useFilterQuery } from 'components/hooks'; +import { usePagedQuery } from 'components/hooks'; export function useWebsiteEvents( websiteId: string, @@ -10,7 +10,7 @@ export function useWebsiteEvents( const { get } = useApi(); const params = useFilterParams(websiteId); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['websites:events', { websiteId, ...params }], queryFn: pageParams => get(`/websites/${websiteId}/events`, { ...params, ...pageParams, pageSize: 20 }), diff --git a/src/components/hooks/queries/useWebsiteEventsSeries.ts b/src/components/hooks/queries/useWebsiteEventsSeries.ts new file mode 100644 index 00000000..88b49375 --- /dev/null +++ b/src/components/hooks/queries/useWebsiteEventsSeries.ts @@ -0,0 +1,20 @@ +import useApi from './useApi'; +import { UseQueryOptions } from '@tanstack/react-query'; +import { useFilterParams } from '../useFilterParams'; + +export function useWebsiteEventsSeries( + websiteId: string, + options?: Omit, +) { + const { get, useQuery } = useApi(); + const params = useFilterParams(websiteId); + + return useQuery({ + queryKey: ['websites:events:series', { websiteId, ...params }], + queryFn: () => get(`/websites/${websiteId}/events/series`, { ...params }), + enabled: !!websiteId, + ...options, + }); +} + +export default useWebsiteEventsSeries; diff --git a/src/components/hooks/queries/useWebsiteSessions.ts b/src/components/hooks/queries/useWebsiteSessions.ts index 9430786b..e8a1ce2f 100644 --- a/src/components/hooks/queries/useWebsiteSessions.ts +++ b/src/components/hooks/queries/useWebsiteSessions.ts @@ -1,17 +1,20 @@ import { useApi } from './useApi'; -import { useFilterQuery } from './useFilterQuery'; +import { usePagedQuery } from './usePagedQuery'; import useModified from '../useModified'; +import { useFilterParams } from 'components/hooks/useFilterParams'; export function useWebsiteSessions(websiteId: string, params?: { [key: string]: string | number }) { const { get } = useApi(); const { modified } = useModified(`sessions`); + const filters = useFilterParams(websiteId); - return useFilterQuery({ - queryKey: ['sessions', { websiteId, modified, ...params }], + return usePagedQuery({ + queryKey: ['sessions', { websiteId, modified, ...params, ...filters }], queryFn: (data: any) => { return get(`/websites/${websiteId}/sessions`, { ...data, ...params, + ...filters, }); }, }); diff --git a/src/components/hooks/queries/useWebsites.ts b/src/components/hooks/queries/useWebsites.ts index 94198975..d6fe00df 100644 --- a/src/components/hooks/queries/useWebsites.ts +++ b/src/components/hooks/queries/useWebsites.ts @@ -1,5 +1,5 @@ import { useApi } from './useApi'; -import { useFilterQuery } from './useFilterQuery'; +import { usePagedQuery } from './usePagedQuery'; import { useLogin } from './useLogin'; import useModified from '../useModified'; @@ -11,7 +11,7 @@ export function useWebsites( const { user } = useLogin(); const { modified } = useModified(`websites`); - return useFilterQuery({ + return usePagedQuery({ queryKey: ['websites', { userId, teamId, modified, ...params }], queryFn: (data: any) => { return get(teamId ? `/teams/${teamId}/websites` : `/users/${userId || user.id}/websites`, { diff --git a/src/components/messages.ts b/src/components/messages.ts index 703ccba3..75fa2d3e 100644 --- a/src/components/messages.ts +++ b/src/components/messages.ts @@ -88,8 +88,8 @@ export const labels = defineMessages({ leaveTeam: { id: 'label.leave-team', defaultMessage: 'Leave team' }, refresh: { id: 'label.refresh', defaultMessage: 'Refresh' }, pages: { id: 'label.pages', defaultMessage: 'Pages' }, - entry: { id: 'label.entry', defaultMessage: 'Entry URL' }, - exit: { id: 'label.exit', defaultMessage: 'Exit URL' }, + entry: { id: 'label.entry', defaultMessage: 'Entry path' }, + exit: { id: 'label.exit', defaultMessage: 'Exit path' }, referrers: { id: 'label.referrers', defaultMessage: 'Referrers' }, hosts: { id: 'label.hosts', defaultMessage: 'Hosts' }, screens: { id: 'label.screens', defaultMessage: 'Screens' }, @@ -165,6 +165,8 @@ export const labels = defineMessages({ }, url: { id: 'label.url', defaultMessage: 'URL' }, urls: { id: 'label.urls', defaultMessage: 'URLs' }, + path: { id: 'label.path', defaultMessage: 'Path' }, + paths: { id: 'label.paths', defaultMessage: 'Paths' }, add: { id: 'label.add', defaultMessage: 'Add' }, update: { id: 'label.update', defaultMessage: 'Update' }, window: { id: 'label.window', defaultMessage: 'Window' }, @@ -276,7 +278,6 @@ export const labels = defineMessages({ lastSeen: { id: 'label.last-seen', defaultMessage: 'Last seen' }, firstSeen: { id: 'label.first-seen', defaultMessage: 'First seen' }, properties: { id: 'label.properties', defaultMessage: 'Properties' }, - path: { id: 'label.path', defaultMessage: 'Path' }, }); export const messages = defineMessages({ diff --git a/src/components/metrics/EventsChart.tsx b/src/components/metrics/EventsChart.tsx index 36ec8672..0bb65eb2 100644 --- a/src/components/metrics/EventsChart.tsx +++ b/src/components/metrics/EventsChart.tsx @@ -2,7 +2,7 @@ import { useMemo } from 'react'; import { colord } from 'colord'; import BarChart from 'components/charts/BarChart'; import { getDateArray } from 'lib/date'; -import { useLocale, useDateRange, useWebsiteEvents } from 'components/hooks'; +import { useLocale, useDateRange, useWebsiteEventsSeries } from 'components/hooks'; import { CHART_COLORS } from 'lib/constants'; import { renderDateLabels } from 'lib/charts'; @@ -16,7 +16,7 @@ export function EventsChart({ websiteId, className }: EventsChartProps) { dateRange: { startDate, endDate, unit }, } = useDateRange(websiteId); const { locale } = useLocale(); - const { data, isLoading } = useWebsiteEvents(websiteId); + const { data, isLoading } = useWebsiteEventsSeries(websiteId); const chartData = useMemo(() => { if (!data) return []; diff --git a/src/components/metrics/MetricCard.tsx b/src/components/metrics/MetricCard.tsx index a5fd758e..64f2a1b6 100644 --- a/src/components/metrics/MetricCard.tsx +++ b/src/components/metrics/MetricCard.tsx @@ -10,7 +10,7 @@ export interface MetricCardProps { change?: number; label?: string; reverseColors?: boolean; - formatValue?: typeof formatNumber; + formatValue?: (n: any) => string; showLabel?: boolean; showChange?: boolean; showPrevious?: boolean; diff --git a/src/components/metrics/PagesTable.tsx b/src/components/metrics/PagesTable.tsx index 767c4764..b2d8ca9c 100644 --- a/src/components/metrics/PagesTable.tsx +++ b/src/components/metrics/PagesTable.tsx @@ -25,7 +25,7 @@ export function PagesTable({ allowFilter, ...props }: PagesTableProps) { const buttons = [ { - label: 'URL', + label: formatMessage(labels.path), key: 'url', }, { diff --git a/src/lib/types.ts b/src/lib/types.ts index e6596552..3bce5271 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -41,7 +41,7 @@ export interface PageResult { sortDescending?: boolean; } -export interface FilterQueryResult { +export interface PagedQueryResult { result: PageResult; query: any; params: PageParams; diff --git a/src/pages/api/websites/[websiteId]/sessions/index.ts b/src/pages/api/websites/[websiteId]/sessions/index.ts index 4f242882..69f777f5 100644 --- a/src/pages/api/websites/[websiteId]/sessions/index.ts +++ b/src/pages/api/websites/[websiteId]/sessions/index.ts @@ -14,6 +14,8 @@ export interface ReportsRequestQuery extends PageParams { const schema = { GET: yup.object().shape({ websiteId: yup.string().uuid().required(), + startAt: yup.number().integer().required(), + endAt: yup.number().integer().min(yup.ref('startAt')).required(), ...pageInfo, }), }; @@ -26,14 +28,17 @@ export default async ( await useAuth(req, res); await useValidate(schema, req, res); - const { websiteId } = req.query; + const { websiteId, startAt, endAt } = req.query; + + const startDate = new Date(+startAt); + const endDate = new Date(+endAt); if (req.method === 'GET') { if (!(await canViewWebsite(req.auth, websiteId))) { return unauthorized(res); } - const data = await getWebsiteSessions(websiteId, {}, req.query); + const data = await getWebsiteSessions(websiteId, { startDate, endDate }, req.query); return ok(res, data); } diff --git a/src/queries/analytics/getWebsiteStats.ts b/src/queries/analytics/getWebsiteStats.ts index c5141d3b..7f7f4f19 100644 --- a/src/queries/analytics/getWebsiteStats.ts +++ b/src/queries/analytics/getWebsiteStats.ts @@ -34,12 +34,14 @@ async function relationalQuery( sum(t.c) as "pageviews", count(distinct t.session_id) as "visitors", count(distinct t.visit_id) as "visits", + count(distinct t.country) as "countries", sum(case when t.c = 1 then 1 else 0 end) as "bounces", - sum(${getTimestampDiffSQL('t.min_time', 't.max_time')}) as "totaltime" + sum(${getTimestampDiffSQL('t.min_time', 't.max_time')}) as "totaltime", from ( select website_event.session_id, website_event.visit_id, + session.country, count(*) as "c", min(website_event.created_at) as "min_time", max(website_event.created_at) as "max_time" @@ -49,7 +51,7 @@ async function relationalQuery( and website_event.created_at between {{startDate}} and {{endDate}} and event_type = {{eventType}} ${filterQuery} - group by 1, 2 + group by 1, 2, 3 ) as t `, params, @@ -76,12 +78,14 @@ async function clickhouseQuery( sum(t.c) as "pageviews", uniq(t.session_id) as "visitors", uniq(t.visit_id) as "visits", + uniq(t.country) as "countries", sum(if(t.c = 1, 1, 0)) as "bounces", sum(max_time-min_time) as "totaltime" from ( select session_id, visit_id, + country, count(*) c, min(created_at) min_time, max(created_at) max_time @@ -90,7 +94,7 @@ async function clickhouseQuery( and created_at between {startDate:DateTime64} and {endDate:DateTime64} and event_type = {eventType:UInt32} ${filterQuery} - group by session_id, visit_id + group by session_id, visit_id, country ) as t; `; } else { @@ -99,20 +103,23 @@ async function clickhouseQuery( sum(t.c) as "pageviews", uniq(session_id) as "visitors", uniq(visit_id) as "visits", + uniq(country) as "countries", sumIf(1, t.c = 1) as "bounces", sum(max_time-min_time) as "totaltime" - from (select - session_id, - visit_id, - sum(views) c, - min(min_time) min_time, - max(max_time) max_time - from umami.website_event_stats_hourly "website_event" - where website_id = {websiteId:UUID} - and created_at between {startDate:DateTime64} and {endDate:DateTime64} - and event_type = {eventType:UInt32} - ${filterQuery} - group by session_id, visit_id + from ( + select + session_id, + visit_id, + country, + sum(views) c, + min(min_time) min_time, + max(max_time) max_time + from umami.website_event_stats_hourly "website_event" + where website_id = {websiteId:UUID} + and created_at between {startDate:DateTime64} and {endDate:DateTime64} + and event_type = {eventType:UInt32} + ${filterQuery} + group by session_id, visit_id, country ) as t; `; } @@ -125,6 +132,7 @@ async function clickhouseQuery( visits: Number(a.visits), bounces: Number(a.bounces), totaltime: Number(a.totaltime), + countries: Number(a.countries), }; }); }); diff --git a/src/queries/analytics/sessions/getWebsiteSessions.ts b/src/queries/analytics/sessions/getWebsiteSessions.ts index c5fe6cec..94d2827e 100644 --- a/src/queries/analytics/sessions/getWebsiteSessions.ts +++ b/src/queries/analytics/sessions/getWebsiteSessions.ts @@ -43,7 +43,8 @@ async function clickhouseQuery(websiteId: string, filters: QueryFilters, pagePar city, min(created_at) as firstAt, max(created_at) as lastAt, - uniq(visit_id) as visits + uniq(visit_id) as visits, + count(*) as views from website_event where website_id = {websiteId:UUID} ${dateQuery} diff --git a/yarn.lock b/yarn.lock index eee877d3..fc4169df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1199,17 +1199,17 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@clickhouse/client-common@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@clickhouse/client-common/-/client-common-1.3.0.tgz#9fe4b88eedb233770832cb1c0794f4ad9fbec75c" - integrity sha512-fApbhu52WSQlBU0gMZQxd2akuWbI1c9BcWjIbDDgtNZX2OggrIB7a4oI845ZGXpeZCZDI9ZqtkXzbYQYS0Yqew== +"@clickhouse/client-common@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@clickhouse/client-common/-/client-common-1.4.0.tgz#6936f667ba901724bf9174cc2b783507e921868f" + integrity sha512-kglG8YyWnR1K24RckUf5ZdNTN0U0s+a1j/bpCO4ZjzjO87ICgWlXFVD22pZqSACW7/2IIi1IkzbwtxKI2s/MOw== "@clickhouse/client@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@clickhouse/client/-/client-1.3.0.tgz#298529b970a9ba2ae5e017258aaf6cf522cb2b51" - integrity sha512-baBiuwVpXg/DHCe9Y1pNf+tcE2ZalCAQqZsR9OhP7+01C3UqTjHeY4eYixNlpfZCb8c8R4GygdWJFbXF0aGklw== + version "1.4.0" + resolved "https://registry.yarnpkg.com/@clickhouse/client/-/client-1.4.0.tgz#84e17f8c0f2ba109d8e76c3d4f5830aeff5e9459" + integrity sha512-O4mbFPM/wQtFck01ghYI2mnNHv9jSFEiQBsTCH4t6MKeGHNAPkJGaFGv+KycLTv6zjnQNjiUGdXDMVRema5SyA== dependencies: - "@clickhouse/client-common" "1.3.0" + "@clickhouse/client-common" "1.4.0" "@colors/colors@1.5.0": version "1.5.0" @@ -1349,7 +1349,7 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz#ea61ba7bb24be3502c6aaa3190ed231f4633a81e" integrity sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg== -"@cypress/request@^3.0.0": +"@cypress/request@^3.0.0", "@cypress/request@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== @@ -2188,19 +2188,19 @@ integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw== "@netlify/plugin-nextjs@^5.1.0": - version "5.3.3" - resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.3.3.tgz#414cb0f4c21e6b80d6127b824efb00ae2f732a89" - integrity sha512-QhvZLOHhPuTnh6TZ5G0/jtjAJ1Y52A67b39eygKv6znQUPti8p+8y2WulcntpCRzVp2stzEULMNPlnptna1ikg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-5.6.0.tgz#970f96b11bee4fe115fad8e3e4f3c6121f97a370" + integrity sha512-PBrsd/GJZ9MN8BdyIoleTkY22lAUMfcRxrbb8wgxGzXtTW0RU0GW2mc99ISB6zOwWMZ11rSjeN0GS6znnukvww== "@next/env@14.2.5": version "14.2.5" resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0" integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA== -"@next/eslint-plugin-next@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.4.tgz#c7f965cb76f0b454e726ef0f69157c4fb4e28f53" - integrity sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA== +"@next/eslint-plugin-next@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz#f7e3ff3efe40a2855e5f29bc2692175f85913ba8" + integrity sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g== dependencies: glob "10.3.10" @@ -2275,90 +2275,96 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@prisma/client@5.16.2": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.16.2.tgz#21df4c092eac29dcc4431ebed8c92579ffc9d8bd" - integrity sha512-+1lmkhR9gHWcTC5oghm2ZKpWljyWdzfazCVlLKUWXVmwHSf52g81aZ8qb6Km5Bs025yBi7puLp3qSLEvktoUtw== +"@prisma/client@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.17.0.tgz#9079947bd749689c2dabfb9ecc70a24ebefb1f43" + integrity sha512-N2tnyKayT0Zf7mHjwEyE8iG7FwTmXDHFZ1GnNhQp0pJUObsuel4ZZ1XwfuAYkq5mRIiC/Kot0kt0tGCfLJ70Jw== -"@prisma/debug@5.16.2": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.16.2.tgz#bf774f4768a3d1634887e6964fcfe04576dc7496" - integrity sha512-ItzB4nR4O8eLzuJiuP3WwUJfoIvewMHqpGCad+64gvThcKEVOtaUza9AEJo2DPqAOa/AWkFyK54oM4WwHeew+A== +"@prisma/debug@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.17.0.tgz#a765105848993984535b6066f8ebc6e6ead26533" + integrity sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg== -"@prisma/engines-version@5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303": - version "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303.tgz#63ceebefb7daa1eb17f250cad75d35999a50ee1b" - integrity sha512-HkT2WbfmFZ9WUPyuJHhkiADxazHg8Y4gByrTSVeb3OikP6tjQ7txtSUGu9OBOBH0C13dPKN2qqH12xKtHu/Hiw== +"@prisma/engines-version@5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053": + version "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz#3c7cc1ef3ebc34cbd069e5873b9982f2aabf5acd" + integrity sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg== -"@prisma/engines@5.16.2": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.16.2.tgz#d624c816c25a5cbad7ca13c7842b71557b6020e0" - integrity sha512-qUxwMtrwoG3byd4PbX6T7EjHJ8AUhzTuwniOGkh/hIznBfcE2QQnGakyEq4VnwNuttMqvh/GgPFapHQ3lCuRHg== +"@prisma/engines@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.17.0.tgz#74dd1aabb22675892760b3cf69a448e3aef4616b" + integrity sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg== dependencies: - "@prisma/debug" "5.16.2" - "@prisma/engines-version" "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303" - "@prisma/fetch-engine" "5.16.2" - "@prisma/get-platform" "5.16.2" + "@prisma/debug" "5.17.0" + "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" + "@prisma/fetch-engine" "5.17.0" + "@prisma/get-platform" "5.17.0" "@prisma/extension-read-replicas@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@prisma/extension-read-replicas/-/extension-read-replicas-0.3.0.tgz#2842a7c928f957c1dd58a6256104797596d43426" integrity sha512-F9+rSmYday6GT2qjhJtkZcBOpLO5LtpvFcMGqrBDHf+78LEdSuxfFjOxYlNuqk4B+th62yxpbhfpmB9/Mca14Q== -"@prisma/fetch-engine@5.16.2": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.16.2.tgz#e7e06cf246340e6ae06791f9133be275c5ee50e5" - integrity sha512-sq51lfHKfH2jjYSjBtMjP+AznFqOJzXpqmq6B9auWrlTJrMgZ7lPyhWUW7VU7LsQU48/TJ+DZeIz8s9bMYvcHg== +"@prisma/fetch-engine@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz#f718dc7426411d1ebeeee53e2d0d38652387f87c" + integrity sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q== dependencies: - "@prisma/debug" "5.16.2" - "@prisma/engines-version" "5.16.0-24.34ace0eb2704183d2c05b60b52fba5c43c13f303" - "@prisma/get-platform" "5.16.2" + "@prisma/debug" "5.17.0" + "@prisma/engines-version" "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053" + "@prisma/get-platform" "5.17.0" -"@prisma/get-platform@5.16.2": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.16.2.tgz#f9b397ddf807b71411fd9d0b17374bc21e91cc40" - integrity sha512-cXiHPgNLNyj22vLouPVNegklpRL/iX2jxTeap5GRO3DmCoVyIHmJAV1CgUMUJhHlcol9yYy7EHvsnXTDJ/PKEA== +"@prisma/get-platform@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.17.0.tgz#89fdcae2adddebbbf0e7bd0474a6c49d6023519b" + integrity sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w== dependencies: - "@prisma/debug" "5.16.2" + "@prisma/debug" "5.17.0" -"@react-spring/animated@~9.7.3": - version "9.7.3" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.3.tgz#4211b1a6d48da0ff474a125e93c0f460ff816e0f" - integrity sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw== +"@react-spring/animated@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.4.tgz#c712b2d3dc9312ef41aa8886818b539151bda062" + integrity sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ== dependencies: - "@react-spring/shared" "~9.7.3" - "@react-spring/types" "~9.7.3" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" -"@react-spring/core@~9.7.3": - version "9.7.3" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.3.tgz#60056bcb397f2c4f371c6c9a5f882db77ae90095" - integrity sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ== +"@react-spring/core@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.4.tgz#0eaa0b5da3d18036d87a571f23079819d45a9f46" + integrity sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw== dependencies: - "@react-spring/animated" "~9.7.3" - "@react-spring/shared" "~9.7.3" - "@react-spring/types" "~9.7.3" + "@react-spring/animated" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" -"@react-spring/shared@~9.7.3": - version "9.7.3" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.3.tgz#4cf29797847c689912aec4e62e34c99a4d5d9e53" - integrity sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA== +"@react-spring/rafz@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.4.tgz#d53aa45a8cb116b81b27ba29e0cc15470ccfd449" + integrity sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA== + +"@react-spring/shared@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.4.tgz#8ac57505072c2aee33d77c47c4269347061a3377" + integrity sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w== dependencies: - "@react-spring/types" "~9.7.3" + "@react-spring/rafz" "~9.7.4" + "@react-spring/types" "~9.7.4" -"@react-spring/types@~9.7.3": - version "9.7.3" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.3.tgz#ea78fd447cbc2612c1f5d55852e3c331e8172a0b" - integrity sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw== +"@react-spring/types@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.4.tgz#c849a7f062b5163d078e5e75f28c8f6acf91792e" + integrity sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g== "@react-spring/web@^9.7.3": - version "9.7.3" - resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.3.tgz#d9f4e17fec259f1d65495a19502ada4f5b57fa3d" - integrity sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg== + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.4.tgz#0086ab5dcf17e6a8f3d7e7f8041ccb4cc2fa10dc" + integrity sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA== dependencies: - "@react-spring/animated" "~9.7.3" - "@react-spring/core" "~9.7.3" - "@react-spring/shared" "~9.7.3" - "@react-spring/types" "~9.7.3" + "@react-spring/animated" "~9.7.4" + "@react-spring/core" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" "@redis/bloom@1.2.0": version "1.2.0" @@ -2459,9 +2465,9 @@ picomatch "^2.3.1" "@rushstack/eslint-patch@^1.3.3": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz#391d528054f758f81e53210f1a1eebcf1a8b1d20" - integrity sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg== + version "1.10.4" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz#427d5549943a9c6fce808e39ea64dbe60d4047f1" + integrity sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA== "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -2616,17 +2622,17 @@ "@swc/counter" "^0.1.3" tslib "^2.4.0" -"@tanstack/query-core@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.48.0.tgz#a3308ec925d8c16d64c789899d6c084c2fe30cbc" - integrity sha512-lZAfPPeVIqXCswE9SSbG33B6/91XOWt/Iq41bFeWb/mnHwQSIfFRbkS4bfs+WhIk9abRArF9Id2fp0Mgo+hq6Q== +"@tanstack/query-core@5.51.21": + version "5.51.21" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.51.21.tgz#a510469c6c30d3de2a8b8798e340169a4b0fd08f" + integrity sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw== "@tanstack/react-query@^5.28.6": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.48.0.tgz#7890620272b48aeb278498dfe082f27518f3ac6d" - integrity sha512-GDExbjYWzvDokyRqMSWXdrPiYpp95Aig0oeMIrxTaruOJJgWiWfUP//OAaowm2RrRkGVsavSZdko/XmIrrV2Nw== + version "5.51.21" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.51.21.tgz#cdd14677bcc809a83e01b6c38842c841ce7420af" + integrity sha512-Q/V81x3sAYgCsxjwOkfLXfrmoG+FmDhLeHH5okC/Bp8Aaw2c33lbEo/mMcMnkxUPVtB2FLpzHT0tq3c+OlZEbw== dependencies: - "@tanstack/query-core" "5.48.0" + "@tanstack/query-core" "5.51.21" "@trysound/sax@0.2.0": version "0.2.0" @@ -2833,12 +2839,12 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== -"@types/node@*", "@types/node@^20.9.0": - version "20.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" - integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== +"@types/node@*": + version "22.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" + integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== dependencies: - undici-types "~5.26.4" + undici-types "~6.13.0" "@types/node@14": version "14.18.63" @@ -2850,6 +2856,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== +"@types/node@^20.9.0": + version "20.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.14.tgz#6b655d4a88623b0edb98300bb9dd2107225f885e" + integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ== + dependencies: + undici-types "~5.26.4" + "@types/normalize-package-data@^2.4.0": version "2.4.3" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz#291c243e4b94dbfbc0c0ee26b7666f1d5c030e2c" @@ -3471,16 +3484,6 @@ array.prototype.flatmap@^1.3.2: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.toreversed@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba" - integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - array.prototype.tosorted@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" @@ -3533,7 +3536,7 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async@^3.2.0: +async@^3.2.0, async@^3.2.3: version "3.2.5" resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== @@ -3578,9 +3581,9 @@ aws4@^1.8.0: integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g== axe-core@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.9.1.tgz#fcd0f4496dad09e0c899b44f6c4bb7848da912ae" - integrity sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== axobject-query@~3.1.1: version "3.1.1" @@ -3916,7 +3919,7 @@ chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4448,11 +4451,11 @@ cypress@*: yauzl "^2.10.0" cypress@^13.6.6: - version "13.12.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.12.0.tgz#1a4ea89b7fa6855e32bc02eaf5e25fc45b9e273f" - integrity sha512-udzS2JilmI9ApO/UuqurEwOvThclin5ntz7K0BtnHBs+tg2Bl9QShLISXpSEMDv/u8b6mqdoAdyKeZiSqKWL8g== + version "13.13.2" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.13.2.tgz#c71f8d92056c430b1b879e5313f6de25ccce0eda" + integrity sha512-PvJQU33933NvS1StfzEb8/mu2kMy4dABwCF+yd5Bi7Qly1HOVf+Bufrygee/tlmty/6j5lX+KIi8j9Q3JUMbhA== dependencies: - "@cypress/request" "^3.0.0" + "@cypress/request" "^3.0.1" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" @@ -4491,7 +4494,7 @@ cypress@^13.6.6: request-progress "^3.0.0" semver "^7.5.3" supports-color "^8.1.1" - tmp "~0.2.1" + tmp "~0.2.3" untildify "^4.0.0" yauzl "^2.10.0" @@ -4633,9 +4636,9 @@ dateformat@^5.0.3: integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA== dayjs@^1.10.4: - version "1.11.11" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e" - integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== + version "1.11.12" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" + integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== debounce@^1.2.1: version "1.2.1" @@ -4657,9 +4660,9 @@ debug@^3.1.0, debug@^3.2.7: ms "^2.1.1" debug@^4.1.1, debug@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" @@ -4905,6 +4908,13 @@ ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer "^5.0.1" +ejs@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + electron-to-chromium@^1.4.535: version "1.4.561" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.561.tgz#816f31d9ae01fe58abbf469fca7e125b16befd85" @@ -4938,9 +4948,9 @@ end-of-stream@^1.1.0: once "^1.4.0" enhanced-resolve@^5.12.0: - version "5.17.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" - integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -5155,11 +5165,11 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-next@^14.0.4: - version "14.2.4" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.2.4.tgz#eb0bedfe4a894bc2aea918214bb5243ee4fa7d4b" - integrity sha512-Qr0wMgG9m6m4uYy2jrYJmyuNlYZzPRQq5Kvb9IDlYwn+7yq6W6sfMNFgb+9guM1KYwuIo6TIaiFhZJ6SnQ/Efw== + version "14.2.5" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.2.5.tgz#cdd43d89047eb7391ba25445d5855b4600b6adb9" + integrity sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA== dependencies: - "@next/eslint-plugin-next" "14.2.4" + "@next/eslint-plugin-next" "14.2.5" "@rushstack/eslint-patch" "^1.3.3" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0" eslint-import-resolver-node "^0.3.6" @@ -5283,9 +5293,9 @@ eslint-plugin-prettier@^4.0.0: prettier-linter-helpers "^1.0.0" eslint-plugin-promise@^6.1.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz#e24ab0e3c0a25fa227d98d9ff612156b5af15945" - integrity sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA== + version "6.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" + integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== "eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": version "4.6.2" @@ -5293,28 +5303,28 @@ eslint-plugin-promise@^6.1.1: integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== eslint-plugin-react@^7.33.2: - version "7.34.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz#9965f27bd1250a787b5d4cfcc765e5a5d58dcb7b" - integrity sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA== + version "7.35.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" + integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" array.prototype.flatmap "^1.3.2" - array.prototype.toreversed "^1.1.2" array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" es-iterator-helpers "^1.0.19" estraverse "^5.3.0" + hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" object.entries "^1.1.8" object.fromentries "^2.0.8" - object.hasown "^1.1.4" object.values "^1.2.0" prop-types "^15.8.1" resolve "^2.0.0-next.5" semver "^6.3.1" string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" eslint-scope@^5.1.1: version "5.1.1" @@ -5661,6 +5671,13 @@ file-entry-cache@^7.0.0: dependencies: flat-cache "^3.2.0" +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -5794,7 +5811,7 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: +function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -5869,9 +5886,9 @@ get-symbol-description@^1.0.2: get-intrinsic "^1.2.4" get-tsconfig@^4.5.0: - version "4.7.5" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf" - integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== + version "4.7.6" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" + integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== dependencies: resolve-pkg-maps "^1.0.0" @@ -6373,9 +6390,9 @@ is-ci@^3.0.1: ci-info "^3.2.0" is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1" - integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A== + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: hasown "^2.0.2" @@ -6610,9 +6627,9 @@ isarray@^2.0.5: integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isbot@^5.1.1: - version "5.1.11" - resolved "https://registry.yarnpkg.com/isbot/-/isbot-5.1.11.tgz#55e91e887c806a5f07d18ce04c2efe194215ba36" - integrity sha512-Asuou7OsKVbATgXlrlqdeSRw4fYnD6CNcc0IXy1f5m1AImL2S6IP0xRcRRzjGjoARbegvnBnju9kk5z/Itf70Q== + version "5.1.13" + resolved "https://registry.yarnpkg.com/isbot/-/isbot-5.1.13.tgz#c291ae9f33d346c070648cb44d6ab2bb163650d1" + integrity sha512-RXtBib4m9zChSb+187EpNQML7Z3u2i34zDdqcRFZnqSJs0xdh91xzJytc5apYVg+9Y4NGnUQ0AIeJvX9FAnCUw== isexe@^2.0.0: version "2.0.0" @@ -6697,6 +6714,16 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" @@ -7527,9 +7554,9 @@ lower-case@^2.0.2: tslib "^2.0.3" lru-cache@^10.2.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.3.0.tgz#4a4aaf10c84658ab70f79a85a9a3f1e1fb11196b" - integrity sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ== + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^5.1.1: version "5.1.1" @@ -7601,12 +7628,12 @@ mathml-tag-names@^2.1.3: integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== maxmind@^4.3.6: - version "4.3.20" - resolved "https://registry.yarnpkg.com/maxmind/-/maxmind-4.3.20.tgz#1b85c4b0d9a8df072c5cbe50dc5c54c130a02889" - integrity sha512-xwnLGghs96DyNK3ANs1jzW8+JwS6pBQ3eTh3kNsi23n5wySZb9FgqCghmde5JZFOv23bxGehcyh6lT522llNKw== + version "4.3.21" + resolved "https://registry.yarnpkg.com/maxmind/-/maxmind-4.3.21.tgz#cc3af09775e9b96434a56b6ac63c9bf4878d23b8" + integrity sha512-orda4yI01roTa4pP5Jf43u5HPOoEIGaLudTn9cdgCPyZDPipTJdbz1boZQR9QE96hvwNDrJwt1ak9vHIE6iZSQ== dependencies: mmdb-lib "2.1.1" - tiny-lru "11.2.6" + tiny-lru "11.2.11" md5@^2.3.0: version "2.3.0" @@ -8050,15 +8077,6 @@ object.groupby@^1.0.1: define-properties "^1.2.1" es-abstract "^1.23.2" -object.hasown@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc" - integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg== - dependencies: - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" @@ -8258,10 +8276,10 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" @@ -8880,12 +8898,12 @@ postcss@^8.4.28: source-map-js "^1.0.2" postcss@^8.4.31: - version "8.4.38" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" - picocolors "^1.0.0" + picocolors "^1.0.1" source-map-js "^1.2.0" prelude-ls@^1.2.1: @@ -8919,12 +8937,12 @@ pretty-format@^29.0.0, pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -prisma@5.16.2: - version "5.16.2" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.16.2.tgz#f46f130550bc148e603d25e06e82263fa6ab68e8" - integrity sha512-rFV/xoBR2hBGGlu4LPLQd4U8WVA+tSAmYyFWGPRVfj+xg7N4kiZV4lSk38htSpF+/IuHKzlrbh4SFk8Z18cI8A== +prisma@5.17.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.17.0.tgz#267b43921ab94805b010537cffa5ccaf530fa066" + integrity sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA== dependencies: - "@prisma/engines" "5.16.2" + "@prisma/engines" "5.17.0" process@^0.11.10: version "0.11.10" @@ -9025,10 +9043,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-basics@^0.123.0: - version "0.123.0" - resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.123.0.tgz#8b18c1c1a235858dd0d1e329d5b1c3ac9ab48df3" - integrity sha512-5K5b6pSp0uiBMytDeSlWuAHRjkLfwpySAIc1jKM4nuR8E6jf6UxGn4W2I7jI8p220vmdeK8Phsyxht0UxvIxHA== +react-basics@^0.124.0: + version "0.124.0" + resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.124.0.tgz#c2c783f634aadccc13aae8a770960d298a10ebe4" + integrity sha512-5E2chyDE0PKKQ9x7kKM18/6UjFsjkPx7mfbTJb4PsWCC5gPi6m5zX7uPWF7omu4/I5Oms/nj16D3pa350WXIyw== dependencies: "@react-spring/web" "^9.7.3" classnames "^2.3.1" @@ -9600,9 +9618,9 @@ semver@^7.3.4, semver@^7.3.7: lru-cache "^6.0.0" semver@^7.5.3, semver@^7.5.4: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== serialize-javascript@^4.0.0: version "4.0.0" @@ -9919,6 +9937,14 @@ string.prototype.padend@^3.0.0: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trim@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" @@ -10247,12 +10273,12 @@ tiny-invariant@^1.0.6: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tiny-lru@11.2.6: - version "11.2.6" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.6.tgz#86a4fd0ad615eac1639adf92010e8b944e209fdb" - integrity sha512-0PU3c9PjMnltZaFo2sGYv/nnJsMjG0Cxx8X6FXHPPGjFyoo1SJDxvUXW1207rdiSxYizf31roo+GrkIByQeZoA== +tiny-lru@11.2.11: + version "11.2.11" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.11.tgz#5089a6a4a157f5a97b82aa930b44d550ac5c4778" + integrity sha512-27BIW0dIWTYYoWNnqSmoNMKe5WIbkXsc0xaCQHd3/3xT2XMuMJrzHdrO9QBFR14emBz1Bu0dOAs2sCBBrvgPQA== -tmp@~0.2.1: +tmp@~0.2.1, tmp@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== @@ -10312,11 +10338,12 @@ ts-api-utils@^1.0.1: integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@^29.1.2: - version "29.1.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.5.tgz#d6c0471cc78bffa2cb4664a0a6741ef36cfe8f69" - integrity sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg== + version "29.2.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.4.tgz#38ccf487407d7a63054a72689f6f99b075e296e5" + integrity sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw== dependencies: bs-logger "0.x" + ejs "^3.1.10" fast-json-stable-stringify "2.x" jest-util "^29.0.0" json5 "^2.2.3" @@ -10487,9 +10514,9 @@ typescript@^4.0, typescript@^4.5: integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa" - integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== unbox-primitive@^1.0.2: version "1.0.2" @@ -10506,6 +10533,11 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" + integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -10668,12 +10700,12 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-builtin-type@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" - integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== dependencies: - function.prototype.name "^1.1.5" - has-tostringtag "^1.0.0" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" is-async-function "^2.0.0" is-date-object "^1.0.5" is-finalizationregistry "^1.0.2" @@ -10682,10 +10714,10 @@ which-builtin-type@^1.1.3: is-weakref "^1.0.2" isarray "^2.0.5" which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" + which-collection "^1.0.2" + which-typed-array "^1.1.15" -which-collection@^1.0.1: +which-collection@^1.0.1, which-collection@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== @@ -10695,7 +10727,7 @@ which-collection@^1.0.1: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==