From 81f6ecb128acf289e0b6155b51b89a27d55e3858 Mon Sep 17 00:00:00 2001 From: Meir Roth <12494197+meirroth@users.noreply.github.com> Date: Mon, 1 Mar 2021 22:32:46 +0200 Subject: [PATCH 01/25] fix favicon paths --- components/layout/Layout.js | 2 +- pages/_app.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/layout/Layout.js b/components/layout/Layout.js index 2d283d2f..b16a0717 100644 --- a/components/layout/Layout.js +++ b/components/layout/Layout.js @@ -8,7 +8,7 @@ export default function Layout({ title, children, header = true, footer = true } <> umami{title && ` - ${title}`} - + - - - - - + + + + + From 3087fa5dc03ba49fb5237b14fad0139d2416c9c7 Mon Sep 17 00:00:00 2001 From: Meir Roth <12494197+meirroth@users.noreply.github.com> Date: Fri, 5 Mar 2021 00:20:53 +0000 Subject: [PATCH 02/25] Added basePath --- components/layout/Layout.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/layout/Layout.js b/components/layout/Layout.js index b16a0717..18a8fc20 100644 --- a/components/layout/Layout.js +++ b/components/layout/Layout.js @@ -1,14 +1,17 @@ import React from 'react'; import Head from 'next/head'; +import { useRouter } from 'next/router'; import Header from 'components/layout/Header'; import Footer from 'components/layout/Footer'; export default function Layout({ title, children, header = true, footer = true }) { + const { basePath } = useRouter(); + return ( <> umami{title && ` - ${title}`} - + Date: Fri, 5 Mar 2021 00:23:47 +0000 Subject: [PATCH 03/25] Added basePath --- pages/_app.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pages/_app.js b/pages/_app.js index 8206992d..0cf7011b 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -1,5 +1,6 @@ import React from 'react'; import Head from 'next/head'; +import { useRouter } from 'next/router'; import { IntlProvider } from 'react-intl'; import { Provider } from 'react-redux'; import { useStore } from 'redux/store'; @@ -25,15 +26,16 @@ const Intl = ({ children }) => { export default function App({ Component, pageProps }) { useForceSSL(process.env.FORCE_SSL); const store = useStore(); + const { basePath } = useRouter(); return ( - - - - - + + + + + From 38256c7e90a26a8c621f65bad983e15be2db953c Mon Sep 17 00:00:00 2001 From: Sammy-T Date: Fri, 5 Mar 2021 19:18:31 -0500 Subject: [PATCH 04/25] Contain login field widths on smaller displays --- components/layout/FormLayout.module.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/layout/FormLayout.module.css b/components/layout/FormLayout.module.css index 1ae393bb..2b0f6d1f 100644 --- a/components/layout/FormLayout.module.css +++ b/components/layout/FormLayout.module.css @@ -11,6 +11,7 @@ .row { display: flex; + flex-wrap: wrap; align-items: center; position: relative; margin-bottom: 20px; @@ -19,6 +20,12 @@ .row > div { position: relative; + flex: 1 1; +} + +.row > div > input { + width: 100%; + min-width: 200px; } .buttons { From 1b0491588fca8040f131be22a81161cca2e95c94 Mon Sep 17 00:00:00 2001 From: Sammy-T Date: Fri, 5 Mar 2021 19:48:20 -0500 Subject: [PATCH 05/25] Extend input min-width and add padding --- components/layout/FormLayout.module.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/layout/FormLayout.module.css b/components/layout/FormLayout.module.css index 2b0f6d1f..d7c9ff53 100644 --- a/components/layout/FormLayout.module.css +++ b/components/layout/FormLayout.module.css @@ -16,6 +16,7 @@ position: relative; margin-bottom: 20px; line-height: 1.8; + padding: 0 6px; } .row > div { @@ -25,7 +26,7 @@ .row > div > input { width: 100%; - min-width: 200px; + min-width: 240px; } .buttons { From 3ae7f8589f8b3eecf777c7c96ec55c41e4c87479 Mon Sep 17 00:00:00 2001 From: Max Base Date: Mon, 8 Mar 2021 05:06:10 +0330 Subject: [PATCH 06/25] Create fa-IR.json --- lang/fa-IR.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 lang/fa-IR.json diff --git a/lang/fa-IR.json b/lang/fa-IR.json new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lang/fa-IR.json @@ -0,0 +1 @@ + From ec83f8d5f3befad0c3f44d5aa514937c4f09130d Mon Sep 17 00:00:00 2001 From: Max Base Date: Mon, 8 Mar 2021 05:06:27 +0330 Subject: [PATCH 07/25] Create fa-IR with default as en-US --- lang/fa-IR.json | 101 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) diff --git a/lang/fa-IR.json b/lang/fa-IR.json index 8b137891..4aec2554 100644 --- a/lang/fa-IR.json +++ b/lang/fa-IR.json @@ -1 +1,100 @@ - +{ + "label.accounts": "Accounts", + "label.add-account": "Add account", + "label.add-website": "Add website", + "label.administrator": "Administrator", + "label.all": "All", + "label.all-websites": "All websites", + "label.all-events": "All events", + "label.back": "Back", + "label.cancel": "Cancel", + "label.change-password": "Change password", + "label.confirm-password": "Confirm password", + "label.copy-to-clipboard": "Copy to clipboard", + "label.current-password": "Current password", + "label.custom-range": "Custom range", + "label.dashboard": "Dashboard", + "label.date-range": "Date range", + "label.default-date-range": "Default date range", + "label.delete": "Delete", + "label.delete-account": "Delete account", + "label.delete-website": "Delete website", + "label.dismiss": "Dismiss", + "label.domain": "Domain", + "label.edit": "Edit", + "label.edit-account": "Edit account", + "label.edit-website": "Edit website", + "label.enable-share-url": "Enable share URL", + "label.invalid": "Invalid", + "label.invalid-domain": "Invalid domain", + "label.last-days": "Last {x} days", + "label.last-hours": "Last {x} hours", + "label.logged-in-as": "Logged in as {username}", + "label.login": "Login", + "label.logout": "Logout", + "label.more": "More", + "label.name": "Name", + "label.new-password": "New password", + "label.password": "Password", + "label.passwords-dont-match": "Passwords don't match", + "label.profile": "Profile", + "label.realtime": "Realtime", + "label.realtime-logs": "Realtime logs", + "label.refresh": "Refresh", + "label.required": "Required", + "label.reset": "Reset", + "label.save": "Save", + "label.settings": "Settings", + "label.share-url": "Share URL", + "label.single-day": "Single day", + "label.this-month": "This month", + "label.this-week": "This week", + "label.this-year": "This year", + "label.timezone": "Timezone", + "label.today": "Today", + "label.tracking-code": "Tracking code", + "label.unknown": "Unknown", + "label.username": "Username", + "label.view-details": "View details", + "label.websites": "Websites", + "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}", + "message.confirm-delete": "Are your sure you want to delete {target}?", + "message.copied": "Copied!", + "message.delete-warning": "All associated data will be deleted as well.", + "message.failure": "Something went wrong.", + "message.get-share-url": "Get share URL", + "message.get-tracking-code": "Get tracking code", + "message.go-to-settings": "Go to settings", + "message.incorrect-username-password": "Incorrect username/password.", + "message.log.visitor": "Visitor from {country} using {browser} on {os} {device}", + "message.new-version-available": "A new version of umami {version} is available!", + "message.no-data-available": "No data available.", + "message.no-websites-configured": "You don't have any websites configured.", + "message.page-not-found": "Page not found.", + "message.powered-by": "Powered by {name}", + "message.save-success": "Saved successfully.", + "message.share-url": "This is the publicly shared URL for {target}.", + "message.track-stats": "To track stats for {target}, place the following code in the {head} section of your website.", + "message.type-delete": "Type {delete} in the box below to confirm.", + "metrics.actions": "Actions", + "metrics.average-visit-time": "Average visit time", + "metrics.bounce-rate": "Bounce rate", + "metrics.browsers": "Browsers", + "metrics.countries": "Countries", + "metrics.device.desktop": "Desktop", + "metrics.device.laptop": "Laptop", + "metrics.device.mobile": "Mobile", + "metrics.device.tablet": "Tablet", + "metrics.devices": "Devices", + "metrics.events": "Events", + "metrics.filter.combined": "Combined", + "metrics.filter.domain-only": "Domain only", + "metrics.filter.raw": "Raw", + "metrics.operating-systems": "Operating systems", + "metrics.page-views": "Page views", + "metrics.pages": "Pages", + "metrics.referrers": "Referrers", + "metrics.unique-visitors": "Unique visitors", + "metrics.views": "Views", + "metrics.visitors": "Visitors" +} From b03834b91b632934c6f70c722fa1a16aa4f2e925 Mon Sep 17 00:00:00 2001 From: Max Base Date: Mon, 8 Mar 2021 05:09:09 +0330 Subject: [PATCH 08/25] translate more words in fa-IR --- lang/fa-IR.json | 84 ++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/lang/fa-IR.json b/lang/fa-IR.json index 4aec2554..9706404b 100644 --- a/lang/fa-IR.json +++ b/lang/fa-IR.json @@ -1,49 +1,49 @@ { - "label.accounts": "Accounts", - "label.add-account": "Add account", - "label.add-website": "Add website", + "label.accounts": "حساب ها", + "label.add-account": "افزودن حساب", + "label.add-website": "افزودن وب سایت", "label.administrator": "Administrator", - "label.all": "All", - "label.all-websites": "All websites", - "label.all-events": "All events", - "label.back": "Back", - "label.cancel": "Cancel", - "label.change-password": "Change password", - "label.confirm-password": "Confirm password", - "label.copy-to-clipboard": "Copy to clipboard", - "label.current-password": "Current password", + "label.all": "همه", + "label.all-websites": "همه وب سایت ها", + "label.all-events": "همه رویداد ها", + "label.back": "برگشت", + "label.cancel": "انصراف", + "label.change-password": "تغییر رمز", + "label.confirm-password": "تایید رمز", + "label.copy-to-clipboard": "کپی به حافظه", + "label.current-password": "رمز فعلی", "label.custom-range": "Custom range", - "label.dashboard": "Dashboard", + "label.dashboard": "داشبورد", "label.date-range": "Date range", "label.default-date-range": "Default date range", - "label.delete": "Delete", - "label.delete-account": "Delete account", - "label.delete-website": "Delete website", + "label.delete": "حذف", + "label.delete-account": "حذف حساب", + "label.delete-website": "حذف وب سایت", "label.dismiss": "Dismiss", - "label.domain": "Domain", - "label.edit": "Edit", - "label.edit-account": "Edit account", - "label.edit-website": "Edit website", + "label.domain": "دامنه", + "label.edit": "ویرایش", + "label.edit-account": "ویرایش حساب", + "label.edit-website": "ویرایش وب سایت", "label.enable-share-url": "Enable share URL", - "label.invalid": "Invalid", - "label.invalid-domain": "Invalid domain", + "label.invalid": "نامعتبر", + "label.invalid-domain": "دامنه نامعتبر", "label.last-days": "Last {x} days", "label.last-hours": "Last {x} hours", "label.logged-in-as": "Logged in as {username}", - "label.login": "Login", - "label.logout": "Logout", - "label.more": "More", - "label.name": "Name", - "label.new-password": "New password", - "label.password": "Password", + "label.login": "ورود", + "label.logout": "خروج", + "label.more": "بیشتر", + "label.name": "نام", + "label.new-password": "رمز جدید", + "label.password": "رمز", "label.passwords-dont-match": "Passwords don't match", - "label.profile": "Profile", + "label.profile": "پروفایل", "label.realtime": "Realtime", "label.realtime-logs": "Realtime logs", "label.refresh": "Refresh", - "label.required": "Required", - "label.reset": "Reset", - "label.save": "Save", + "label.required": "لازم", + "label.reset": "ریست", + "label.save": "ذخیره", "label.settings": "Settings", "label.share-url": "Share URL", "label.single-day": "Single day", @@ -51,11 +51,11 @@ "label.this-week": "This week", "label.this-year": "This year", "label.timezone": "Timezone", - "label.today": "Today", + "label.today": "امروز", "label.tracking-code": "Tracking code", "label.unknown": "Unknown", - "label.username": "Username", - "label.view-details": "View details", + "label.username": "نام کاربری", + "label.view-details": "مشاهده جزئیات", "label.websites": "Websites", "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}", "message.confirm-delete": "Are your sure you want to delete {target}?", @@ -89,12 +89,12 @@ "metrics.events": "Events", "metrics.filter.combined": "Combined", "metrics.filter.domain-only": "Domain only", - "metrics.filter.raw": "Raw", - "metrics.operating-systems": "Operating systems", - "metrics.page-views": "Page views", - "metrics.pages": "Pages", + "metrics.filter.raw": "خام", + "metrics.operating-systems": "سیستم عامل ها", + "metrics.page-views": "بازدید صفحه", + "metrics.pages": "صفحه ها", "metrics.referrers": "Referrers", - "metrics.unique-visitors": "Unique visitors", - "metrics.views": "Views", - "metrics.visitors": "Visitors" + "metrics.unique-visitors": "بازدید کننده خالص", + "metrics.views": "بازدید", + "metrics.visitors": "بازدید کننده" } From 2d56809de952a833a4b8938d835c878a1436ffbd Mon Sep 17 00:00:00 2001 From: Max Base Date: Mon, 8 Mar 2021 05:15:16 +0330 Subject: [PATCH 09/25] Translate more words in fa-IR --- lang/fa-IR.json | 92 ++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/lang/fa-IR.json b/lang/fa-IR.json index 9706404b..a9e428b6 100644 --- a/lang/fa-IR.json +++ b/lang/fa-IR.json @@ -2,7 +2,7 @@ "label.accounts": "حساب ها", "label.add-account": "افزودن حساب", "label.add-website": "افزودن وب سایت", - "label.administrator": "Administrator", + "label.administrator": "مدیر", "label.all": "همه", "label.all-websites": "همه وب سایت ها", "label.all-events": "همه رویداد ها", @@ -12,88 +12,88 @@ "label.confirm-password": "تایید رمز", "label.copy-to-clipboard": "کپی به حافظه", "label.current-password": "رمز فعلی", - "label.custom-range": "Custom range", + "label.custom-range": "محدوده دلخواه", "label.dashboard": "داشبورد", - "label.date-range": "Date range", - "label.default-date-range": "Default date range", + "label.date-range": "محدوده تاریخ", + "label.default-date-range": "محدوده پیشفرض تاریخ", "label.delete": "حذف", "label.delete-account": "حذف حساب", "label.delete-website": "حذف وب سایت", - "label.dismiss": "Dismiss", + "label.dismiss": "رد کردن", "label.domain": "دامنه", "label.edit": "ویرایش", "label.edit-account": "ویرایش حساب", "label.edit-website": "ویرایش وب سایت", - "label.enable-share-url": "Enable share URL", + "label.enable-share-url": "فعال کردن اشتراک گذاری URL", "label.invalid": "نامعتبر", "label.invalid-domain": "دامنه نامعتبر", - "label.last-days": "Last {x} days", - "label.last-hours": "Last {x} hours", - "label.logged-in-as": "Logged in as {username}", + "label.last-days": "لیست {x} روز", + "label.last-hours": "لیست {x} ساعت", + "label.logged-in-as": "وارد شده به عنوان {username}", "label.login": "ورود", "label.logout": "خروج", "label.more": "بیشتر", "label.name": "نام", "label.new-password": "رمز جدید", "label.password": "رمز", - "label.passwords-dont-match": "Passwords don't match", + "label.passwords-dont-match": "رمز ها یکسان نیستند", "label.profile": "پروفایل", - "label.realtime": "Realtime", - "label.realtime-logs": "Realtime logs", - "label.refresh": "Refresh", + "label.realtime": "آمار هم اکنون", + "label.realtime-logs": "لاگ های هم اکنون", + "label.refresh": "تازه کردن", "label.required": "لازم", "label.reset": "ریست", "label.save": "ذخیره", - "label.settings": "Settings", - "label.share-url": "Share URL", - "label.single-day": "Single day", - "label.this-month": "This month", - "label.this-week": "This week", - "label.this-year": "This year", - "label.timezone": "Timezone", + "label.settings": "تنظیمات", + "label.share-url": "به اشتراک گذاری URL", + "label.single-day": "یک روز", + "label.this-month": "این ماه", + "label.this-week": "این هفته", + "label.this-year": "امسال", + "label.timezone": "منطقه زمانی", "label.today": "امروز", - "label.tracking-code": "Tracking code", - "label.unknown": "Unknown", + "label.tracking-code": "کد رهگیری", + "label.unknown": "ناشناخته", "label.username": "نام کاربری", "label.view-details": "مشاهده جزئیات", - "label.websites": "Websites", + "label.websites": "وب سایت ها", "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}", - "message.confirm-delete": "Are your sure you want to delete {target}?", - "message.copied": "Copied!", + "message.confirm-delete": "آیا مطمئن هستید می خواهید {target} را حذف کنید?", + "message.copied": "کپی شد!", "message.delete-warning": "All associated data will be deleted as well.", - "message.failure": "Something went wrong.", - "message.get-share-url": "Get share URL", + "message.failure": "مشکلی پیش آمده است.", + "message.get-share-url": "دریافت URL برای اشتراک گذاری", "message.get-tracking-code": "Get tracking code", - "message.go-to-settings": "Go to settings", + "message.go-to-settings": "رفتن به تنظیمات", "message.incorrect-username-password": "Incorrect username/password.", "message.log.visitor": "Visitor from {country} using {browser} on {os} {device}", "message.new-version-available": "A new version of umami {version} is available!", - "message.no-data-available": "No data available.", + "message.no-data-available": "اطلاعاتی موجود نیست.", "message.no-websites-configured": "You don't have any websites configured.", - "message.page-not-found": "Page not found.", - "message.powered-by": "Powered by {name}", - "message.save-success": "Saved successfully.", + "message.page-not-found": "صفحه یافت نشد.", + "message.powered-by": "قدرت گرفته توسط {name}", + "message.save-success": "با موفقیت ذخیره شد.", "message.share-url": "This is the publicly shared URL for {target}.", "message.track-stats": "To track stats for {target}, place the following code in the {head} section of your website.", "message.type-delete": "Type {delete} in the box below to confirm.", - "metrics.actions": "Actions", - "metrics.average-visit-time": "Average visit time", - "metrics.bounce-rate": "Bounce rate", - "metrics.browsers": "Browsers", - "metrics.countries": "Countries", - "metrics.device.desktop": "Desktop", - "metrics.device.laptop": "Laptop", - "metrics.device.mobile": "Mobile", - "metrics.device.tablet": "Tablet", - "metrics.devices": "Devices", - "metrics.events": "Events", - "metrics.filter.combined": "Combined", - "metrics.filter.domain-only": "Domain only", + "metrics.actions": "اقدامات", + "metrics.average-visit-time": "میانگین زمان بازدید", + "metrics.bounce-rate": "نرخ Bounce", + "metrics.browsers": "مروگر ها", + "metrics.countries": "کشور ها", + "metrics.device.desktop": "دسکتاپ", + "metrics.device.laptop": "لپ تاپ", + "metrics.device.mobile": "موبایل", + "metrics.device.tablet": "تبلت", + "metrics.devices": "دستگاه ها", + "metrics.events": "رویداد ها", + "metrics.filter.combined": "ترکیب شده", + "metrics.filter.domain-only": "فقط دامنه", "metrics.filter.raw": "خام", "metrics.operating-systems": "سیستم عامل ها", "metrics.page-views": "بازدید صفحه", "metrics.pages": "صفحه ها", - "metrics.referrers": "Referrers", + "metrics.referrers": "ارجاع دهندگان", "metrics.unique-visitors": "بازدید کننده خالص", "metrics.views": "بازدید", "metrics.visitors": "بازدید کننده" From b759bb0b001ac53b8e6ba08d581fa01026f8bf27 Mon Sep 17 00:00:00 2001 From: Max Base Date: Mon, 8 Mar 2021 05:20:00 +0330 Subject: [PATCH 10/25] Completing the translation file fa-IR --- lang/fa-IR.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lang/fa-IR.json b/lang/fa-IR.json index a9e428b6..87d22771 100644 --- a/lang/fa-IR.json +++ b/lang/fa-IR.json @@ -57,25 +57,25 @@ "label.username": "نام کاربری", "label.view-details": "مشاهده جزئیات", "label.websites": "وب سایت ها", - "message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}", + "message.active-users": "{x} هم اکنون {x, plural, یک {visitor} از میان {visitors}}", "message.confirm-delete": "آیا مطمئن هستید می خواهید {target} را حذف کنید?", "message.copied": "کپی شد!", - "message.delete-warning": "All associated data will be deleted as well.", + "message.delete-warning": "همه داده های مرتبط هم حذف خواهد شد.", "message.failure": "مشکلی پیش آمده است.", "message.get-share-url": "دریافت URL برای اشتراک گذاری", - "message.get-tracking-code": "Get tracking code", + "message.get-tracking-code": "گرفتن کد رهگیری", "message.go-to-settings": "رفتن به تنظیمات", - "message.incorrect-username-password": "Incorrect username/password.", - "message.log.visitor": "Visitor from {country} using {browser} on {os} {device}", - "message.new-version-available": "A new version of umami {version} is available!", + "message.incorrect-username-password": "نام کاربری / رمز نادرست است.", + "message.log.visitor": "بازدید کننده از کشور {country} با مروگر {browser} در {os} {device}", + "message.new-version-available": "نسخه جدید umami ({version}) وجود است!", "message.no-data-available": "اطلاعاتی موجود نیست.", - "message.no-websites-configured": "You don't have any websites configured.", + "message.no-websites-configured": "شما هیچ وب سایتی را پیکر بندی نکرده اید.", "message.page-not-found": "صفحه یافت نشد.", "message.powered-by": "قدرت گرفته توسط {name}", "message.save-success": "با موفقیت ذخیره شد.", - "message.share-url": "This is the publicly shared URL for {target}.", - "message.track-stats": "To track stats for {target}, place the following code in the {head} section of your website.", - "message.type-delete": "Type {delete} in the box below to confirm.", + "message.share-url": "این URL به اشتراک گذاشته شده عمومی برای {target} است.", + "message.track-stats": "برای ردیابی آمار {target}, کد روبرو را در قسمت {head} وب سایت قرار دهید.", + "message.type-delete": "جهت اطمینان '{delete}' را در کادر زیر بنویسید.", "metrics.actions": "اقدامات", "metrics.average-visit-time": "میانگین زمان بازدید", "metrics.bounce-rate": "نرخ Bounce", From 52bf53eda93f3bd5e26f576e9c4bb759b1752a57 Mon Sep 17 00:00:00 2001 From: Sammy-T Date: Mon, 8 Mar 2021 16:18:24 -0500 Subject: [PATCH 11/25] Increase row padding --- components/layout/FormLayout.module.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/layout/FormLayout.module.css b/components/layout/FormLayout.module.css index d7c9ff53..f6171d2d 100644 --- a/components/layout/FormLayout.module.css +++ b/components/layout/FormLayout.module.css @@ -16,7 +16,7 @@ position: relative; margin-bottom: 20px; line-height: 1.8; - padding: 0 6px; + padding: 0 20px; } .row > div { From 17836c70e748e1ee01012e02e8efa72b1b3dc845 Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:11:23 +0100 Subject: [PATCH 12/25] feature(calendar): use locale for start of week --- components/common/Calendar.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/common/Calendar.js b/components/common/Calendar.js index 237f065e..92fd311c 100644 --- a/components/common/Calendar.js +++ b/components/common/Calendar.js @@ -20,6 +20,7 @@ import Button from './Button'; import useLocale from 'hooks/useLocale'; import { dateFormat } from 'lib/date'; import { chunk } from 'lib/array'; +import { dateLocales } from 'lib/lang'; import Chevron from 'assets/chevron-down.svg'; import Cross from 'assets/times.svg'; import styles from './Calendar.module.css'; @@ -105,8 +106,8 @@ export default function Calendar({ date, minDate, maxDate, onChange }) { } const DaySelector = ({ date, minDate, maxDate, locale, onSelect }) => { - const startWeek = startOfWeek(date); - const startMonth = startOfMonth(date); + const startWeek = startOfWeek(date, { locale: dateLocales[locale] }); + const startMonth = startOfMonth(date, { locale: dateLocales[locale] }); const startDay = subDays(startMonth, startMonth.getDay()); const month = date.getMonth(); const year = date.getFullYear(); From eb1029bfc8abb680939426e49a9288b588d9feb9 Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:20:54 +0100 Subject: [PATCH 13/25] feature(lib): locale option for getDateRange --- lib/date.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/date.js b/lib/date.js index e166563b..06aaac13 100644 --- a/lib/date.js +++ b/lib/date.js @@ -36,8 +36,9 @@ export function getLocalTime(t) { return addMinutes(new Date(t), new Date().getTimezoneOffset()); } -export function getDateRange(value) { +export function getDateRange(value, locale) { const now = new Date(); + const localeOptions = dateLocales[locale]; const { num, unit } = value.match(/^(?[0-9]+)(?hour|day|week|month|year)$/).groups; @@ -52,8 +53,8 @@ export function getDateRange(value) { }; case 'week': return { - startDate: startOfWeek(now), - endDate: endOfWeek(now), + startDate: startOfWeek(now, { locale: localeOptions }), + endDate: endOfWeek(now, { locale: localeOptions }), unit: 'day', value, }; From a48c33fcd678d051981e8b2f33822a43228b4b3e Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:22:19 +0100 Subject: [PATCH 14/25] feature(DateFilter): use locale for date ranges --- components/common/DateFilter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/common/DateFilter.js b/components/common/DateFilter.js index 45950086..7e35a010 100644 --- a/components/common/DateFilter.js +++ b/components/common/DateFilter.js @@ -55,6 +55,7 @@ const filterOptions = [ ]; function DateFilter({ value, startDate, endDate, onChange, className }) { + const [locale] = useLocale(); const [showPicker, setShowPicker] = useState(false); const displayValue = value === 'custom' ? ( @@ -68,7 +69,7 @@ function DateFilter({ value, startDate, endDate, onChange, className }) { setShowPicker(true); return; } - onChange(getDateRange(value)); + onChange(getDateRange(value, locale)); } function handlePickerChange(value) { From a1edcecde781ce77db303ba6a3af6a640cc7af6d Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:38:35 +0100 Subject: [PATCH 15/25] feature(components): add locale for date ranges --- components/common/RefreshButton.js | 4 +++- components/settings/DateRangeSetting.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/components/common/RefreshButton.js b/components/common/RefreshButton.js index a2857522..61f06a3c 100644 --- a/components/common/RefreshButton.js +++ b/components/common/RefreshButton.js @@ -8,9 +8,11 @@ import Refresh from 'assets/redo.svg'; import Dots from 'assets/ellipsis-h.svg'; import useDateRange from 'hooks/useDateRange'; import { getDateRange } from '../../lib/date'; +import useLocale from 'hooks/useLocale'; function RefreshButton({ websiteId }) { const dispatch = useDispatch(); + const [locale] = useLocale(); const [dateRange] = useDateRange(websiteId); const [loading, setLoading] = useState(false); const completed = useSelector(state => state.queries[`/api/website/${websiteId}/stats`]); @@ -18,7 +20,7 @@ function RefreshButton({ websiteId }) { function handleClick() { if (dateRange) { setLoading(true); - dispatch(setDateRange(websiteId, getDateRange(dateRange.value))); + dispatch(setDateRange(websiteId, getDateRange(dateRange.value, locale))); } } diff --git a/components/settings/DateRangeSetting.js b/components/settings/DateRangeSetting.js index a25bafa8..8ce5e72c 100644 --- a/components/settings/DateRangeSetting.js +++ b/components/settings/DateRangeSetting.js @@ -6,13 +6,15 @@ import useDateRange from 'hooks/useDateRange'; import { DEFAULT_DATE_RANGE } from 'lib/constants'; import { getDateRange } from 'lib/date'; import styles from './DateRangeSetting.module.css'; +import useLocale from 'hooks/useLocale'; export default function DateRangeSetting() { + const [locale] = useLocale(); const [dateRange, setDateRange] = useDateRange(); const { startDate, endDate, value } = dateRange; function handleReset() { - setDateRange(getDateRange(DEFAULT_DATE_RANGE)); + setDateRange(getDateRange(DEFAULT_DATE_RANGE, locale)); } return ( From 3cb748b29bc1b709a97ab821081b0b616b284cad Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:39:31 +0100 Subject: [PATCH 16/25] feature(hooks): use locale in useDateRange hook --- hooks/useDateRange.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hooks/useDateRange.js b/hooks/useDateRange.js index 77f892de..7566970f 100644 --- a/hooks/useDateRange.js +++ b/hooks/useDateRange.js @@ -5,9 +5,11 @@ import { getItem, setItem } from 'lib/web'; import { setDateRange } from '../redux/actions/websites'; import { DATE_RANGE_CONFIG, DEFAULT_DATE_RANGE } from 'lib/constants'; import useForceUpdate from './useForceUpdate'; +import useLocale from './useLocale'; export default function useDateRange(websiteId, defaultDateRange = DEFAULT_DATE_RANGE) { const dispatch = useDispatch(); + const [locale] = useLocale(); const dateRange = useSelector(state => state.websites[websiteId]?.dateRange); const forceUpdate = useForceUpdate(); @@ -16,7 +18,7 @@ export default function useDateRange(websiteId, defaultDateRange = DEFAULT_DATE_ if (globalDefault) { if (typeof globalDefault === 'string') { - globalDateRange = getDateRange(globalDefault); + globalDateRange = getDateRange(globalDefault, locale); } else if (typeof globalDefault === 'object') { globalDateRange = { ...globalDefault, @@ -37,5 +39,5 @@ export default function useDateRange(websiteId, defaultDateRange = DEFAULT_DATE_ } } - return [dateRange || globalDateRange || getDateRange(defaultDateRange), saveDateRange]; + return [dateRange || globalDateRange || getDateRange(defaultDateRange, locale), saveDateRange]; } From f6f14bf104402d88ca44ce0f6b98a18527d72808 Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Wed, 10 Mar 2021 10:40:59 +0100 Subject: [PATCH 17/25] fix(lib): add default value for getDateRange --- lib/date.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/date.js b/lib/date.js index 06aaac13..578d9014 100644 --- a/lib/date.js +++ b/lib/date.js @@ -36,7 +36,7 @@ export function getLocalTime(t) { return addMinutes(new Date(t), new Date().getTimezoneOffset()); } -export function getDateRange(value, locale) { +export function getDateRange(value, locale = 'en-US') { const now = new Date(); const localeOptions = dateLocales[locale]; From 73ab39748d6ab6e5110be01b1aaa757846176263 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Mar 2021 01:57:36 +0000 Subject: [PATCH 18/25] build(deps): bump elliptic from 6.5.3 to 6.5.4 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] --- yarn.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index d9a317e7..3d952c2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2038,10 +2038,10 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1: version "5.1.3" @@ -2068,7 +2068,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -3118,17 +3118,17 @@ electron-to-chromium@^1.3.634: integrity sha512-j6pRuNylFBbroG6NB8Lw/Im9oDY74s2zWHBP5TmdYg73cBuL6cz//SMgolVa0gIJk/DSL+kO7baJ1DSXW1FUZg== elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -3989,7 +3989,7 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -4988,7 +4988,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= From a4b1a478afc5ecb04326670c452ccd9f1f2c4593 Mon Sep 17 00:00:00 2001 From: Alexander Klein Date: Fri, 12 Mar 2021 18:12:53 +0100 Subject: [PATCH 19/25] style: add margin to "empty" placeholder message --- components/common/EmptyPlaceholder.js | 2 +- components/common/EmptyPlaceholder.module.css | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/components/common/EmptyPlaceholder.js b/components/common/EmptyPlaceholder.js index a223814d..b5394e85 100644 --- a/components/common/EmptyPlaceholder.js +++ b/components/common/EmptyPlaceholder.js @@ -8,7 +8,7 @@ function EmptyPlaceholder({ msg, children }) { return (
} size="xlarge" /> -

{msg}

+

{msg}

{children}
); diff --git a/components/common/EmptyPlaceholder.module.css b/components/common/EmptyPlaceholder.module.css index 58332566..a9231836 100644 --- a/components/common/EmptyPlaceholder.module.css +++ b/components/common/EmptyPlaceholder.module.css @@ -9,3 +9,7 @@ .icon { margin-bottom: 30px; } + +.msg { + margin-bottom: 15px; +} From e5ff182302616cd5b1eb04c5daa96e03b3223b62 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 22:30:26 -0800 Subject: [PATCH 20/25] Added Persian language. --- lang/fa-IR.json | 2 +- lib/lang.js | 5 +++++ public/country/fa-IR.json | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 public/country/fa-IR.json diff --git a/lang/fa-IR.json b/lang/fa-IR.json index 87d22771..ce499eed 100644 --- a/lang/fa-IR.json +++ b/lang/fa-IR.json @@ -57,7 +57,7 @@ "label.username": "نام کاربری", "label.view-details": "مشاهده جزئیات", "label.websites": "وب سایت ها", - "message.active-users": "{x} هم اکنون {x, plural, یک {visitor} از میان {visitors}}", + "message.active-users": "{x} هم اکنون {x, plural, one {یک} other {از میان}}", "message.confirm-delete": "آیا مطمئن هستید می خواهید {target} را حذف کنید?", "message.copied": "کپی شد!", "message.delete-warning": "همه داده های مرتبط هم حذف خواهد شد.", diff --git a/lib/lang.js b/lib/lang.js index 02ec1c3c..d96e109f 100644 --- a/lib/lang.js +++ b/lib/lang.js @@ -7,6 +7,7 @@ import { es, fi, fr, + faIR, he, hi, id, @@ -54,6 +55,7 @@ import taMessages from 'lang-compiled/ta-IN.json'; import hiMessages from 'lang-compiled/hi-IN.json'; import heMessages from 'lang-compiled/he-IL.json'; import itMessages from 'lang-compiled/it-IT.json'; +import faIRMessages from 'lang-compiled/fa-IR.json'; export const messages = { 'en-US': enMessages, @@ -84,6 +86,7 @@ export const messages = { 'hi-IN': hiMessages, 'he-IL': heMessages, 'it-IT': itMessages, + 'fa-IR': faIRMessages, }; export const dateLocales = { @@ -115,6 +118,7 @@ export const dateLocales = { 'hi-IN': hi, 'he-IL': he, 'it-IT': it, + 'fa-IR': faIR, }; export const menuOptions = [ @@ -125,6 +129,7 @@ export const menuOptions = [ { label: 'Deutsch', value: 'de-DE', display: 'de' }, { label: 'English', value: 'en-US', display: 'en' }, { label: 'Español', value: 'es-MX', display: 'es' }, + { label: 'فارسی', value: 'fa-IR', display: 'fa' }, { label: 'Føroyskt', value: 'fo-FO', display: 'fo' }, { label: 'Français', value: 'fr-FR', display: 'fr' }, { label: 'Ελληνικά', value: 'el-GR', display: 'el' }, diff --git a/public/country/fa-IR.json b/public/country/fa-IR.json new file mode 100644 index 00000000..4eec35ae --- /dev/null +++ b/public/country/fa-IR.json @@ -0,0 +1 @@ +{"AR":"\u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646","AW":"\u0622\u0631\u0648\u0628\u0627","AL":"\u0622\u0644\u0628\u0627\u0646\u06cc","DE":"\u0622\u0644\u0645\u0627\u0646","AG":"\u0622\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627","AD":"\u0622\u0646\u062f\u0648\u0631\u0627","AO":"\u0622\u0646\u06af\u0648\u0644\u0627","AI":"\u0622\u0646\u06af\u0648\u06cc\u0644\u0627","AT":"\u0627\u062a\u0631\u06cc\u0634","ET":"\u0627\u062a\u06cc\u0648\u067e\u06cc","JO":"\u0627\u0631\u062f\u0646","AM":"\u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646","UY":"\u0627\u0631\u0648\u06af\u0648\u0626\u0647","ER":"\u0627\u0631\u06cc\u062a\u0631\u0647","UZ":"\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646","ES":"\u0627\u0633\u067e\u0627\u0646\u06cc\u0627","AU":"\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627","EE":"\u0627\u0633\u062a\u0648\u0646\u06cc","IL":"\u0627\u0633\u0631\u0627\u0626\u06cc\u0644","SK":"\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc","SI":"\u0627\u0633\u0644\u0648\u0648\u0646\u06cc","SZ":"\u0627\u0633\u0648\u0627\u062a\u06cc\u0646\u06cc","ZA":"\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc","AF":"\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646","EC":"\u0627\u06a9\u0648\u0627\u062f\u0648\u0631","DZ":"\u0627\u0644\u062c\u0632\u0627\u06cc\u0631","SV":"\u0627\u0644\u0633\u0627\u0644\u0648\u0627\u062f\u0648\u0631","AE":"\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc","ID":"\u0627\u0646\u062f\u0648\u0646\u0632\u06cc","UA":"\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646","UG":"\u0627\u0648\u06af\u0627\u0646\u062f\u0627","US":"\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647","IT":"\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627","IR":"\u0627\u06cc\u0631\u0627\u0646","IE":"\u0627\u06cc\u0631\u0644\u0646\u062f","IS":"\u0627\u06cc\u0633\u0644\u0646\u062f","BB":"\u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633","BS":"\u0628\u0627\u0647\u0627\u0645\u0627","BH":"\u0628\u062d\u0631\u06cc\u0646","BR":"\u0628\u0631\u0632\u06cc\u0644","BM":"\u0628\u0631\u0645\u0648\u062f\u0627","BN":"\u0628\u0631\u0648\u0646\u0626\u06cc","GB":"\u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627","BY":"\u0628\u0644\u0627\u0631\u0648\u0633","BE":"\u0628\u0644\u0698\u06cc\u06a9","BG":"\u0628\u0644\u063a\u0627\u0631\u0633\u062a\u0627\u0646","BZ":"\u0628\u0644\u06cc\u0632","BD":"\u0628\u0646\u06af\u0644\u0627\u062f\u0634","BJ":"\u0628\u0646\u06cc\u0646","BT":"\u0628\u0648\u062a\u0627\u0646","BW":"\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627","BF":"\u0628\u0648\u0631\u06a9\u06cc\u0646\u0627\u0641\u0627\u0633\u0648","BI":"\u0628\u0648\u0631\u0648\u0646\u062f\u06cc","BA":"\u0628\u0648\u0633\u0646\u06cc \u0648 \u0647\u0631\u0632\u06af\u0648\u06cc\u0646","BO":"\u0628\u0648\u0644\u06cc\u0648\u06cc","PG":"\u067e\u0627\u067e\u0648\u0627 \u06af\u06cc\u0646\u0647\u0654 \u0646\u0648","PY":"\u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647","PK":"\u067e\u0627\u06a9\u0633\u062a\u0627\u0646","PW":"\u067e\u0627\u0644\u0627\u0626\u0648","PA":"\u067e\u0627\u0646\u0627\u0645\u0627","PT":"\u067e\u0631\u062a\u063a\u0627\u0644","PE":"\u067e\u0631\u0648","PF":"\u067e\u0644\u06cc\u200c\u0646\u0632\u06cc \u0641\u0631\u0627\u0646\u0633\u0647","PR":"\u067e\u0648\u0631\u062a\u0648\u0631\u06cc\u06a9\u0648","TJ":"\u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646","TZ":"\u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627","TH":"\u062a\u0627\u06cc\u0644\u0646\u062f","TW":"\u062a\u0627\u06cc\u0648\u0627\u0646","TM":"\u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646","TR":"\u062a\u0631\u06a9\u06cc\u0647","TT":"\u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648","TK":"\u062a\u0648\u06a9\u0644\u0627\u0626\u0648","TG":"\u062a\u0648\u06af\u0648","TN":"\u062a\u0648\u0646\u0633","TO":"\u062a\u0648\u0646\u06af\u0627","TV":"\u062a\u0648\u0648\u0627\u0644\u0648","TL":"\u062a\u06cc\u0645\u0648\u0631-\u0644\u0633\u062a\u0647","JM":"\u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627","GI":"\u062c\u0628\u0644\u200c\u0627\u0644\u0637\u0627\u0631\u0642","JE":"\u062c\u0631\u0632\u06cc","AX":"\u062c\u0632\u0627\u06cc\u0631 \u0622\u0644\u0627\u0646\u062f","PN":"\u062c\u0632\u0627\u06cc\u0631 \u067e\u06cc\u062a\u200c\u06a9\u0631\u0646","TC":"\u062c\u0632\u0627\u06cc\u0631 \u062a\u0648\u0631\u06a9\u0633 \u0648 \u06a9\u0627\u06cc\u06a9\u0648\u0633","UM":"\u062c\u0632\u0627\u06cc\u0631 \u062f\u0648\u0631\u0627\u0641\u062a\u0627\u062f\u0647\u0654 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647","SB":"\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646","FO":"\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0631\u0648","FK":"\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f","BQ":"\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628 \u0647\u0644\u0646\u062f","CK":"\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9","CC":"\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633","KY":"\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646","MH":"\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644","MP":"\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc","VI":"\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647","VG":"\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627","BV":"\u062c\u0632\u06cc\u0631\u0647\u0654 \u0628\u0648\u0648\u0647","CX":"\u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633","IM":"\u062c\u0632\u06cc\u0631\u0647\u0654 \u0645\u0646","NF":"\u062c\u0632\u06cc\u0631\u0647\u0654 \u0646\u0648\u0631\u0641\u0648\u0644\u06a9","AZ":"\u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646","CF":"\u062c\u0645\u0647\u0648\u0631\u06cc \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc","DO":"\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646","AQ":"\u062c\u0646\u0648\u0628\u06af\u0627\u0646","GS":"\u062c\u0648\u0631\u062c\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0627\u0646\u062f\u0648\u06cc\u0686 \u062c\u0646\u0648\u0628\u06cc","DJ":"\u062c\u06cc\u0628\u0648\u062a\u06cc","TD":"\u0686\u0627\u062f","CZ":"\u0686\u06a9","CN":"\u0686\u06cc\u0646","DK":"\u062f\u0627\u0646\u0645\u0627\u0631\u06a9","DM":"\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627","RE":"\u0631\u0626\u0648\u0646\u06cc\u0648\u0646","RW":"\u0631\u0648\u0627\u0646\u062f\u0627","RU":"\u0631\u0648\u0633\u06cc\u0647","RO":"\u0631\u0648\u0645\u0627\u0646\u06cc","ZM":"\u0632\u0627\u0645\u0628\u06cc\u0627","ZW":"\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647","JP":"\u0698\u0627\u067e\u0646","ST":"\u0633\u0627\u0626\u0648\u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e","CI":"\u0633\u0627\u062d\u0644 \u0639\u0627\u062c","WS":"\u0633\u0627\u0645\u0648\u0622","AS":"\u0633\u0627\u0645\u0648\u0622\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627","SM":"\u0633\u0627\u0646\u200c\u0645\u0627\u0631\u06cc\u0646\u0648","TF":"\u0633\u0631\u0632\u0645\u06cc\u0646\u200c\u0647\u0627\u06cc \u062c\u0646\u0648\u0628 \u0641\u0631\u0627\u0646\u0633\u0647","PS":"\u0633\u0631\u0632\u0645\u06cc\u0646\u200c\u0647\u0627\u06cc \u0641\u0644\u0633\u0637\u06cc\u0646\u06cc","LK":"\u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627","BL":"\u0633\u0646 \u0628\u0627\u0631\u062a\u0644\u0645\u06cc","PM":"\u0633\u0646 \u067e\u06cc\u0631 \u0648 \u0645\u06cc\u06a9\u0644\u0646","KN":"\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u0648\u06cc\u0633","LC":"\u0633\u0646\u062a \u0644\u0648\u0633\u06cc\u0627","SX":"\u0633\u0646\u062a \u0645\u0627\u0631\u062a\u0646","MF":"\u0633\u0646\u062a \u0645\u0627\u0631\u062a\u06cc\u0646","VC":"\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u0646\u0627\u062f\u06cc\u0646","SH":"\u0633\u0646\u062a \u0647\u0644\u0646","SG":"\u0633\u0646\u06af\u0627\u067e\u0648\u0631","SN":"\u0633\u0646\u06af\u0627\u0644","SJ":"\u0633\u0648\u0627\u0644\u0628\u0627\u0631\u062f \u0648 \u06cc\u0627\u0646 \u0645\u0627\u06cc\u0646","SE":"\u0633\u0648\u0626\u062f","CH":"\u0633\u0648\u0626\u06cc\u0633","SD":"\u0633\u0648\u062f\u0627\u0646","SS":"\u0633\u0648\u062f\u0627\u0646 \u062c\u0646\u0648\u0628\u06cc","SR":"\u0633\u0648\u0631\u06cc\u0646\u0627\u0645","SY":"\u0633\u0648\u0631\u06cc\u0647","SO":"\u0633\u0648\u0645\u0627\u0644\u06cc","SL":"\u0633\u06cc\u0631\u0627\u0644\u0626\u0648\u0646","SC":"\u0633\u06cc\u0634\u0644","CL":"\u0634\u06cc\u0644\u06cc","EH":"\u0635\u062d\u0631\u0627\u06cc \u063a\u0631\u0628\u06cc","RS":"\u0635\u0631\u0628\u0633\u062a\u0627\u0646","IQ":"\u0639\u0631\u0627\u0642","SA":"\u0639\u0631\u0628\u0633\u062a\u0627\u0646 \u0633\u0639\u0648\u062f\u06cc","OM":"\u0639\u0645\u0627\u0646","GH":"\u063a\u0646\u0627","FR":"\u0641\u0631\u0627\u0646\u0633\u0647","FI":"\u0641\u0646\u0644\u0627\u0646\u062f","FJ":"\u0641\u06cc\u062c\u06cc","PH":"\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646","CY":"\u0642\u0628\u0631\u0633","KG":"\u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646","KZ":"\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646","QA":"\u0642\u0637\u0631","IO":"\u0642\u0644\u0645\u0631\u0648 \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 \u062f\u0631 \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f","CR":"\u06a9\u0627\u0633\u062a\u0627\u0631\u06cc\u06a9\u0627","NC":"\u06a9\u0627\u0644\u062f\u0648\u0646\u06cc\u0627\u06cc \u062c\u062f\u06cc\u062f","KH":"\u06a9\u0627\u0645\u0628\u0648\u062c","CM":"\u06a9\u0627\u0645\u0631\u0648\u0646","CA":"\u06a9\u0627\u0646\u0627\u062f\u0627","HR":"\u06a9\u0631\u0648\u0627\u0633\u06cc","KR":"\u06a9\u0631\u0647\u0654 \u062c\u0646\u0648\u0628\u06cc","KP":"\u06a9\u0631\u0647\u0654 \u0634\u0645\u0627\u0644\u06cc","CO":"\u06a9\u0644\u0645\u0628\u06cc\u0627","CG":"\u06a9\u0646\u06af\u0648 - \u0628\u0631\u0627\u0632\u0648\u06cc\u0644","CD":"\u06a9\u0646\u06af\u0648 - \u06a9\u06cc\u0646\u0634\u0627\u0633\u0627","KE":"\u06a9\u0646\u06cc\u0627","CU":"\u06a9\u0648\u0628\u0627","CW":"\u06a9\u0648\u0631\u0627\u0633\u0627\u0626\u0648","KM":"\u06a9\u0648\u0645\u0648\u0631","KW":"\u06a9\u0648\u06cc\u062a","CV":"\u06a9\u06cc\u067e\u200c\u0648\u0631\u062f","KI":"\u06a9\u06cc\u0631\u06cc\u0628\u0627\u062a\u06cc","GA":"\u06af\u0627\u0628\u0646","GM":"\u06af\u0627\u0645\u0628\u06cc\u0627","GE":"\u06af\u0631\u062c\u0633\u062a\u0627\u0646","GD":"\u06af\u0631\u0646\u0627\u062f\u0627","GG":"\u06af\u0631\u0646\u0632\u06cc","GL":"\u06af\u0631\u06cc\u0646\u0644\u0646\u062f","GT":"\u06af\u0648\u0627\u062a\u0645\u0627\u0644\u0627","GP":"\u06af\u0648\u0627\u062f\u0644\u0648\u067e","GU":"\u06af\u0648\u0627\u0645","GY":"\u06af\u0648\u06cc\u0627\u0646","GF":"\u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647","GN":"\u06af\u06cc\u0646\u0647","GQ":"\u06af\u06cc\u0646\u0647\u0654 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc","GW":"\u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648","LA":"\u0644\u0627\u0626\u0648\u0633","LB":"\u0644\u0628\u0646\u0627\u0646","LV":"\u0644\u062a\u0648\u0646\u06cc","LS":"\u0644\u0633\u0648\u062a\u0648","LU":"\u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af","PL":"\u0644\u0647\u0633\u062a\u0627\u0646","LR":"\u0644\u06cc\u0628\u0631\u06cc\u0627","LY":"\u0644\u06cc\u0628\u06cc","LT":"\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc","LI":"\u0644\u06cc\u062e\u062a\u0646\u200c\u0627\u0634\u062a\u0627\u06cc\u0646","MG":"\u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631","MQ":"\u0645\u0627\u0631\u062a\u06cc\u0646\u06cc\u06a9","MO":"\u0645\u0627\u06a9\u0627\u0626\u0648\u060c \u0645\u0646\u0637\u0642\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u0627\u062f\u0627\u0631\u06cc \u0686\u06cc\u0646","MW":"\u0645\u0627\u0644\u0627\u0648\u06cc","MT":"\u0645\u0627\u0644\u062a","MV":"\u0645\u0627\u0644\u062f\u06cc\u0648","MY":"\u0645\u0627\u0644\u0632\u06cc","ML":"\u0645\u0627\u0644\u06cc","YT":"\u0645\u0627\u06cc\u0648\u062a","HU":"\u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646","MA":"\u0645\u0631\u0627\u06a9\u0634","EG":"\u0645\u0635\u0631","MN":"\u0645\u063a\u0648\u0644\u0633\u062a\u0627\u0646","MK":"\u0645\u0642\u062f\u0648\u0646\u06cc\u0647\u0654 \u0634\u0645\u0627\u0644\u06cc","MX":"\u0645\u06a9\u0632\u06cc\u06a9","MR":"\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc","MU":"\u0645\u0648\u0631\u06cc\u0633","MZ":"\u0645\u0648\u0632\u0627\u0645\u0628\u06cc\u06a9","MD":"\u0645\u0648\u0644\u062f\u0627\u0648\u06cc","MC":"\u0645\u0648\u0646\u0627\u06a9\u0648","MS":"\u0645\u0648\u0646\u062a\u200c\u0633\u0631\u0627\u062a","ME":"\u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648","MM":"\u0645\u06cc\u0627\u0646\u0645\u0627\u0631 (\u0628\u0631\u0645\u0647)","FM":"\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc","NR":"\u0646\u0627\u0626\u0648\u0631\u0648","NA":"\u0646\u0627\u0645\u06cc\u0628\u06cc\u0627","NP":"\u0646\u067e\u0627\u0644","NO":"\u0646\u0631\u0648\u0698","NE":"\u0646\u06cc\u062c\u0631","NG":"\u0646\u06cc\u062c\u0631\u06cc\u0647","NI":"\u0646\u06cc\u06a9\u0627\u0631\u0627\u06af\u0648\u0626\u0647","NU":"\u0646\u06cc\u0648\u0626\u0647","NZ":"\u0646\u06cc\u0648\u0632\u06cc\u0644\u0646\u062f","VA":"\u0648\u0627\u062a\u06cc\u06a9\u0627\u0646","WF":"\u0648\u0627\u0644\u06cc\u0633 \u0648 \u0641\u0648\u062a\u0648\u0646\u0627","VU":"\u0648\u0627\u0646\u0648\u0627\u062a\u0648","VE":"\u0648\u0646\u0632\u0648\u0626\u0644\u0627","VN":"\u0648\u06cc\u062a\u0646\u0627\u0645","HT":"\u0647\u0627\u0626\u06cc\u062a\u06cc","HM":"\u0647\u0631\u062f \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0645\u06a9\u200c\u062f\u0648\u0646\u0627\u0644\u062f","NL":"\u0647\u0644\u0646\u062f","IN":"\u0647\u0646\u062f","HN":"\u0647\u0646\u062f\u0648\u0631\u0627\u0633","HK":"\u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u060c \u0645\u0646\u0637\u0642\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u0627\u062f\u0627\u0631\u06cc \u0686\u06cc\u0646","YE":"\u06cc\u0645\u0646","GR":"\u06cc\u0648\u0646\u0627\u0646"} \ No newline at end of file From fb711d58f185c5f43cf48d3b14f3bd5208d1793d Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 22:44:25 -0800 Subject: [PATCH 21/25] Updated bot detection library. --- package.json | 2 +- pages/api/collect.js | 6 +++--- yarn.lock | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 485cc221..d2cda0ab 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "formik": "^2.2.6", "immer": "^8.0.1", "is-localhost-ip": "^1.4.0", - "isbot-fast": "^1.2.0", + "isbot": "^3.0.25", "jose": "2.0.3", "maxmind": "^4.3.1", "moment-timezone": "^0.5.32", diff --git a/pages/api/collect.js b/pages/api/collect.js index a6140169..98ab54e3 100644 --- a/pages/api/collect.js +++ b/pages/api/collect.js @@ -1,14 +1,14 @@ -import isBot from 'isbot-fast'; +import isbot from 'isbot'; import { savePageView, saveEvent } from 'lib/queries'; import { useCors, useSession } from 'lib/middleware'; +import { getIpAddress } from 'lib/request'; import { ok, badRequest } from 'lib/response'; import { createToken } from 'lib/crypto'; -import { getIpAddress } from '../../lib/request'; export default async (req, res) => { await useCors(req, res); - if (isBot(req.headers['user-agent'])) { + if (isbot(req.headers['user-agent'])) { return ok(res); } diff --git a/yarn.lock b/yarn.lock index 3d952c2c..4ecd9b4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4414,10 +4414,10 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbot-fast@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/isbot-fast/-/isbot-fast-1.2.0.tgz#ef0ef1d5db34eb60777250ae26fceb72b94153e2" - integrity sha512-twjuQzy2gKMDVfKGQyQqrx6Uy4opu/fiVUTTpdqtFsd7OQijIp5oXvb27n5EemYXaijh5fomndJt/SPRLsEdSg== +isbot@^3.0.25: + version "3.0.25" + resolved "https://registry.yarnpkg.com/isbot/-/isbot-3.0.25.tgz#56c9fe4134016ae84204738b59c0364e7a801f7c" + integrity sha512-8mLxO0arSU+JYfcJBbwROCzVhqAdqJSMmsyMDVj4dd7enEevjrNCXjoG0oSkIfZ4icPHuxocO1z3k1oDoI/rbw== isexe@^2.0.0: version "2.0.0" From a03e42e0d99a69fce8635b91fb1931ba1f1bc0b2 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 22:53:56 -0800 Subject: [PATCH 22/25] Added font for Chinese traditional. --- components/settings/LanguageButton.js | 8 +++++++- pages/_app.js | 1 + styles/index.css | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/components/settings/LanguageButton.js b/components/settings/LanguageButton.js index 14a1aaf1..1a9bd33b 100644 --- a/components/settings/LanguageButton.js +++ b/components/settings/LanguageButton.js @@ -16,12 +16,18 @@ export default function LanguageButton() { return ( <> - {(locale === 'zh-CN' || locale === 'zh-TW') && ( + {locale === 'zh-CN' && ( )} + {locale === 'zh-TW' && ( + + )} {locale === 'ja-JP' && ( + diff --git a/styles/index.css b/styles/index.css index de6f9ce8..a15ce562 100644 --- a/styles/index.css +++ b/styles/index.css @@ -22,7 +22,7 @@ body { } .zh-TW { - font-family: 'Noto Sans SC', sans-serif !important; + font-family: 'Noto Sans TC', sans-serif !important; } .ja-JP { From 7e302edccf7194af79db83695cf4872ead3eca60 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 22:58:58 -0800 Subject: [PATCH 23/25] Bump version 1.15 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d2cda0ab..42363725 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "1.14.0", + "version": "1.15.0", "description": "A simple, fast, website analytics alternative to Google Analytics. ", "author": "Mike Cao ", "license": "MIT", From efd53f8a03d1bfcf0ca7d4aa0247bf82cb536ddb Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 23:20:23 -0800 Subject: [PATCH 24/25] Update packages. --- package.json | 6 +- yarn.lock | 354 +++++++++++---------------------------------------- 2 files changed, 74 insertions(+), 286 deletions(-) diff --git a/package.json b/package.json index 42363725..dc936137 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ } }, "dependencies": { - "@prisma/client": "2.17.0", + "@prisma/client": "2.18.0", "@reduxjs/toolkit": "^1.5.0", "bcrypt": "^5.0.0", "chalk": "^4.1.0", @@ -75,7 +75,7 @@ "jose": "2.0.3", "maxmind": "^4.3.1", "moment-timezone": "^0.5.32", - "next": "^10.0.7", + "next": "^10.0.8", "prompts": "2.4.0", "prop-types": "^15.7.2", "react": "^17.0.1", @@ -98,7 +98,7 @@ }, "devDependencies": { "@formatjs/cli": "^2.13.16", - "@prisma/cli": "2.17.0", + "@prisma/cli": "2.18.0", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-node-resolve": "^11.1.1", "@rollup/plugin-replace": "^2.3.4", diff --git a/yarn.lock b/yarn.lock index 4ecd9b4e..a6196584 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1260,20 +1260,20 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== -"@next/env@10.0.7": - version "10.0.7" - resolved "https://registry.yarnpkg.com/@next/env/-/env-10.0.7.tgz#7b3e87a9029ca37491e2ec25c27593f0906725f9" - integrity sha512-/vnz2SL/mk3Tei58WfRtVnvz5xHmAqcBmZL5sTBEy1CZG6OtZGNx0qAFCjtVkeJ5m1Bh4Ut+WFh/RF333wx8Sg== +"@next/env@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@next/env/-/env-10.0.8.tgz#3306c9de20ef187438affbafce0ef966c9e43c3b" + integrity sha512-vWdxAHD6gJn52tN5bxj1VoRgu5lNtRPc/HyYf7V014k2GZ9eKhqoFQGSSMNGHB7WgdUxLVw75+o9Ek9ClOOAjw== -"@next/polyfill-module@10.0.7": - version "10.0.7" - resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.0.7.tgz#ec45ec1f28f47beed15ed67dffc907edd7143094" - integrity sha512-HxqzRpoSgmZP0kRIWwH+e0SgtAXqJ0VkYtwWcsQFED8+xF4Eqn+7Twyp4uE6hutC8gr8IFSFqH+DEYhRtg1ltQ== +"@next/polyfill-module@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@next/polyfill-module/-/polyfill-module-10.0.8.tgz#1d033f390389591f227499e286911e3db14c484b" + integrity sha512-JCUGB4/SKQ4LXniv7LKGrpW+W2DGH/CLkrgXgSo/Ze+EJdMDLxC/VFhiuW+TgAaAWLE4gryoswlZBNyHtkPGQA== -"@next/react-dev-overlay@10.0.7": - version "10.0.7" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.0.7.tgz#5fe777011cab75ec09ad539ee61bb95ab5a2bdeb" - integrity sha512-yq71MDHVqN2N+IqOvZDiFsMpQrBcymrdpTx1ShhAADX7cWQvW4dhcIir4BbfrS10vS1LLz/3a8uKZkGdNoJj3w== +"@next/react-dev-overlay@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-10.0.8.tgz#a8e841647b74f9720cc60d3e3bd3da225ad12533" + integrity sha512-ygVsvkzYTYIuME+dUUSjCxbNjrJ+Up9Y+CrWEmSSk6HuxajUvrB9vN6RT+PeAzEOQ5er1sWxmVHVdPknQPVWyQ== dependencies: "@babel/code-frame" "7.12.11" anser "1.4.9" @@ -1287,10 +1287,10 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@10.0.7": - version "10.0.7" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.0.7.tgz#866ce30fe2f321e011255e81ed5d55eeda05894b" - integrity sha512-d/71vtQglv6m7sh4W1O9drc2hYti7UnAdEXfBLZAS354g2S80lvCRGIhbDrMx4w0rpShoxBIZboE2++LihAESg== +"@next/react-refresh-utils@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.0.8.tgz#6129d633e2c0a9b5760de002e998932f08c8baae" + integrity sha512-ZMO77Xs2ioGV/nZB4GRDHgsNT2jhOp+cZIh6c7wf0xw9o/1KoTWN8nxWzwU/laAtkoSS+E6YdhuR4Mw3Ar3CSg== "@nodelib/fs.scandir@2.1.3": version "2.1.3" @@ -1330,29 +1330,29 @@ resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== -"@prisma/cli@2.17.0": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@prisma/cli/-/cli-2.17.0.tgz#27a963afc5c846ce77c75c5436c82919bf21b72d" - integrity sha512-G2Hu15E+dLX/VSj8NJzDPXJzl/ji331w+T97EW5NDIDDoGakSVW7r3xcw9dR4uRnoGtttZ7JhBFjXg6bt1Mb0g== +"@prisma/cli@2.18.0": + version "2.18.0" + resolved "https://registry.yarnpkg.com/@prisma/cli/-/cli-2.18.0.tgz#33ba55977a198b7cdc2b1e11bd58e3280fd3c707" + integrity sha512-40524ZtDEivaHG4GcCXM8QOZSUg+wTj7tGe0HziXiejgFytY2vJVkEbaCKSY8fIxXso+nPKKKZYT5IJ3fSuXjg== dependencies: - "@prisma/engines" "2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223" + "@prisma/engines" "2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1" -"@prisma/client@2.17.0": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.17.0.tgz#e38462796c2e824504763416f5e3a7219d70652d" - integrity sha512-tzsBxtx9J1epOGCiBeXur1tEz81UIdWg2G/HpDmflXKcv/MJb+KCWSKSsEW49eXcvVwRgxNyxLoCO6CwvjQKcg== +"@prisma/client@2.18.0": + version "2.18.0" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.18.0.tgz#bff0a206f3caf7525583c703146f835dee0b5ad6" + integrity sha512-tRu0bdYNKIdWnFIbtgUmZyPgtDLV3AgwO8NYXirlbSn5poygbSaV87UfOBh1NmrvjS9EBP5dQv+bs62sVB84hA== dependencies: - "@prisma/engines-version" "2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223" + "@prisma/engines-version" "2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1" -"@prisma/engines-version@2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223": - version "2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223.tgz#9ae6ed4467a0febff8afaf216c1bb67225f51b84" - integrity sha512-9idv5blqPUlvUPVT48eVi3T0RS/NBklUcjrla3jWyV8AYfB2BdaG/Zci7H5ajyYLnfZZHG9tBpP0LcveQCFH8A== +"@prisma/engines-version@2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1": + version "2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1.tgz#c595c9d85ab2c67b67d0eb7bfbb0a3b05b41fdbe" + integrity sha512-+Eljsb1XItfq9B6vRTA1Oe4CQOGAxbsjtPAIORZwaU4Gt9RybnXapFlrQ8Mac89PXeSgcO4RnPSLEYhcd3kSVg== -"@prisma/engines@2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223": - version "2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.17.0-35.3c463ebd78b1d21d8fdacdd27899e280cf686223.tgz#08bc3633fd27fb1935805ef16c37802ed713db5b" - integrity sha512-FKjVD6NYbGiQhwas3hA2uMpNchz+Mf3tv5qA8Ci9cAkKHGqt3jWjjUAK9juVBqeOcv4OPimQYMrkRX6SvaxBjg== +"@prisma/engines@2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1": + version "2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.18.0-34.da6fafb57b24e0b61ca20960c64e2d41f9e8cff1.tgz#647a7e2735b08fe28425be135120bb54ea408256" + integrity sha512-Q5q5mQePRFSSGbd/14Ogq1RNkebbbwskiTbWsvrSq14t9Us0rC9Xsecd4mr4rEAy8Yd6sXEJW4czZ/88DGzz2w== "@reduxjs/toolkit@^1.5.0": version "1.5.0" @@ -1884,11 +1884,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -array-flatten@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-3.0.0.tgz#6428ca2ee52c7b823192ec600fa3ed2f157cd541" - integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA== - array-includes@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" @@ -2006,7 +2001,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== @@ -2029,15 +2024,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== -bl@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" @@ -2206,14 +2192,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.5.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.0.tgz#88afbd29fc89fa7b58e82b39206f31f2cf34feed" - integrity sha512-cd+5r1VLBwUqTrmnzW+D7ABkJUM6mr7uv1dv+6jRw4Rcl7tFIFHDqHPL98LhpGFn3dbAt3gtLxtrWp4m1kFrqg== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - bufferutil@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" @@ -2433,7 +2411,7 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -2457,22 +2435,6 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - colorette@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" @@ -2875,7 +2837,7 @@ debounce@^1.2.0: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== -debug@^2.2.0: +debug@2, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2916,20 +2878,6 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -3004,7 +2952,7 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -3150,7 +3098,7 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -3536,11 +3484,6 @@ execall@^2.0.0: dependencies: clone-regexp "^2.1.0" -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - ext@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" @@ -3745,11 +3688,6 @@ formik@^2.2.6: tiny-warning "^1.0.2" tslib "^1.10.0" -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" @@ -3813,6 +3751,13 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +get-orientation@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-orientation/-/get-orientation-1.1.2.tgz#20507928951814f8a91ded0a0e67b29dfab98947" + integrity sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ== + dependencies: + stream-parser "^0.3.1" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -3830,11 +3775,6 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= - glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" @@ -4086,11 +4026,6 @@ iconv-lite@0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -4240,11 +4175,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -4968,16 +4898,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -5009,7 +4929,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -5044,11 +4964,6 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -5093,11 +5008,6 @@ nanoid@^3.1.16: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.18.tgz#0680db22ab01c372e89209f5d18283d98de3e96d" integrity sha512-rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA== -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - native-url@0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" @@ -5124,17 +5034,17 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -next@^10.0.7: - version "10.0.7" - resolved "https://registry.yarnpkg.com/next/-/next-10.0.7.tgz#442f8e1da7454de33b0bbcc1ce5684b923597ee6" - integrity sha512-We0utmwwfkvO12eLyUZd3tX9VLDE3FPpOaHpH3kqKdUTxJzUKt8FLBXCTm0mwsTKW5XColWG8mJvz2OLu3+3QA== +next@^10.0.8: + version "10.0.8" + resolved "https://registry.yarnpkg.com/next/-/next-10.0.8.tgz#a2232c11ffad974d67f3d572b8db2acaa5ddedd7" + integrity sha512-iDY65ce4Prn/9EnQpJGFMb5QJvtGWzZPk6KQqT7vDNu4D+jkivkk9NaAs/k1hR73pXdJHmhHer1s0YxLSghAKQ== dependencies: "@babel/runtime" "7.12.5" "@hapi/accept" "5.0.1" - "@next/env" "10.0.7" - "@next/polyfill-module" "10.0.7" - "@next/react-dev-overlay" "10.0.7" - "@next/react-refresh-utils" "10.0.7" + "@next/env" "10.0.8" + "@next/polyfill-module" "10.0.8" + "@next/react-dev-overlay" "10.0.8" + "@next/react-refresh-utils" "10.0.8" "@opentelemetry/api" "0.14.0" ast-types "0.13.2" browserslist "4.16.1" @@ -5146,6 +5056,7 @@ next@^10.0.7: cssnano-simple "1.2.2" etag "1.8.1" find-cache-dir "3.3.1" + get-orientation "1.1.2" jest-worker "24.9.0" native-url "0.3.4" node-fetch "2.6.1" @@ -5164,23 +5075,14 @@ next@^10.0.7: styled-jsx "3.3.2" use-subscription "1.5.1" vm-browserify "1.1.2" - watchpack "2.0.0-beta.13" - optionalDependencies: - sharp "0.26.3" + watchpack "2.1.1" nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-abi@^2.7.0: - version "2.19.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" - integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== - dependencies: - semver "^5.4.1" - -node-addon-api@^3.0.0, node-addon-api@^3.0.2: +node-addon-api@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== @@ -5262,11 +5164,6 @@ node-releases@^1.1.69: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= - nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -5353,7 +5250,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -6108,27 +6005,6 @@ postcss@^7.0.35: source-map "^0.6.1" supports-color "^6.1.0" -prebuild-install@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.0.tgz#669022bcde57c710a869e39c5ca6bf9cd207f316" - integrity sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw== - dependencies: - detect-libc "^1.0.3" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^2.7.0" - noop-logger "^0.1.1" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^3.0.3" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - which-pm-runs "^1.0.0" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -6462,7 +6338,7 @@ readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.3, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -6847,22 +6723,6 @@ shallow-equal@^1.2.1: resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== -sharp@0.26.3: - version "0.26.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.26.3.tgz#9de8577a986b22538e6e12ced1f7e8a53f9728de" - integrity sha512-NdEJ9S6AMr8Px0zgtFo1TJjMK/ROMU92MkDtYn2BBrDjIx3YfH9TUyGdzPC+I/L619GeYQc690Vbaxc5FPCCWg== - dependencies: - array-flatten "^3.0.0" - color "^3.1.3" - detect-libc "^1.0.3" - node-addon-api "^3.0.2" - npmlog "^4.1.2" - prebuild-install "^6.0.0" - semver "^7.3.2" - simple-get "^4.0.0" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6905,36 +6765,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-get@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.0.tgz#73fa628278d21de83dadd5512d2cc1f4872bd675" - integrity sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -7099,6 +6929,13 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-parser@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M= + dependencies: + debug "2" + string-argv@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" @@ -7458,48 +7295,6 @@ table@^6.0.7: slice-ansi "^4.0.0" string-width "^4.2.0" -tar-fs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" - integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" - integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tar@^4.4.2: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -7658,13 +7453,6 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -7935,10 +7723,10 @@ vue-eslint-parser@~7.1.0: esquery "^1.0.1" lodash "^4.17.15" -watchpack@2.0.0-beta.13: - version "2.0.0-beta.13" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" - integrity sha512-ZEFq2mx/k5qgQwgi6NOm+2ImICb8ngAkA/rZ6oyXZ7SgPn3pncf+nfhYTCrs3lmHwOxnPtGLTOuFLfpSMh1VMA== +watchpack@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" + integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" From 247afc8c33ecb678a96d37e58411ac2425b025ef Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 12 Mar 2021 23:45:19 -0800 Subject: [PATCH 25/25] Truncate URL lengths. --- lib/constants.js | 2 ++ lib/queries.js | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/constants.js b/lib/constants.js index 95421b22..47603249 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -86,6 +86,8 @@ export const DESKTOP_SCREEN_WIDTH = 1920; export const LAPTOP_SCREEN_WIDTH = 1024; export const MOBILE_SCREEN_WIDTH = 479; +export const URL_LENGTH = 500; + export const DESKTOP_OS = [ 'Windows 3.11', 'Windows 95', diff --git a/lib/queries.js b/lib/queries.js index 48f9f265..5cdba372 100644 --- a/lib/queries.js +++ b/lib/queries.js @@ -1,7 +1,13 @@ import moment from 'moment-timezone'; import prisma from 'lib/db'; import { subMinutes } from 'date-fns'; -import { MYSQL, POSTGRESQL, MYSQL_DATE_FORMATS, POSTGRESQL_DATE_FORMATS } from 'lib/constants'; +import { + MYSQL, + POSTGRESQL, + MYSQL_DATE_FORMATS, + POSTGRESQL_DATE_FORMATS, + URL_LENGTH, +} from 'lib/constants'; export function getDatabase() { const type = @@ -190,8 +196,8 @@ export async function savePageView(website_id, session_id, url, referrer) { session_id, }, }, - url, - referrer, + url: url.substr(0, URL_LENGTH), + referrer: referrer.substr(0, URL_LENGTH), }, }), ); @@ -211,7 +217,7 @@ export async function saveEvent(website_id, session_id, url, event_type, event_v session_id, }, }, - url, + url: url.substr(0, URL_LENGTH), event_type, event_value, },