From 1395b0503882520600e4823908441aa9f75dbaa1 Mon Sep 17 00:00:00 2001 From: Josh Moore Date: Thu, 17 Mar 2022 13:51:24 -0600 Subject: [PATCH 01/34] Added Docker updating notes --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 98fe2150..5a72e3c8 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,13 @@ npm install npm run build ``` +To update the Docker image, simply pull the new images and rebuild: + +```bash +docker-compose pull +docker-compose up --force-recreate +``` + ## License MIT From 0bd589df65a0b7adc6aeda35d0ce83128088fdf9 Mon Sep 17 00:00:00 2001 From: RikoDEV <18230443+RikoDEV@users.noreply.github.com> Date: Fri, 18 Mar 2022 16:55:45 +0100 Subject: [PATCH 02/34] Update pl-PL.json --- lang/pl-PL.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lang/pl-PL.json b/lang/pl-PL.json index 5856ac9c..32798238 100644 --- a/lang/pl-PL.json +++ b/lang/pl-PL.json @@ -5,7 +5,7 @@ "label.administrator": "Administrator", "label.all": "Wszystkie", "label.all-events": "Wszystkie wydarzenia", - "label.all-time": "All time", + "label.all-time": "Cały czas", "label.all-websites": "Wszystkie witryny", "label.back": "Powrót", "label.cancel": "Anuluj", @@ -14,7 +14,7 @@ "label.copy-to-clipboard": "Skopiuj do schowka", "label.current-password": "Aktualne hasło", "label.custom-range": "Zakres niestandardowy", - "label.dashboard": "Dashboard", + "label.dashboard": "Panel", "label.date-range": "Zakres dat", "label.default-date-range": "Domyślny zakres dat", "label.delete": "Usuń", @@ -28,7 +28,7 @@ "label.enable-share-url": "Włącz udostępnianie adresu URL", "label.invalid": "Nieprawidłowy", "label.invalid-domain": "Nieprawidłowa witryna", - "label.language": "Language", + "label.language": "Język", "label.last-days": "Ostatnie {x} dni", "label.last-hours": "Ostatnie {x} godzin", "label.logged-in-as": "Zalogowano jako {username}", @@ -37,7 +37,7 @@ "label.more": "Więcej", "label.name": "Nazwa", "label.new-password": "Nowe hasło", - "label.owner": "Owner", + "label.owner": "Właściciel", "label.password": "Hasło", "label.passwords-dont-match": "Hasła się nie zgadzają", "label.profile": "Profil", @@ -46,12 +46,12 @@ "label.refresh": "Odśwież", "label.required": "Wymagany", "label.reset": "Zresetuj", - "label.reset-website": "Reset statistics", + "label.reset-website": "Zresetuj statystyki", "label.save": "Zapisz", "label.settings": "Ustawienia", "label.share-url": "Udostępnij adres URL", "label.single-day": "W tym dniu", - "label.theme": "Theme", + "label.theme": "Motyw", "label.this-month": "W tym miesiącu", "label.this-week": "W tym tygodniu", "label.this-year": "W tym roku", @@ -64,7 +64,7 @@ "label.websites": "Witryny", "message.active-users": "{x} aktualnie {x, plural, one {odwiedzający} other {odwiedzających}}", "message.confirm-delete": "Czy na pewno chcesz usunąć {target}?", - "message.confirm-reset": "Are your sure you want to reset {target}'s statistics?", + "message.confirm-reset": "Czy na pewno chcesz zresetować statystyki {target}?", "message.copied": "Skopiowano!", "message.delete-warning": "Wszystkie powiązane dane również zostaną usunięte.", "message.failure": "Coś poszło nie tak.", @@ -78,10 +78,10 @@ "message.no-websites-configured": "Nie masz skonfigurowanych żadnych witryn internetowych.", "message.page-not-found": "Strona nie znaleziona.", "message.powered-by": "Obsługiwane przez {name}", - "message.reset-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.", + "message.reset-warning": "Wszystkie statystyki tej witryny zostaną usunięte, ale kod śledzenia pozostanie nienaruszony.", "message.save-success": "Zapisano pomyślnie.", "message.share-url": "To jest publicznie udostępniany adres URL dla {target}.", - "message.toggle-charts": "Toggle charts", + "message.toggle-charts": "Przełącz wykresy", "message.track-stats": "Aby śledzić statystyki dla {target}, umieść poniższy kod w sekcji {head} swojej witryny.", "message.type-delete": "Wpisz {delete} w polu poniżej, aby potwierdzić.", "message.type-reset": "Wpisz {reset} w polu poniżej, aby potwierdzić.", @@ -99,7 +99,7 @@ "metrics.filter.combined": "Połączone", "metrics.filter.domain-only": "Tylko domena", "metrics.filter.raw": "Surowe dane", - "metrics.languages": "Languages", + "metrics.languages": "Języki", "metrics.operating-systems": "System operacyjny", "metrics.page-views": "Wyświetlenia strony", "metrics.pages": "Strony", From 934914d2490f9924e505559d4cd6d641be6de76a Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 19:02:06 -0700 Subject: [PATCH 03/34] Cleaned up eslint config. --- .eslintrc.json | 3 +-- package.json | 3 --- yarn.lock | 22 +--------------------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index e5f0cc94..28e542bd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,7 +4,7 @@ "es2020": true, "node": true }, - "extends": ["eslint:recommended", "plugin:react/recommended", "prettier", "next"], + "extends": ["eslint:recommended", "plugin:prettier/recommended", "next"], "parserOptions": { "ecmaFeatures": { "jsx": true @@ -12,7 +12,6 @@ "ecmaVersion": 11, "sourceType": "module" }, - "plugins": ["react"], "rules": { "react/display-name": "off", "react/react-in-jsx-scope": "off", diff --git a/package.json b/package.json index 859be4d2..7ee5675d 100644 --- a/package.json +++ b/package.json @@ -105,10 +105,7 @@ "dotenv-cli": "^4.0.0", "eslint": "^7.32.0", "eslint-config-next": "^12.0.1", - "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-react": "^7.29.4", - "eslint-plugin-react-hooks": "^4.2.0", "extract-react-intl-messages": "^4.1.1", "husky": "^7.0.0", "lint-staged": "^11.0.0", diff --git a/yarn.lock b/yarn.lock index 3df31185..ea41b0d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3006,7 +3006,7 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.2.0, eslint-plugin-react-hooks@^4.3.0: +eslint-plugin-react-hooks@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== @@ -3031,26 +3031,6 @@ eslint-plugin-react@^7.27.0: semver "^6.3.0" string.prototype.matchall "^4.0.6" -eslint-plugin-react@^7.29.4: - version "7.29.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" - integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" From 281671b792eb6df3fa979ed8fc8b3d7b902cf738 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 19:02:23 -0700 Subject: [PATCH 04/34] Fixed XML error in Firefox. Renamed telemetry env var. --- scripts/postbuild.js | 2 +- tracker/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/postbuild.js b/scripts/postbuild.js index c992884b..6372bd65 100644 --- a/scripts/postbuild.js +++ b/scripts/postbuild.js @@ -2,7 +2,7 @@ require('dotenv').config(); const sendTelemetry = require('./telemetry'); async function run() { - if (!process.env.TELEMETRY_DISABLE) { + if (!process.env.DISABLE_TELEMETRY) { await sendTelemetry(); } } diff --git a/tracker/index.js b/tracker/index.js index 312632d9..a5012b71 100644 --- a/tracker/index.js +++ b/tracker/index.js @@ -48,7 +48,7 @@ import { removeTrailingSlash } from '../lib/url'; const post = (url, data, callback) => { const req = new XMLHttpRequest(); req.open('POST', url, true); - req.setRequestHeader('Content-Type', 'text/plain'); + req.setRequestHeader('Content-Type', 'application/json'); req.onreadystatechange = () => { if (req.readyState === 4) { From f24696de5aadbc26584068e6ec437788a633d2ee Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 19:17:23 -0700 Subject: [PATCH 05/34] Refactored localization files. --- hooks/useCountryNames.js | 4 ++-- hooks/useLanguageNames.js | 4 ++-- hooks/useLocale.js | 4 ++-- package.json | 2 +- public/{ => intl}/country/ar-SA.json | 0 public/{ => intl}/country/ca-ES.json | 0 public/{ => intl}/country/cs-CZ.json | 0 public/{ => intl}/country/da-DK.json | 0 public/{ => intl}/country/de-DE.json | 0 public/{ => intl}/country/el-GR.json | 0 public/{ => intl}/country/en-GB.json | 0 public/{ => intl}/country/en-US.json | 0 public/{ => intl}/country/es-MX.json | 0 public/{ => intl}/country/fa-IR.json | 0 public/{ => intl}/country/fi-FI.json | 0 public/{ => intl}/country/fo-FO.json | 0 public/{ => intl}/country/fr-FR.json | 0 public/{ => intl}/country/he-IL.json | 0 public/{ => intl}/country/hi-IN.json | 0 public/{ => intl}/country/hu-HU.json | 0 public/{ => intl}/country/id-ID.json | 0 public/{ => intl}/country/it-IT.json | 0 public/{ => intl}/country/ja-JP.json | 0 public/{ => intl}/country/ko-KR.json | 0 public/{ => intl}/country/lt-LT.json | 0 public/{ => intl}/country/mn-MN.json | 0 public/{ => intl}/country/ms-MY.json | 0 public/{ => intl}/country/nb-NO.json | 0 public/{ => intl}/country/nl-NL.json | 0 public/{ => intl}/country/pl-PL.json | 0 public/{ => intl}/country/pt-BR.json | 0 public/{ => intl}/country/pt-PT.json | 0 public/{ => intl}/country/ro-RO.json | 0 public/{ => intl}/country/ru-RU.json | 0 public/{ => intl}/country/sk-SK.json | 0 public/{ => intl}/country/sl-SI.json | 0 public/{ => intl}/country/sv-SE.json | 0 public/{ => intl}/country/ta-IN.json | 0 public/{ => intl}/country/tr-TR.json | 0 public/{ => intl}/country/uk-UA.json | 0 public/{ => intl}/country/ur-PK.json | 0 public/{ => intl}/country/vi-VN.json | 0 public/{ => intl}/country/zh-CN.json | 0 public/{ => intl}/country/zh-TW.json | 0 public/{ => intl}/language/ar-SA.json | 0 public/{ => intl}/language/ca-ES.json | 0 public/{ => intl}/language/cs-CZ.json | 0 public/{ => intl}/language/da-DK.json | 0 public/{ => intl}/language/de-DE.json | 0 public/{ => intl}/language/el-GR.json | 0 public/{ => intl}/language/en-GB.json | 0 public/{ => intl}/language/en-US.json | 0 public/{ => intl}/language/es-MX.json | 0 public/{ => intl}/language/fa-IR.json | 0 public/{ => intl}/language/fi-FI.json | 0 public/{ => intl}/language/fo-FO.json | 0 public/{ => intl}/language/fr-FR.json | 0 public/{ => intl}/language/he-IL.json | 0 public/{ => intl}/language/hi-IN.json | 0 public/{ => intl}/language/hu-HU.json | 0 public/{ => intl}/language/id-ID.json | 0 public/{ => intl}/language/it-IT.json | 0 public/{ => intl}/language/ja-JP.json | 0 public/{ => intl}/language/ko-KR.json | 0 public/{ => intl}/language/lt-LT.json | 0 public/{ => intl}/language/mn-MN.json | 0 public/{ => intl}/language/ms-MY.json | 0 public/{ => intl}/language/nb-NO.json | 0 public/{ => intl}/language/nl-NL.json | 0 public/{ => intl}/language/pl-PL.json | 0 public/{ => intl}/language/pt-BR.json | 0 public/{ => intl}/language/pt-PT.json | 0 public/{ => intl}/language/ro-RO.json | 0 public/{ => intl}/language/ru-RU.json | 0 public/{ => intl}/language/sk-SK.json | 0 public/{ => intl}/language/sl-SI.json | 0 public/{ => intl}/language/sv-SE.json | 0 public/{ => intl}/language/ta-IN.json | 0 public/{ => intl}/language/tr-TR.json | 0 public/{ => intl}/language/uk-UA.json | 0 public/{ => intl}/language/ur-PK.json | 0 public/{ => intl}/language/vi-VN.json | 0 public/{ => intl}/language/zh-CN.json | 0 public/{ => intl}/language/zh-TW.json | 0 public/{ => intl}/messages/ar-SA.json | 0 public/{ => intl}/messages/ca-ES.json | 0 public/{ => intl}/messages/cs-CZ.json | 0 public/{ => intl}/messages/da-DK.json | 0 public/{ => intl}/messages/de-DE.json | 0 public/{ => intl}/messages/el-GR.json | 0 public/{ => intl}/messages/en-GB.json | 0 public/{ => intl}/messages/en-US.json | 0 public/{ => intl}/messages/es-MX.json | 0 public/{ => intl}/messages/fa-IR.json | 0 public/{ => intl}/messages/fi-FI.json | 0 public/{ => intl}/messages/fo-FO.json | 0 public/{ => intl}/messages/fr-FR.json | 0 public/{ => intl}/messages/he-IL.json | 0 public/{ => intl}/messages/hi-IN.json | 0 public/{ => intl}/messages/hu-HU.json | 0 public/{ => intl}/messages/id-ID.json | 0 public/{ => intl}/messages/it-IT.json | 0 public/{ => intl}/messages/ja-JP.json | 0 public/{ => intl}/messages/ko-KR.json | 0 public/{ => intl}/messages/lt-LT.json | 0 public/{ => intl}/messages/mn-MN.json | 0 public/{ => intl}/messages/ms-MY.json | 0 public/{ => intl}/messages/nb-NO.json | 0 public/{ => intl}/messages/nl-NL.json | 0 public/{ => intl}/messages/pl-PL.json | 22 +++++++++++----------- public/{ => intl}/messages/pt-BR.json | 0 public/{ => intl}/messages/pt-PT.json | 0 public/{ => intl}/messages/ro-RO.json | 0 public/{ => intl}/messages/ru-RU.json | 0 public/{ => intl}/messages/sk-SK.json | 0 public/{ => intl}/messages/sl-SI.json | 0 public/{ => intl}/messages/sv-SE.json | 0 public/{ => intl}/messages/ta-IN.json | 0 public/{ => intl}/messages/tr-TR.json | 0 public/{ => intl}/messages/uk-UA.json | 0 public/{ => intl}/messages/ur-PK.json | 0 public/{ => intl}/messages/vi-VN.json | 0 public/{ => intl}/messages/zh-CN.json | 0 public/{ => intl}/messages/zh-TW.json | 0 124 files changed, 18 insertions(+), 18 deletions(-) rename public/{ => intl}/country/ar-SA.json (100%) rename public/{ => intl}/country/ca-ES.json (100%) rename public/{ => intl}/country/cs-CZ.json (100%) rename public/{ => intl}/country/da-DK.json (100%) rename public/{ => intl}/country/de-DE.json (100%) rename public/{ => intl}/country/el-GR.json (100%) rename public/{ => intl}/country/en-GB.json (100%) rename public/{ => intl}/country/en-US.json (100%) rename public/{ => intl}/country/es-MX.json (100%) rename public/{ => intl}/country/fa-IR.json (100%) rename public/{ => intl}/country/fi-FI.json (100%) rename public/{ => intl}/country/fo-FO.json (100%) rename public/{ => intl}/country/fr-FR.json (100%) rename public/{ => intl}/country/he-IL.json (100%) rename public/{ => intl}/country/hi-IN.json (100%) rename public/{ => intl}/country/hu-HU.json (100%) rename public/{ => intl}/country/id-ID.json (100%) rename public/{ => intl}/country/it-IT.json (100%) rename public/{ => intl}/country/ja-JP.json (100%) rename public/{ => intl}/country/ko-KR.json (100%) rename public/{ => intl}/country/lt-LT.json (100%) rename public/{ => intl}/country/mn-MN.json (100%) rename public/{ => intl}/country/ms-MY.json (100%) rename public/{ => intl}/country/nb-NO.json (100%) rename public/{ => intl}/country/nl-NL.json (100%) rename public/{ => intl}/country/pl-PL.json (100%) rename public/{ => intl}/country/pt-BR.json (100%) rename public/{ => intl}/country/pt-PT.json (100%) rename public/{ => intl}/country/ro-RO.json (100%) rename public/{ => intl}/country/ru-RU.json (100%) rename public/{ => intl}/country/sk-SK.json (100%) rename public/{ => intl}/country/sl-SI.json (100%) rename public/{ => intl}/country/sv-SE.json (100%) rename public/{ => intl}/country/ta-IN.json (100%) rename public/{ => intl}/country/tr-TR.json (100%) rename public/{ => intl}/country/uk-UA.json (100%) rename public/{ => intl}/country/ur-PK.json (100%) rename public/{ => intl}/country/vi-VN.json (100%) rename public/{ => intl}/country/zh-CN.json (100%) rename public/{ => intl}/country/zh-TW.json (100%) rename public/{ => intl}/language/ar-SA.json (100%) rename public/{ => intl}/language/ca-ES.json (100%) rename public/{ => intl}/language/cs-CZ.json (100%) rename public/{ => intl}/language/da-DK.json (100%) rename public/{ => intl}/language/de-DE.json (100%) rename public/{ => intl}/language/el-GR.json (100%) rename public/{ => intl}/language/en-GB.json (100%) rename public/{ => intl}/language/en-US.json (100%) rename public/{ => intl}/language/es-MX.json (100%) rename public/{ => intl}/language/fa-IR.json (100%) rename public/{ => intl}/language/fi-FI.json (100%) rename public/{ => intl}/language/fo-FO.json (100%) rename public/{ => intl}/language/fr-FR.json (100%) rename public/{ => intl}/language/he-IL.json (100%) rename public/{ => intl}/language/hi-IN.json (100%) rename public/{ => intl}/language/hu-HU.json (100%) rename public/{ => intl}/language/id-ID.json (100%) rename public/{ => intl}/language/it-IT.json (100%) rename public/{ => intl}/language/ja-JP.json (100%) rename public/{ => intl}/language/ko-KR.json (100%) rename public/{ => intl}/language/lt-LT.json (100%) rename public/{ => intl}/language/mn-MN.json (100%) rename public/{ => intl}/language/ms-MY.json (100%) rename public/{ => intl}/language/nb-NO.json (100%) rename public/{ => intl}/language/nl-NL.json (100%) rename public/{ => intl}/language/pl-PL.json (100%) rename public/{ => intl}/language/pt-BR.json (100%) rename public/{ => intl}/language/pt-PT.json (100%) rename public/{ => intl}/language/ro-RO.json (100%) rename public/{ => intl}/language/ru-RU.json (100%) rename public/{ => intl}/language/sk-SK.json (100%) rename public/{ => intl}/language/sl-SI.json (100%) rename public/{ => intl}/language/sv-SE.json (100%) rename public/{ => intl}/language/ta-IN.json (100%) rename public/{ => intl}/language/tr-TR.json (100%) rename public/{ => intl}/language/uk-UA.json (100%) rename public/{ => intl}/language/ur-PK.json (100%) rename public/{ => intl}/language/vi-VN.json (100%) rename public/{ => intl}/language/zh-CN.json (100%) rename public/{ => intl}/language/zh-TW.json (100%) rename public/{ => intl}/messages/ar-SA.json (100%) rename public/{ => intl}/messages/ca-ES.json (100%) rename public/{ => intl}/messages/cs-CZ.json (100%) rename public/{ => intl}/messages/da-DK.json (100%) rename public/{ => intl}/messages/de-DE.json (100%) rename public/{ => intl}/messages/el-GR.json (100%) rename public/{ => intl}/messages/en-GB.json (100%) rename public/{ => intl}/messages/en-US.json (100%) rename public/{ => intl}/messages/es-MX.json (100%) rename public/{ => intl}/messages/fa-IR.json (100%) rename public/{ => intl}/messages/fi-FI.json (100%) rename public/{ => intl}/messages/fo-FO.json (100%) rename public/{ => intl}/messages/fr-FR.json (100%) rename public/{ => intl}/messages/he-IL.json (100%) rename public/{ => intl}/messages/hi-IN.json (100%) rename public/{ => intl}/messages/hu-HU.json (100%) rename public/{ => intl}/messages/id-ID.json (100%) rename public/{ => intl}/messages/it-IT.json (100%) rename public/{ => intl}/messages/ja-JP.json (100%) rename public/{ => intl}/messages/ko-KR.json (100%) rename public/{ => intl}/messages/lt-LT.json (100%) rename public/{ => intl}/messages/mn-MN.json (100%) rename public/{ => intl}/messages/ms-MY.json (100%) rename public/{ => intl}/messages/nb-NO.json (100%) rename public/{ => intl}/messages/nl-NL.json (100%) rename public/{ => intl}/messages/pl-PL.json (96%) rename public/{ => intl}/messages/pt-BR.json (100%) rename public/{ => intl}/messages/pt-PT.json (100%) rename public/{ => intl}/messages/ro-RO.json (100%) rename public/{ => intl}/messages/ru-RU.json (100%) rename public/{ => intl}/messages/sk-SK.json (100%) rename public/{ => intl}/messages/sl-SI.json (100%) rename public/{ => intl}/messages/sv-SE.json (100%) rename public/{ => intl}/messages/ta-IN.json (100%) rename public/{ => intl}/messages/tr-TR.json (100%) rename public/{ => intl}/messages/uk-UA.json (100%) rename public/{ => intl}/messages/ur-PK.json (100%) rename public/{ => intl}/messages/vi-VN.json (100%) rename public/{ => intl}/messages/zh-CN.json (100%) rename public/{ => intl}/messages/zh-TW.json (100%) diff --git a/hooks/useCountryNames.js b/hooks/useCountryNames.js index e631aecd..6dce6cb7 100644 --- a/hooks/useCountryNames.js +++ b/hooks/useCountryNames.js @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import { get } from 'lib/web'; -import enUS from 'public/country/en-US.json'; +import enUS from 'public/intl/country/en-US.json'; const countryNames = { 'en-US': enUS, @@ -12,7 +12,7 @@ export default function useCountryNames(locale) { const { basePath } = useRouter(); async function loadData(locale) { - const { ok, data } = await get(`${basePath}/country/${locale}.json`); + const { ok, data } = await get(`${basePath}/intl/country/${locale}.json`); if (ok) { countryNames[locale] = data; diff --git a/hooks/useLanguageNames.js b/hooks/useLanguageNames.js index ef179185..2fc313f2 100644 --- a/hooks/useLanguageNames.js +++ b/hooks/useLanguageNames.js @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import { get } from 'lib/web'; -import enUS from 'public/language/en-US.json'; +import enUS from 'public/intl/language/en-US.json'; const languageNames = { 'en-US': enUS, @@ -12,7 +12,7 @@ export default function useLanguageNames(locale) { const { basePath } = useRouter(); async function loadData(locale) { - const { ok, data } = await get(`${basePath}/language/${locale}.json`); + const { ok, data } = await get(`${basePath}/intl/language/${locale}.json`); if (ok) { languageNames[locale] = data; diff --git a/hooks/useLocale.js b/hooks/useLocale.js index 2a878d89..fdce6d91 100644 --- a/hooks/useLocale.js +++ b/hooks/useLocale.js @@ -5,7 +5,7 @@ import { LOCALE_CONFIG } from 'lib/constants'; import { getDateLocale, getTextDirection } from 'lib/lang'; import useStore, { setLocale } from 'store/app'; import useForceUpdate from 'hooks/useForceUpdate'; -import enUS from 'public/messages/en-US.json'; +import enUS from 'public/intl/messages/en-US.json'; const messages = { 'en-US': enUS, @@ -21,7 +21,7 @@ export default function useLocale() { const dateLocale = getDateLocale(locale); async function loadMessages(locale) { - const { ok, data } = await get(`${basePath}/messages/${locale}.json`); + const { ok, data } = await get(`${basePath}/intl/messages/${locale}.json`); if (ok) { messages[locale] = data; diff --git a/package.json b/package.json index 7ee5675d..5ee12ac8 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "extract-lang": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json", "merge-lang": "node scripts/merge-lang.js", "format-lang": "node scripts/format-lang.js", - "compile-lang": "formatjs compile-folder --ast build public/messages", + "compile-lang": "formatjs compile-folder --ast build public/intl/messages", "check-lang": "node scripts/check-lang.js", "download-country-names": "node scripts/download-country-names.js", "download-language-names": "node scripts/download-language-names.js", diff --git a/public/country/ar-SA.json b/public/intl/country/ar-SA.json similarity index 100% rename from public/country/ar-SA.json rename to public/intl/country/ar-SA.json diff --git a/public/country/ca-ES.json b/public/intl/country/ca-ES.json similarity index 100% rename from public/country/ca-ES.json rename to public/intl/country/ca-ES.json diff --git a/public/country/cs-CZ.json b/public/intl/country/cs-CZ.json similarity index 100% rename from public/country/cs-CZ.json rename to public/intl/country/cs-CZ.json diff --git a/public/country/da-DK.json b/public/intl/country/da-DK.json similarity index 100% rename from public/country/da-DK.json rename to public/intl/country/da-DK.json diff --git a/public/country/de-DE.json b/public/intl/country/de-DE.json similarity index 100% rename from public/country/de-DE.json rename to public/intl/country/de-DE.json diff --git a/public/country/el-GR.json b/public/intl/country/el-GR.json similarity index 100% rename from public/country/el-GR.json rename to public/intl/country/el-GR.json diff --git a/public/country/en-GB.json b/public/intl/country/en-GB.json similarity index 100% rename from public/country/en-GB.json rename to public/intl/country/en-GB.json diff --git a/public/country/en-US.json b/public/intl/country/en-US.json similarity index 100% rename from public/country/en-US.json rename to public/intl/country/en-US.json diff --git a/public/country/es-MX.json b/public/intl/country/es-MX.json similarity index 100% rename from public/country/es-MX.json rename to public/intl/country/es-MX.json diff --git a/public/country/fa-IR.json b/public/intl/country/fa-IR.json similarity index 100% rename from public/country/fa-IR.json rename to public/intl/country/fa-IR.json diff --git a/public/country/fi-FI.json b/public/intl/country/fi-FI.json similarity index 100% rename from public/country/fi-FI.json rename to public/intl/country/fi-FI.json diff --git a/public/country/fo-FO.json b/public/intl/country/fo-FO.json similarity index 100% rename from public/country/fo-FO.json rename to public/intl/country/fo-FO.json diff --git a/public/country/fr-FR.json b/public/intl/country/fr-FR.json similarity index 100% rename from public/country/fr-FR.json rename to public/intl/country/fr-FR.json diff --git a/public/country/he-IL.json b/public/intl/country/he-IL.json similarity index 100% rename from public/country/he-IL.json rename to public/intl/country/he-IL.json diff --git a/public/country/hi-IN.json b/public/intl/country/hi-IN.json similarity index 100% rename from public/country/hi-IN.json rename to public/intl/country/hi-IN.json diff --git a/public/country/hu-HU.json b/public/intl/country/hu-HU.json similarity index 100% rename from public/country/hu-HU.json rename to public/intl/country/hu-HU.json diff --git a/public/country/id-ID.json b/public/intl/country/id-ID.json similarity index 100% rename from public/country/id-ID.json rename to public/intl/country/id-ID.json diff --git a/public/country/it-IT.json b/public/intl/country/it-IT.json similarity index 100% rename from public/country/it-IT.json rename to public/intl/country/it-IT.json diff --git a/public/country/ja-JP.json b/public/intl/country/ja-JP.json similarity index 100% rename from public/country/ja-JP.json rename to public/intl/country/ja-JP.json diff --git a/public/country/ko-KR.json b/public/intl/country/ko-KR.json similarity index 100% rename from public/country/ko-KR.json rename to public/intl/country/ko-KR.json diff --git a/public/country/lt-LT.json b/public/intl/country/lt-LT.json similarity index 100% rename from public/country/lt-LT.json rename to public/intl/country/lt-LT.json diff --git a/public/country/mn-MN.json b/public/intl/country/mn-MN.json similarity index 100% rename from public/country/mn-MN.json rename to public/intl/country/mn-MN.json diff --git a/public/country/ms-MY.json b/public/intl/country/ms-MY.json similarity index 100% rename from public/country/ms-MY.json rename to public/intl/country/ms-MY.json diff --git a/public/country/nb-NO.json b/public/intl/country/nb-NO.json similarity index 100% rename from public/country/nb-NO.json rename to public/intl/country/nb-NO.json diff --git a/public/country/nl-NL.json b/public/intl/country/nl-NL.json similarity index 100% rename from public/country/nl-NL.json rename to public/intl/country/nl-NL.json diff --git a/public/country/pl-PL.json b/public/intl/country/pl-PL.json similarity index 100% rename from public/country/pl-PL.json rename to public/intl/country/pl-PL.json diff --git a/public/country/pt-BR.json b/public/intl/country/pt-BR.json similarity index 100% rename from public/country/pt-BR.json rename to public/intl/country/pt-BR.json diff --git a/public/country/pt-PT.json b/public/intl/country/pt-PT.json similarity index 100% rename from public/country/pt-PT.json rename to public/intl/country/pt-PT.json diff --git a/public/country/ro-RO.json b/public/intl/country/ro-RO.json similarity index 100% rename from public/country/ro-RO.json rename to public/intl/country/ro-RO.json diff --git a/public/country/ru-RU.json b/public/intl/country/ru-RU.json similarity index 100% rename from public/country/ru-RU.json rename to public/intl/country/ru-RU.json diff --git a/public/country/sk-SK.json b/public/intl/country/sk-SK.json similarity index 100% rename from public/country/sk-SK.json rename to public/intl/country/sk-SK.json diff --git a/public/country/sl-SI.json b/public/intl/country/sl-SI.json similarity index 100% rename from public/country/sl-SI.json rename to public/intl/country/sl-SI.json diff --git a/public/country/sv-SE.json b/public/intl/country/sv-SE.json similarity index 100% rename from public/country/sv-SE.json rename to public/intl/country/sv-SE.json diff --git a/public/country/ta-IN.json b/public/intl/country/ta-IN.json similarity index 100% rename from public/country/ta-IN.json rename to public/intl/country/ta-IN.json diff --git a/public/country/tr-TR.json b/public/intl/country/tr-TR.json similarity index 100% rename from public/country/tr-TR.json rename to public/intl/country/tr-TR.json diff --git a/public/country/uk-UA.json b/public/intl/country/uk-UA.json similarity index 100% rename from public/country/uk-UA.json rename to public/intl/country/uk-UA.json diff --git a/public/country/ur-PK.json b/public/intl/country/ur-PK.json similarity index 100% rename from public/country/ur-PK.json rename to public/intl/country/ur-PK.json diff --git a/public/country/vi-VN.json b/public/intl/country/vi-VN.json similarity index 100% rename from public/country/vi-VN.json rename to public/intl/country/vi-VN.json diff --git a/public/country/zh-CN.json b/public/intl/country/zh-CN.json similarity index 100% rename from public/country/zh-CN.json rename to public/intl/country/zh-CN.json diff --git a/public/country/zh-TW.json b/public/intl/country/zh-TW.json similarity index 100% rename from public/country/zh-TW.json rename to public/intl/country/zh-TW.json diff --git a/public/language/ar-SA.json b/public/intl/language/ar-SA.json similarity index 100% rename from public/language/ar-SA.json rename to public/intl/language/ar-SA.json diff --git a/public/language/ca-ES.json b/public/intl/language/ca-ES.json similarity index 100% rename from public/language/ca-ES.json rename to public/intl/language/ca-ES.json diff --git a/public/language/cs-CZ.json b/public/intl/language/cs-CZ.json similarity index 100% rename from public/language/cs-CZ.json rename to public/intl/language/cs-CZ.json diff --git a/public/language/da-DK.json b/public/intl/language/da-DK.json similarity index 100% rename from public/language/da-DK.json rename to public/intl/language/da-DK.json diff --git a/public/language/de-DE.json b/public/intl/language/de-DE.json similarity index 100% rename from public/language/de-DE.json rename to public/intl/language/de-DE.json diff --git a/public/language/el-GR.json b/public/intl/language/el-GR.json similarity index 100% rename from public/language/el-GR.json rename to public/intl/language/el-GR.json diff --git a/public/language/en-GB.json b/public/intl/language/en-GB.json similarity index 100% rename from public/language/en-GB.json rename to public/intl/language/en-GB.json diff --git a/public/language/en-US.json b/public/intl/language/en-US.json similarity index 100% rename from public/language/en-US.json rename to public/intl/language/en-US.json diff --git a/public/language/es-MX.json b/public/intl/language/es-MX.json similarity index 100% rename from public/language/es-MX.json rename to public/intl/language/es-MX.json diff --git a/public/language/fa-IR.json b/public/intl/language/fa-IR.json similarity index 100% rename from public/language/fa-IR.json rename to public/intl/language/fa-IR.json diff --git a/public/language/fi-FI.json b/public/intl/language/fi-FI.json similarity index 100% rename from public/language/fi-FI.json rename to public/intl/language/fi-FI.json diff --git a/public/language/fo-FO.json b/public/intl/language/fo-FO.json similarity index 100% rename from public/language/fo-FO.json rename to public/intl/language/fo-FO.json diff --git a/public/language/fr-FR.json b/public/intl/language/fr-FR.json similarity index 100% rename from public/language/fr-FR.json rename to public/intl/language/fr-FR.json diff --git a/public/language/he-IL.json b/public/intl/language/he-IL.json similarity index 100% rename from public/language/he-IL.json rename to public/intl/language/he-IL.json diff --git a/public/language/hi-IN.json b/public/intl/language/hi-IN.json similarity index 100% rename from public/language/hi-IN.json rename to public/intl/language/hi-IN.json diff --git a/public/language/hu-HU.json b/public/intl/language/hu-HU.json similarity index 100% rename from public/language/hu-HU.json rename to public/intl/language/hu-HU.json diff --git a/public/language/id-ID.json b/public/intl/language/id-ID.json similarity index 100% rename from public/language/id-ID.json rename to public/intl/language/id-ID.json diff --git a/public/language/it-IT.json b/public/intl/language/it-IT.json similarity index 100% rename from public/language/it-IT.json rename to public/intl/language/it-IT.json diff --git a/public/language/ja-JP.json b/public/intl/language/ja-JP.json similarity index 100% rename from public/language/ja-JP.json rename to public/intl/language/ja-JP.json diff --git a/public/language/ko-KR.json b/public/intl/language/ko-KR.json similarity index 100% rename from public/language/ko-KR.json rename to public/intl/language/ko-KR.json diff --git a/public/language/lt-LT.json b/public/intl/language/lt-LT.json similarity index 100% rename from public/language/lt-LT.json rename to public/intl/language/lt-LT.json diff --git a/public/language/mn-MN.json b/public/intl/language/mn-MN.json similarity index 100% rename from public/language/mn-MN.json rename to public/intl/language/mn-MN.json diff --git a/public/language/ms-MY.json b/public/intl/language/ms-MY.json similarity index 100% rename from public/language/ms-MY.json rename to public/intl/language/ms-MY.json diff --git a/public/language/nb-NO.json b/public/intl/language/nb-NO.json similarity index 100% rename from public/language/nb-NO.json rename to public/intl/language/nb-NO.json diff --git a/public/language/nl-NL.json b/public/intl/language/nl-NL.json similarity index 100% rename from public/language/nl-NL.json rename to public/intl/language/nl-NL.json diff --git a/public/language/pl-PL.json b/public/intl/language/pl-PL.json similarity index 100% rename from public/language/pl-PL.json rename to public/intl/language/pl-PL.json diff --git a/public/language/pt-BR.json b/public/intl/language/pt-BR.json similarity index 100% rename from public/language/pt-BR.json rename to public/intl/language/pt-BR.json diff --git a/public/language/pt-PT.json b/public/intl/language/pt-PT.json similarity index 100% rename from public/language/pt-PT.json rename to public/intl/language/pt-PT.json diff --git a/public/language/ro-RO.json b/public/intl/language/ro-RO.json similarity index 100% rename from public/language/ro-RO.json rename to public/intl/language/ro-RO.json diff --git a/public/language/ru-RU.json b/public/intl/language/ru-RU.json similarity index 100% rename from public/language/ru-RU.json rename to public/intl/language/ru-RU.json diff --git a/public/language/sk-SK.json b/public/intl/language/sk-SK.json similarity index 100% rename from public/language/sk-SK.json rename to public/intl/language/sk-SK.json diff --git a/public/language/sl-SI.json b/public/intl/language/sl-SI.json similarity index 100% rename from public/language/sl-SI.json rename to public/intl/language/sl-SI.json diff --git a/public/language/sv-SE.json b/public/intl/language/sv-SE.json similarity index 100% rename from public/language/sv-SE.json rename to public/intl/language/sv-SE.json diff --git a/public/language/ta-IN.json b/public/intl/language/ta-IN.json similarity index 100% rename from public/language/ta-IN.json rename to public/intl/language/ta-IN.json diff --git a/public/language/tr-TR.json b/public/intl/language/tr-TR.json similarity index 100% rename from public/language/tr-TR.json rename to public/intl/language/tr-TR.json diff --git a/public/language/uk-UA.json b/public/intl/language/uk-UA.json similarity index 100% rename from public/language/uk-UA.json rename to public/intl/language/uk-UA.json diff --git a/public/language/ur-PK.json b/public/intl/language/ur-PK.json similarity index 100% rename from public/language/ur-PK.json rename to public/intl/language/ur-PK.json diff --git a/public/language/vi-VN.json b/public/intl/language/vi-VN.json similarity index 100% rename from public/language/vi-VN.json rename to public/intl/language/vi-VN.json diff --git a/public/language/zh-CN.json b/public/intl/language/zh-CN.json similarity index 100% rename from public/language/zh-CN.json rename to public/intl/language/zh-CN.json diff --git a/public/language/zh-TW.json b/public/intl/language/zh-TW.json similarity index 100% rename from public/language/zh-TW.json rename to public/intl/language/zh-TW.json diff --git a/public/messages/ar-SA.json b/public/intl/messages/ar-SA.json similarity index 100% rename from public/messages/ar-SA.json rename to public/intl/messages/ar-SA.json diff --git a/public/messages/ca-ES.json b/public/intl/messages/ca-ES.json similarity index 100% rename from public/messages/ca-ES.json rename to public/intl/messages/ca-ES.json diff --git a/public/messages/cs-CZ.json b/public/intl/messages/cs-CZ.json similarity index 100% rename from public/messages/cs-CZ.json rename to public/intl/messages/cs-CZ.json diff --git a/public/messages/da-DK.json b/public/intl/messages/da-DK.json similarity index 100% rename from public/messages/da-DK.json rename to public/intl/messages/da-DK.json diff --git a/public/messages/de-DE.json b/public/intl/messages/de-DE.json similarity index 100% rename from public/messages/de-DE.json rename to public/intl/messages/de-DE.json diff --git a/public/messages/el-GR.json b/public/intl/messages/el-GR.json similarity index 100% rename from public/messages/el-GR.json rename to public/intl/messages/el-GR.json diff --git a/public/messages/en-GB.json b/public/intl/messages/en-GB.json similarity index 100% rename from public/messages/en-GB.json rename to public/intl/messages/en-GB.json diff --git a/public/messages/en-US.json b/public/intl/messages/en-US.json similarity index 100% rename from public/messages/en-US.json rename to public/intl/messages/en-US.json diff --git a/public/messages/es-MX.json b/public/intl/messages/es-MX.json similarity index 100% rename from public/messages/es-MX.json rename to public/intl/messages/es-MX.json diff --git a/public/messages/fa-IR.json b/public/intl/messages/fa-IR.json similarity index 100% rename from public/messages/fa-IR.json rename to public/intl/messages/fa-IR.json diff --git a/public/messages/fi-FI.json b/public/intl/messages/fi-FI.json similarity index 100% rename from public/messages/fi-FI.json rename to public/intl/messages/fi-FI.json diff --git a/public/messages/fo-FO.json b/public/intl/messages/fo-FO.json similarity index 100% rename from public/messages/fo-FO.json rename to public/intl/messages/fo-FO.json diff --git a/public/messages/fr-FR.json b/public/intl/messages/fr-FR.json similarity index 100% rename from public/messages/fr-FR.json rename to public/intl/messages/fr-FR.json diff --git a/public/messages/he-IL.json b/public/intl/messages/he-IL.json similarity index 100% rename from public/messages/he-IL.json rename to public/intl/messages/he-IL.json diff --git a/public/messages/hi-IN.json b/public/intl/messages/hi-IN.json similarity index 100% rename from public/messages/hi-IN.json rename to public/intl/messages/hi-IN.json diff --git a/public/messages/hu-HU.json b/public/intl/messages/hu-HU.json similarity index 100% rename from public/messages/hu-HU.json rename to public/intl/messages/hu-HU.json diff --git a/public/messages/id-ID.json b/public/intl/messages/id-ID.json similarity index 100% rename from public/messages/id-ID.json rename to public/intl/messages/id-ID.json diff --git a/public/messages/it-IT.json b/public/intl/messages/it-IT.json similarity index 100% rename from public/messages/it-IT.json rename to public/intl/messages/it-IT.json diff --git a/public/messages/ja-JP.json b/public/intl/messages/ja-JP.json similarity index 100% rename from public/messages/ja-JP.json rename to public/intl/messages/ja-JP.json diff --git a/public/messages/ko-KR.json b/public/intl/messages/ko-KR.json similarity index 100% rename from public/messages/ko-KR.json rename to public/intl/messages/ko-KR.json diff --git a/public/messages/lt-LT.json b/public/intl/messages/lt-LT.json similarity index 100% rename from public/messages/lt-LT.json rename to public/intl/messages/lt-LT.json diff --git a/public/messages/mn-MN.json b/public/intl/messages/mn-MN.json similarity index 100% rename from public/messages/mn-MN.json rename to public/intl/messages/mn-MN.json diff --git a/public/messages/ms-MY.json b/public/intl/messages/ms-MY.json similarity index 100% rename from public/messages/ms-MY.json rename to public/intl/messages/ms-MY.json diff --git a/public/messages/nb-NO.json b/public/intl/messages/nb-NO.json similarity index 100% rename from public/messages/nb-NO.json rename to public/intl/messages/nb-NO.json diff --git a/public/messages/nl-NL.json b/public/intl/messages/nl-NL.json similarity index 100% rename from public/messages/nl-NL.json rename to public/intl/messages/nl-NL.json diff --git a/public/messages/pl-PL.json b/public/intl/messages/pl-PL.json similarity index 96% rename from public/messages/pl-PL.json rename to public/intl/messages/pl-PL.json index f627d631..9a8ce376 100644 --- a/public/messages/pl-PL.json +++ b/public/intl/messages/pl-PL.json @@ -38,7 +38,7 @@ "label.all-time": [ { "type": 0, - "value": "All time" + "value": "Cały czas" } ], "label.all-websites": [ @@ -92,7 +92,7 @@ "label.dashboard": [ { "type": 0, - "value": "Dashboard" + "value": "Panel" } ], "label.date-range": [ @@ -176,7 +176,7 @@ "label.language": [ { "type": 0, - "value": "Language" + "value": "Język" } ], "label.last-days": [ @@ -250,7 +250,7 @@ "label.owner": [ { "type": 0, - "value": "Owner" + "value": "Właściciel" } ], "label.password": [ @@ -304,7 +304,7 @@ "label.reset-website": [ { "type": 0, - "value": "Reset statistics" + "value": "Zresetuj statystyki" } ], "label.save": [ @@ -334,7 +334,7 @@ "label.theme": [ { "type": 0, - "value": "Theme" + "value": "Motyw" } ], "label.this-month": [ @@ -448,7 +448,7 @@ "message.confirm-reset": [ { "type": 0, - "value": "Are your sure you want to reset " + "value": "Czy na pewno chcesz zresetować statystyki " }, { "type": 1, @@ -456,7 +456,7 @@ }, { "type": 0, - "value": "'s statistics?" + "value": "?" } ], "message.copied": [ @@ -580,7 +580,7 @@ "message.reset-warning": [ { "type": 0, - "value": "All statistics for this website will be deleted, but your tracking code will remain intact." + "value": "Wszystkie statystyki tej witryny zostaną usunięte, ale kod śledzenia pozostanie nienaruszony." } ], "message.save-success": [ @@ -606,7 +606,7 @@ "message.toggle-charts": [ { "type": 0, - "value": "Toggle charts" + "value": "Przełącz wykresy" } ], "message.track-stats": [ @@ -746,7 +746,7 @@ "metrics.languages": [ { "type": 0, - "value": "Languages" + "value": "Języki" } ], "metrics.operating-systems": [ diff --git a/public/messages/pt-BR.json b/public/intl/messages/pt-BR.json similarity index 100% rename from public/messages/pt-BR.json rename to public/intl/messages/pt-BR.json diff --git a/public/messages/pt-PT.json b/public/intl/messages/pt-PT.json similarity index 100% rename from public/messages/pt-PT.json rename to public/intl/messages/pt-PT.json diff --git a/public/messages/ro-RO.json b/public/intl/messages/ro-RO.json similarity index 100% rename from public/messages/ro-RO.json rename to public/intl/messages/ro-RO.json diff --git a/public/messages/ru-RU.json b/public/intl/messages/ru-RU.json similarity index 100% rename from public/messages/ru-RU.json rename to public/intl/messages/ru-RU.json diff --git a/public/messages/sk-SK.json b/public/intl/messages/sk-SK.json similarity index 100% rename from public/messages/sk-SK.json rename to public/intl/messages/sk-SK.json diff --git a/public/messages/sl-SI.json b/public/intl/messages/sl-SI.json similarity index 100% rename from public/messages/sl-SI.json rename to public/intl/messages/sl-SI.json diff --git a/public/messages/sv-SE.json b/public/intl/messages/sv-SE.json similarity index 100% rename from public/messages/sv-SE.json rename to public/intl/messages/sv-SE.json diff --git a/public/messages/ta-IN.json b/public/intl/messages/ta-IN.json similarity index 100% rename from public/messages/ta-IN.json rename to public/intl/messages/ta-IN.json diff --git a/public/messages/tr-TR.json b/public/intl/messages/tr-TR.json similarity index 100% rename from public/messages/tr-TR.json rename to public/intl/messages/tr-TR.json diff --git a/public/messages/uk-UA.json b/public/intl/messages/uk-UA.json similarity index 100% rename from public/messages/uk-UA.json rename to public/intl/messages/uk-UA.json diff --git a/public/messages/ur-PK.json b/public/intl/messages/ur-PK.json similarity index 100% rename from public/messages/ur-PK.json rename to public/intl/messages/ur-PK.json diff --git a/public/messages/vi-VN.json b/public/intl/messages/vi-VN.json similarity index 100% rename from public/messages/vi-VN.json rename to public/intl/messages/vi-VN.json diff --git a/public/messages/zh-CN.json b/public/intl/messages/zh-CN.json similarity index 100% rename from public/messages/zh-CN.json rename to public/intl/messages/zh-CN.json diff --git a/public/messages/zh-TW.json b/public/intl/messages/zh-TW.json similarity index 100% rename from public/messages/zh-TW.json rename to public/intl/messages/zh-TW.json From 63bfa616f1ea8278d3cbaf33b947cbf841eea6e9 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 21:01:32 -0700 Subject: [PATCH 06/34] Set content type for responses. --- lib/response.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/response.js b/lib/response.js index 0e938f90..796c23eb 100644 --- a/lib/response.js +++ b/lib/response.js @@ -6,14 +6,12 @@ export function json(res, data = {}) { return res.status(200).json(data); } -export function send(res, data) { - return res.status(200).send(data); +export function send(res, data, type = 'text-plain') { + return res.status(200).setHeader('Content-Type', type).send(data); } export function redirect(res, url) { - res.setHeader('Location', url); - - return res.status(303).end(); + return res.status(303).setHeader('Location', url).end(); } export function badRequest(res, msg = '400 Bad Request') { From ffb091c1bcfa6a108f4b43329388b91f174ba6cd Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 21:21:43 -0700 Subject: [PATCH 07/34] Updated telemetry payload. --- package.json | 6 ++++-- scripts/postbuild.js | 10 ---------- scripts/telemetry.js | 16 ++++++++++++---- 3 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 scripts/postbuild.js diff --git a/package.json b/package.json index 5ee12ac8..74b95081 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "scripts": { "dev": "next dev", "build": "npm-run-all build-tracker build-geo build-db build-app", - "start": "next start", + "start": "npm-run-all telemetry start-app", + "start-app": "next start", "start-env": "node -r dotenv/config scripts/start-env.js", "build-app": "next build", "build-tracker": "rollup -c rollup.tracker.config.js", @@ -25,7 +26,7 @@ "build-mysql-client": "dotenv prisma generate -- --schema=./prisma/schema.mysql.prisma", "build-postgresql-schema": "dotenv prisma db pull -- --schema=./prisma/schema.postgresql.prisma", "build-postgresql-client": "dotenv prisma generate -- --schema=./prisma/schema.postgresql.prisma", - "postbuild": "node scripts/postbuild.js", + "init": "node scripts/init.js", "copy-db-schema": "node scripts/copy-db-schema.js", "generate-lang": "npm-run-all extract-lang merge-lang", "extract-lang": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json", @@ -36,6 +37,7 @@ "download-country-names": "node scripts/download-country-names.js", "download-language-names": "node scripts/download-language-names.js", "change-password": "node scripts/change-password.js", + "telemetry": "node scripts/telemetry.js", "lint": "next lint --quiet", "prepare": "husky install" }, diff --git a/scripts/postbuild.js b/scripts/postbuild.js deleted file mode 100644 index 6372bd65..00000000 --- a/scripts/postbuild.js +++ /dev/null @@ -1,10 +0,0 @@ -require('dotenv').config(); -const sendTelemetry = require('./telemetry'); - -async function run() { - if (!process.env.DISABLE_TELEMETRY) { - await sendTelemetry(); - } -} - -run(); diff --git a/scripts/telemetry.js b/scripts/telemetry.js index 2f3a1aa0..3714ff35 100644 --- a/scripts/telemetry.js +++ b/scripts/telemetry.js @@ -1,3 +1,4 @@ +require('dotenv').config(); const fs = require('fs-extra'); const path = require('path'); const os = require('os'); @@ -26,13 +27,14 @@ async function sendTelemetry() { await fs.writeJSON(dest, { version: pkg.version }); const payload = { - umami: pkg.version, + version: pkg.version, node: process.version, platform: os.platform(), arch: os.arch(), os: `${os.type()} (${os.version()})`, - isDocker: isDocker(), - isCI, + docker: isDocker(), + ci: isCI, + upgrade: json.version || false, }; await retry( @@ -51,4 +53,10 @@ async function sendTelemetry() { } } -module.exports = sendTelemetry; +async function run() { + if (!process.env.DISABLE_TELEMETRY) { + await sendTelemetry(); + } +} + +run(); From de3bf23e4c8bcff02ab62c53292ac850998f5ad4 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 21:24:46 -0700 Subject: [PATCH 08/34] Fix 500 error in response. --- lib/response.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/response.js b/lib/response.js index 796c23eb..a982f3d4 100644 --- a/lib/response.js +++ b/lib/response.js @@ -7,11 +7,15 @@ export function json(res, data = {}) { } export function send(res, data, type = 'text-plain') { - return res.status(200).setHeader('Content-Type', type).send(data); + res.setHeader('Content-Type', type); + + return res.status(200).send(data); } export function redirect(res, url) { - return res.status(303).setHeader('Location', url).end(); + res.setHeader('Location', url); + + return res.status(303).end(); } export function badRequest(res, msg = '400 Bad Request') { From 777dfeac0e42876ee0aa6690971e53cb9af4735f Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 21:57:58 -0700 Subject: [PATCH 09/34] Added prestart script. --- lib/response.js | 2 +- package.json | 8 ++++---- scripts/postbuild.js | 10 ++++++++++ scripts/prestart.js | 10 ++++++++++ scripts/telemetry.js | 11 +++-------- 5 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 scripts/postbuild.js create mode 100644 scripts/prestart.js diff --git a/lib/response.js b/lib/response.js index a982f3d4..72525f18 100644 --- a/lib/response.js +++ b/lib/response.js @@ -6,7 +6,7 @@ export function json(res, data = {}) { return res.status(200).json(data); } -export function send(res, data, type = 'text-plain') { +export function send(res, data, type = 'text/plain') { res.setHeader('Content-Type', type); return res.status(200).send(data); diff --git a/package.json b/package.json index 74b95081..7b6b2ec9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "scripts": { "dev": "next dev", "build": "npm-run-all build-tracker build-geo build-db build-app", - "start": "npm-run-all telemetry start-app", + "start": "npm-run-all init start-app", "start-app": "next start", "start-env": "node -r dotenv/config scripts/start-env.js", "build-app": "next build", @@ -26,7 +26,6 @@ "build-mysql-client": "dotenv prisma generate -- --schema=./prisma/schema.mysql.prisma", "build-postgresql-schema": "dotenv prisma db pull -- --schema=./prisma/schema.postgresql.prisma", "build-postgresql-client": "dotenv prisma generate -- --schema=./prisma/schema.postgresql.prisma", - "init": "node scripts/init.js", "copy-db-schema": "node scripts/copy-db-schema.js", "generate-lang": "npm-run-all extract-lang merge-lang", "extract-lang": "formatjs extract \"{pages,components}/**/*.js\" --out-file build/messages.json", @@ -37,9 +36,10 @@ "download-country-names": "node scripts/download-country-names.js", "download-language-names": "node scripts/download-language-names.js", "change-password": "node scripts/change-password.js", - "telemetry": "node scripts/telemetry.js", "lint": "next lint --quiet", - "prepare": "husky install" + "prepare": "husky install", + "postbuild": "node scripts/postbuild.js", + "init": "node scripts/prestart.js" }, "lint-staged": { "**/*.js": [ diff --git a/scripts/postbuild.js b/scripts/postbuild.js new file mode 100644 index 00000000..55414dcf --- /dev/null +++ b/scripts/postbuild.js @@ -0,0 +1,10 @@ +require('dotenv').config(); +const { sendTelemetry } = require('./telemetry'); + +async function run() { + if (!process.env.DISABLE_TELEMETRY) { + await sendTelemetry(); + } +} + +run(); diff --git a/scripts/prestart.js b/scripts/prestart.js new file mode 100644 index 00000000..55414dcf --- /dev/null +++ b/scripts/prestart.js @@ -0,0 +1,10 @@ +require('dotenv').config(); +const { sendTelemetry } = require('./telemetry'); + +async function run() { + if (!process.env.DISABLE_TELEMETRY) { + await sendTelemetry(); + } +} + +run(); diff --git a/scripts/telemetry.js b/scripts/telemetry.js index 3714ff35..6dbc586e 100644 --- a/scripts/telemetry.js +++ b/scripts/telemetry.js @@ -1,4 +1,3 @@ -require('dotenv').config(); const fs = require('fs-extra'); const path = require('path'); const os = require('os'); @@ -53,10 +52,6 @@ async function sendTelemetry() { } } -async function run() { - if (!process.env.DISABLE_TELEMETRY) { - await sendTelemetry(); - } -} - -run(); +module.exports = { + sendTelemetry, +}; From 7cf0927741f08643b7b959eba84d888ab70533a8 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 22:26:23 -0700 Subject: [PATCH 10/34] Enabling caching in tracker script. --- lib/session.js | 3 ++- tracker/index.js | 8 +++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/session.js b/lib/session.js index f91545f3..73d02e59 100644 --- a/lib/session.js +++ b/lib/session.js @@ -9,7 +9,8 @@ export async function getSession(req) { throw new Error('Invalid request'); } - const { website: website_uuid, hostname, screen, language, cache } = payload; + const { website: website_uuid, hostname, screen, language } = payload; + const cache = req.headers['x-umami-cache']; if (cache) { const result = await parseToken(cache); diff --git a/tracker/index.js b/tracker/index.js index a5012b71..d7ccb86f 100644 --- a/tracker/index.js +++ b/tracker/index.js @@ -7,7 +7,6 @@ import { removeTrailingSlash } from '../lib/url'; navigator: { language }, location: { hostname, pathname, search }, localStorage, - sessionStorage, document, history, } = window; @@ -21,14 +20,12 @@ import { removeTrailingSlash } from '../lib/url'; const hostUrl = attr('data-host-url'); const autoTrack = attr('data-auto-track') !== 'false'; const dnt = attr('data-do-not-track'); - const useCache = attr('data-cache'); const cssEvents = attr('data-css-events') !== 'false'; const domain = attr('data-domains') || ''; const domains = domain.split(',').map(n => n.trim()); const eventClass = /^umami--([a-z]+)--([\w]+[\w-]*)$/; const eventSelect = "[class*='umami--']"; - const cacheKey = 'umami.cache'; const trackingDisabled = () => (localStorage && localStorage.getItem('umami.disabled')) || @@ -42,6 +39,7 @@ import { removeTrailingSlash } from '../lib/url'; const listeners = {}; let currentUrl = `${pathname}${search}`; let currentRef = document.referrer; + let cache; /* Collect metrics */ @@ -49,6 +47,7 @@ import { removeTrailingSlash } from '../lib/url'; const req = new XMLHttpRequest(); req.open('POST', url, true); req.setRequestHeader('Content-Type', 'application/json'); + if (cache) req.setRequestHeader('x-umami-cache', cache); req.onreadystatechange = () => { if (req.readyState === 4) { @@ -64,7 +63,6 @@ import { removeTrailingSlash } from '../lib/url'; hostname, screen, language, - cache: useCache && sessionStorage.getItem(cacheKey), url: currentUrl, }); @@ -84,7 +82,7 @@ import { removeTrailingSlash } from '../lib/url'; type, payload, }, - res => useCache && sessionStorage.setItem(cacheKey, res), + res => (cache = res), ); }; From 5b1eb8bec2766d2e54e8ef1b39060ab9fe511fe3 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 22:39:39 -0700 Subject: [PATCH 11/34] Added action to telemetry payload. --- scripts/postbuild.js | 2 +- scripts/prestart.js | 2 +- scripts/telemetry.js | 57 ++++++++++++++++++++++---------------------- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/scripts/postbuild.js b/scripts/postbuild.js index 55414dcf..89748058 100644 --- a/scripts/postbuild.js +++ b/scripts/postbuild.js @@ -3,7 +3,7 @@ const { sendTelemetry } = require('./telemetry'); async function run() { if (!process.env.DISABLE_TELEMETRY) { - await sendTelemetry(); + await sendTelemetry('build'); } } diff --git a/scripts/prestart.js b/scripts/prestart.js index 55414dcf..a13af855 100644 --- a/scripts/prestart.js +++ b/scripts/prestart.js @@ -3,7 +3,7 @@ const { sendTelemetry } = require('./telemetry'); async function run() { if (!process.env.DISABLE_TELEMETRY) { - await sendTelemetry(); + await sendTelemetry('start'); } } diff --git a/scripts/telemetry.js b/scripts/telemetry.js index 6dbc586e..d938c88b 100644 --- a/scripts/telemetry.js +++ b/scripts/telemetry.js @@ -8,7 +8,7 @@ const pkg = require('../package.json'); const dest = path.resolve(__dirname, '../.next/cache/umami.json'); const url = 'https://telemetry.umami.is/api/collect'; -async function sendTelemetry() { +async function sendTelemetry(action) { await fs.ensureFile(dest); let json = {}; @@ -19,37 +19,36 @@ async function sendTelemetry() { // Ignore } - if (json.version !== pkg.version) { - const { default: isDocker } = await import('is-docker'); - const { default: fetch } = await import('node-fetch'); + await fs.writeJSON(dest, { version: pkg.version }); - await fs.writeJSON(dest, { version: pkg.version }); + const { default: isDocker } = await import('is-docker'); + const { default: fetch } = await import('node-fetch'); - const payload = { - version: pkg.version, - node: process.version, - platform: os.platform(), - arch: os.arch(), - os: `${os.type()} (${os.version()})`, - docker: isDocker(), - ci: isCI, - upgrade: json.version || false, - }; + const payload = { + action, + version: pkg.version, + node: process.version, + platform: os.platform(), + arch: os.arch(), + os: `${os.type()} (${os.version()})`, + docker: isDocker(), + ci: isCI, + upgrade: json.version || false, + }; - await retry( - async () => { - await fetch(url, { - method: 'post', - cache: 'no-cache', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(payload), - }); - }, - { minTimeout: 500, retries: 1, factor: 1 }, - ).catch(() => {}); - } + await retry( + async () => { + await fetch(url, { + method: 'post', + cache: 'no-cache', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(payload), + }); + }, + { minTimeout: 500, retries: 1, factor: 1 }, + ).catch(() => {}); } module.exports = { From f9f3a5bcabefc00021ce565648c228f10327cddb Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 22:44:02 -0700 Subject: [PATCH 12/34] Fix upgrade logic. --- scripts/telemetry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/telemetry.js b/scripts/telemetry.js index d938c88b..8f504b88 100644 --- a/scripts/telemetry.js +++ b/scripts/telemetry.js @@ -33,7 +33,7 @@ async function sendTelemetry(action) { os: `${os.type()} (${os.version()})`, docker: isDocker(), ci: isCI, - upgrade: json.version || false, + upgrade: json.version !== undefined && json.version !== pkg.version, }; await retry( From 46174f652caac57c87c52b788db78a684470c6e9 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 18 Mar 2022 22:52:42 -0700 Subject: [PATCH 13/34] Added previous version to payload. --- scripts/telemetry.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/telemetry.js b/scripts/telemetry.js index 8f504b88..ee44746a 100644 --- a/scripts/telemetry.js +++ b/scripts/telemetry.js @@ -23,6 +23,7 @@ async function sendTelemetry(action) { const { default: isDocker } = await import('is-docker'); const { default: fetch } = await import('node-fetch'); + const upgrade = json.version !== undefined && json.version !== pkg.version; const payload = { action, @@ -33,7 +34,8 @@ async function sendTelemetry(action) { os: `${os.type()} (${os.version()})`, docker: isDocker(), ci: isCI, - upgrade: json.version !== undefined && json.version !== pkg.version, + prev: json.version, + upgrade, }; await retry( From ecfc7ea68e0661f0e5c64d965c9f82549480d395 Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Sun, 20 Mar 2022 22:10:41 +0100 Subject: [PATCH 14/34] Rename ref to prevent collision with react elements It seems that, at least in dev mode, 'ref' may incorrectly refer to react elements. Signed-off-by: Kevin Decherf --- components/metrics/ReferrersTable.js | 4 ++-- components/metrics/WebsiteChart.js | 8 ++++---- lib/filters.js | 10 ++++++---- lib/queries.js | 12 ++++++------ pages/api/website/[id]/pageviews.js | 6 +++--- pages/api/website/[id]/stats.js | 9 ++++++--- 6 files changed, 27 insertions(+), 22 deletions(-) diff --git a/components/metrics/ReferrersTable.js b/components/metrics/ReferrersTable.js index c7079e8d..93cdb956 100644 --- a/components/metrics/ReferrersTable.js +++ b/components/metrics/ReferrersTable.js @@ -19,7 +19,7 @@ export default function ReferrersTable({ websiteId, websiteDomain, showFilters, const [filter, setFilter] = useState(FILTER_COMBINED); const { resolve, - query: { ref: currentRef }, + query: { referrer: currentRef }, } = usePageQuery(); const buttons = [ @@ -37,7 +37,7 @@ export default function ReferrersTable({ websiteId, websiteDomain, showFilters, const renderLink = ({ w: link, x: label }) => { return (
- + { @@ -88,7 +88,7 @@ export default function WebsiteChart({ stickyClassName={styles.sticky} enabled={stickyHeader} > - +
diff --git a/lib/filters.js b/lib/filters.js index e9723b42..9f00d529 100644 --- a/lib/filters.js +++ b/lib/filters.js @@ -49,8 +49,10 @@ export const refFilter = (data, { domain, domainOnly, raw }) => { const regex = new RegExp(`http[s]?://([a-z0-9-]+\\.)*${domain}`); const links = {}; - const isValidRef = ref => { - return ref !== '' && ref !== null && !ref.startsWith('/') && !ref.startsWith('#'); + const isValidRef = referrer => { + return ( + referrer !== '' && referrer !== null && !referrer.startsWith('/') && !referrer.startsWith('#') + ); }; const cleanUrl = url => { @@ -71,8 +73,8 @@ export const refFilter = (data, { domain, domainOnly, raw }) => { if (protocol.startsWith('http')) { const path = removeTrailingSlash(pathname); - const ref = searchParams.get('ref'); - const query = ref ? `?ref=${ref}` : ''; + const referrer = searchParams.get('ref'); + const query = referrer ? `?referrer=${referrer}` : ''; return removeTrailingSlash(`${removeWWW(hostname)}${path}`) + query; } diff --git a/lib/queries.js b/lib/queries.js index 5bcd18ba..6b3c6c4e 100644 --- a/lib/queries.js +++ b/lib/queries.js @@ -335,7 +335,7 @@ export async function getEvents(websites, start_at) { export function getWebsiteStats(website_id, start_at, end_at, filters = {}) { const params = [website_id, start_at, end_at]; - const { url, ref } = filters; + const { url, referrer } = filters; let urlFilter = ''; let refFilter = ''; @@ -344,9 +344,9 @@ export function getWebsiteStats(website_id, start_at, end_at, filters = {}) { params.push(decodeURIComponent(url)); } - if (ref) { + if (referrer) { refFilter = `and referrer like $${params.length + 1}`; - params.push(`%${decodeURIComponent(ref)}%`); + params.push(`%${decodeURIComponent(referrer)}%`); } return rawQuery( @@ -382,7 +382,7 @@ export function getPageviewStats( filters = {}, ) { const params = [website_id, start_at, end_at]; - const { url, ref } = filters; + const { url, referrer } = filters; let urlFilter = ''; let refFilter = ''; @@ -392,9 +392,9 @@ export function getPageviewStats( params.push(decodeURIComponent(url)); } - if (ref) { + if (referrer) { refFilter = `and referrer like $${params.length + 1}`; - params.push(`%${decodeURIComponent(ref)}%`); + params.push(`%${decodeURIComponent(referrer)}%`); } return rawQuery( diff --git a/pages/api/website/[id]/pageviews.js b/pages/api/website/[id]/pageviews.js index 22966ca7..e2069f8c 100644 --- a/pages/api/website/[id]/pageviews.js +++ b/pages/api/website/[id]/pageviews.js @@ -11,7 +11,7 @@ export default async (req, res) => { return unauthorized(res); } - const { id, start_at, end_at, unit, tz, url, ref } = req.query; + const { id, start_at, end_at, unit, tz, url, referrer } = req.query; const websiteId = +id; const startDate = new Date(+start_at); @@ -22,10 +22,10 @@ export default async (req, res) => { } const [pageviews, sessions] = await Promise.all([ - getPageviewStats(websiteId, startDate, endDate, tz, unit, '*', { url, ref }), + getPageviewStats(websiteId, startDate, endDate, tz, unit, '*', { url, referrer }), getPageviewStats(websiteId, startDate, endDate, tz, unit, 'distinct session_id', { url, - ref, + referrer, }), ]); diff --git a/pages/api/website/[id]/stats.js b/pages/api/website/[id]/stats.js index 9dd82361..cdb374e2 100644 --- a/pages/api/website/[id]/stats.js +++ b/pages/api/website/[id]/stats.js @@ -8,7 +8,7 @@ export default async (req, res) => { return unauthorized(res); } - const { id, start_at, end_at, url, ref } = req.query; + const { id, start_at, end_at, url, referrer } = req.query; const websiteId = +id; const startDate = new Date(+start_at); @@ -18,8 +18,11 @@ export default async (req, res) => { const prevStartDate = new Date(+start_at - distance); const prevEndDate = new Date(+end_at - distance); - const metrics = await getWebsiteStats(websiteId, startDate, endDate, { url, ref }); - const prevPeriod = await getWebsiteStats(websiteId, prevStartDate, prevEndDate, { url, ref }); + const metrics = await getWebsiteStats(websiteId, startDate, endDate, { url, referrer }); + const prevPeriod = await getWebsiteStats(websiteId, prevStartDate, prevEndDate, { + url, + referrer, + }); const stats = Object.keys(metrics[0]).reduce((obj, key) => { obj[key] = { From bb7d26d19f56b6eb21785c7babef9ece2c2b71cc Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Sun, 20 Mar 2022 22:12:40 +0100 Subject: [PATCH 15/34] Fix referrer filter 7530de87d233b04d88f1fefd425c822bdf7502f4 introduced a regression: the domain parameter in refFilter() contains 'https://', which bypass the new regex; thus we readd the call to getDomainName(). Signed-off-by: Kevin Decherf --- lib/filters.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/filters.js b/lib/filters.js index 9f00d529..945a6011 100644 --- a/lib/filters.js +++ b/lib/filters.js @@ -1,5 +1,5 @@ import { BROWSERS } from './constants'; -import { removeTrailingSlash, removeWWW } from './url'; +import { removeTrailingSlash, removeWWW, getDomainName } from './url'; export const urlFilter = (data, { raw }) => { const isValidUrl = url => { @@ -46,7 +46,8 @@ export const urlFilter = (data, { raw }) => { }; export const refFilter = (data, { domain, domainOnly, raw }) => { - const regex = new RegExp(`http[s]?://([a-z0-9-]+\\.)*${domain}`); + const domainName = getDomainName(domain); + const regex = new RegExp(`http[s]?://([a-z0-9-]+\\.)*${domainName}`); const links = {}; const isValidRef = referrer => { From 35f9c7ef6cb73289e553a705a955fe38d40199ad Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Sun, 20 Mar 2022 22:14:54 +0100 Subject: [PATCH 16/34] Update metric tables when filtering on referrer Signed-off-by: Kevin Decherf --- components/metrics/MetricsTable.js | 5 +++-- lib/queries.js | 9 ++++++++- pages/api/website/[id]/metrics.js | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/components/metrics/MetricsTable.js b/components/metrics/MetricsTable.js index d8065fe3..e1fa6891 100644 --- a/components/metrics/MetricsTable.js +++ b/components/metrics/MetricsTable.js @@ -30,7 +30,7 @@ export default function MetricsTable({ const { resolve, router, - query: { url }, + query: { url, referrer }, } = usePageQuery(); const { data, loading, error } = useFetch( @@ -41,12 +41,13 @@ export default function MetricsTable({ start_at: +startDate, end_at: +endDate, url, + referrer, }, onDataLoad, delay: DEFAULT_ANIMATION_DURATION, headers: { [TOKEN_HEADER]: shareToken?.token }, }, - [modified], + [modified, url, referrer], ); const filteredData = useMemo(() => { diff --git a/lib/queries.js b/lib/queries.js index 6b3c6c4e..ed644874 100644 --- a/lib/queries.js +++ b/lib/queries.js @@ -444,10 +444,11 @@ export function getSessionMetrics(website_id, start_at, end_at, field, filters = export function getPageviewMetrics(website_id, start_at, end_at, field, table, filters = {}) { const params = [website_id, start_at, end_at]; - const { domain, url } = filters; + const { domain, url, referrer } = filters; let domainFilter = ''; let urlFilter = ''; + let refFilter = ''; if (domain) { domainFilter = `and referrer not like $${params.length + 1} and referrer not like '/%'`; @@ -459,6 +460,11 @@ export function getPageviewMetrics(website_id, start_at, end_at, field, table, f params.push(decodeURIComponent(url)); } + if (referrer) { + refFilter = `and referrer like $${params.length + 1}`; + params.push(`%${decodeURIComponent(referrer)}%`); + } + return rawQuery( ` select ${field} x, count(*) y @@ -467,6 +473,7 @@ export function getPageviewMetrics(website_id, start_at, end_at, field, table, f and created_at between $2 and $3 ${domainFilter} ${urlFilter} + ${refFilter} group by 1 order by 2 desc `, diff --git a/pages/api/website/[id]/metrics.js b/pages/api/website/[id]/metrics.js index 5e16e350..941b99ca 100644 --- a/pages/api/website/[id]/metrics.js +++ b/pages/api/website/[id]/metrics.js @@ -30,7 +30,7 @@ export default async (req, res) => { return unauthorized(res); } - const { id, type, start_at, end_at, url } = req.query; + const { id, type, start_at, end_at, url, referrer } = req.query; const websiteId = +id; const startDate = new Date(+start_at); @@ -75,6 +75,7 @@ export default async (req, res) => { { domain, url: type !== 'url' && url, + referrer: referrer, }, ); From 65b0a03f97531e0ee01bd957714f5db04b6e1ad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20L=C3=A4derach?= Date: Tue, 22 Mar 2022 12:27:52 +0100 Subject: [PATCH 17/34] feat(docker): use github.ref_name variable for image name --- .github/workflows/main.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ec7dfa4c..342a90d4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,6 +2,7 @@ on: push: branches: - master + workflow_dispatch: jobs: @@ -14,16 +15,16 @@ jobs: uses: actions/checkout@v2 - name: Build PostgreSQL container image - run: | + run: | docker build --build-arg DATABASE_TYPE=postgresql \ - --tag ghcr.io/$GITHUB_ACTOR/umami:postgresql-$(echo $GITHUB_SHA | head -c7) \ + --tag ghcr.io/$GITHUB_ACTOR/umami:postgresql-${github.ref_name} \ --tag ghcr.io/$GITHUB_ACTOR/umami:postgresql-latest \ . - name: Build MySQL container image run: | docker build --build-arg DATABASE_TYPE=mysql \ - --tag ghcr.io/$GITHUB_ACTOR/umami:mysql-$(echo $GITHUB_SHA | head -c7) \ + --tag ghcr.io/$GITHUB_ACTOR/umami:mysql-${github.ref_name} \ --tag ghcr.io/$GITHUB_ACTOR/umami:mysql-latest \ . @@ -36,7 +37,7 @@ jobs: run: | # Push each image individually, avoiding pushing to umami:latest # as MySQL or PostgreSQL are required - docker push ghcr.io/$GITHUB_ACTOR/umami:postgresql-$(echo $GITHUB_SHA | head -c7) + docker push ghcr.io/$GITHUB_ACTOR/umami:postgresql-${github.ref_name} docker push ghcr.io/$GITHUB_ACTOR/umami:postgresql-latest - docker push ghcr.io/$GITHUB_ACTOR/umami:mysql-$(echo $GITHUB_SHA | head -c7) + docker push ghcr.io/$GITHUB_ACTOR/umami:mysql-${github.ref_name} docker push ghcr.io/$GITHUB_ACTOR/umami:mysql-latest From 65454842b0694e24ee25fea400bf869b1299f217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20L=C3=A4derach?= Date: Tue, 22 Mar 2022 15:37:03 +0100 Subject: [PATCH 18/34] feat(ci): add ci action --- .github/workflows/node.js.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/node.js.yml diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 00000000..571f6dd5 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,28 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: [push] + +env: + DATABASE_TYPE: postgresql + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x, 16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm install + - run: npm run build --if-present From a2eadf76fe49129442b764c1182dd779eaa4e6a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20L=C3=A4derach?= Date: Tue, 22 Mar 2022 14:06:46 +0100 Subject: [PATCH 19/34] feat(ci): use matrix build to target databases --- .github/workflows/{node.js.yml => ci.yml} | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) rename .github/workflows/{node.js.yml => ci.yml} (62%) diff --git a/.github/workflows/node.js.yml b/.github/workflows/ci.yml similarity index 62% rename from .github/workflows/node.js.yml rename to .github/workflows/ci.yml index 571f6dd5..d204d88c 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,19 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + include: + - node-version: 12.x + db-type: postgresql + - node-version: 12.x + db-type: mysql + - node-version: 14.x + db-type: postgresql + - node-version: 14.x + db-type: mysql + - node-version: 16.x + db-type: postgresql + - node-version: 16.x + db-type: mysql steps: - uses: actions/checkout@v2 @@ -24,5 +35,7 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' + env: + DATABASE_TYPE: ${{ matrix.db-type }} - run: npm install - run: npm run build --if-present From 9a0c1dff9d885c5bed05af8e222cc74a87997aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20L=C3=A4derach?= Date: Tue, 22 Mar 2022 15:03:55 +0100 Subject: [PATCH 20/34] feat(cd): use semantic release for docker images --- .github/workflows/cd.yml | 30 ++++++++++++++++++++++++++ .github/workflows/main.yml | 43 -------------------------------------- 2 files changed, 30 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/cd.yml delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 00000000..cb8f3e59 --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,30 @@ +name: Create docker images + +on: [create] + +jobs: + + build: + name: Build, push, and deploy + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + runs-on: ubuntu-latest + + strategy: + matrix: + db-type: [postgresql, mysql] + + steps: + - uses: actions/checkout@v2 + + - name: Set env + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + + - uses: mr-smithers-excellent/docker-build-push@v5 + name: Build & push Docker image for ${{ matrix.db-type }} + with: + image: umami + tags: ${{ matrix.db-type }}-${{ env.RELEASE_VERSION }}, ${{ matrix.db-type }}-latest + buildArgs: DATABASE_TYPE=${{ matrix.db-type }} + registry: ghcr.io/${{ github.actor }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 342a90d4..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,43 +0,0 @@ -on: - push: - branches: - - master - workflow_dispatch: - -jobs: - - build: - name: Build, push, and deploy - runs-on: ubuntu-latest - steps: - - - name: Checkout master - uses: actions/checkout@v2 - - - name: Build PostgreSQL container image - run: | - docker build --build-arg DATABASE_TYPE=postgresql \ - --tag ghcr.io/$GITHUB_ACTOR/umami:postgresql-${github.ref_name} \ - --tag ghcr.io/$GITHUB_ACTOR/umami:postgresql-latest \ - . - - - name: Build MySQL container image - run: | - docker build --build-arg DATABASE_TYPE=mysql \ - --tag ghcr.io/$GITHUB_ACTOR/umami:mysql-${github.ref_name} \ - --tag ghcr.io/$GITHUB_ACTOR/umami:mysql-latest \ - . - - - name: Docker login - run: >- - echo "${{ secrets.GITHUB_TOKEN }}" - | docker login -u "${{ github.actor }}" --password-stdin ghcr.io - - - name: Push image to GitHub - run: | - # Push each image individually, avoiding pushing to umami:latest - # as MySQL or PostgreSQL are required - docker push ghcr.io/$GITHUB_ACTOR/umami:postgresql-${github.ref_name} - docker push ghcr.io/$GITHUB_ACTOR/umami:postgresql-latest - docker push ghcr.io/$GITHUB_ACTOR/umami:mysql-${github.ref_name} - docker push ghcr.io/$GITHUB_ACTOR/umami:mysql-latest From 67c3f3743f6a3e44cf27870c7608c295272d8767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=B2=97?= Date: Thu, 24 Mar 2022 11:22:24 +0800 Subject: [PATCH 21/34] Update zh-CN.json --- lang/zh-CN.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lang/zh-CN.json b/lang/zh-CN.json index 2efe028c..fbdba128 100644 --- a/lang/zh-CN.json +++ b/lang/zh-CN.json @@ -4,8 +4,8 @@ "label.add-website": "添加网站", "label.administrator": "管理员", "label.all": "所有", - "label.all-events": "All events", - "label.all-time": "All time", + "label.all-events": "所有事件", + "label.all-time": "所有时间段", "label.all-websites": "全部网站", "label.back": "返回", "label.cancel": "取消", @@ -28,7 +28,7 @@ "label.enable-share-url": "启用共享链接", "label.invalid": "输入无效", "label.invalid-domain": "无效域名", - "label.language": "Language", + "label.language": "语言", "label.last-days": "最近 {x} 天", "label.last-hours": "最近 {x} 小时", "label.logged-in-as": "登录名: {username}", @@ -37,7 +37,7 @@ "label.more": "更多", "label.name": "名字", "label.new-password": "新密码", - "label.owner": "Owner", + "label.owner": "拥有者", "label.password": "密码", "label.passwords-dont-match": "密码不一致", "label.profile": "个人资料", @@ -46,7 +46,7 @@ "label.refresh": "刷新", "label.required": "必填", "label.reset": "重置", - "label.reset-website": "Reset statistics", + "label.reset-website": "重置数据", "label.save": "保存", "label.settings": "设置", "label.share-url": "共享链接", @@ -64,7 +64,7 @@ "label.websites": "网站", "message.active-users": "当前在线 {x} 人", "message.confirm-delete": "你确定要删除 {target} 吗?", - "message.confirm-reset": "Are your sure you want to reset {target}'s statistics?", + "message.confirm-reset": "您确定要重置 {target} 的数据吗?", "message.copied": "复制成功!", "message.delete-warning": "所有相关数据将会被删除。", "message.failure": "出现错误。", @@ -78,10 +78,10 @@ "message.no-websites-configured": "你还没有设置任何网站。", "message.page-not-found": "网页未找到。", "message.powered-by": "由 {name} 提供支持", - "message.reset-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.", + "message.reset-warning": "除了跟踪代码,此网站的所有数据将会删除.", "message.save-success": "保存成功。", "message.share-url": "这是 {target} 的共享链接。", - "message.toggle-charts": "Toggle charts", + "message.toggle-charts": "切换图表", "message.track-stats": "把以下代码放到你的网站的 {head} 部分来收集 {target} 的数据。", "message.type-delete": "在下方输入框输入 {delete} 以确认删除。", "message.type-reset": "在下方输入框输入 {reset} 以确认删除。", @@ -99,7 +99,7 @@ "metrics.filter.combined": "总和", "metrics.filter.domain-only": "只看域名", "metrics.filter.raw": "原始", - "metrics.languages": "Languages", + "metrics.languages": "语言", "metrics.operating-systems": "操作系统", "metrics.page-views": "页面浏览量", "metrics.pages": "网页", From 5d799a327bbe0ac43a76fcdc1aff65d5401a4ad1 Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Thu, 24 Mar 2022 23:20:06 +0100 Subject: [PATCH 22/34] fixup! Rename ref to prevent collision with react elements Signed-off-by: Kevin Decherf --- lib/filters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/filters.js b/lib/filters.js index 945a6011..fb6b435a 100644 --- a/lib/filters.js +++ b/lib/filters.js @@ -74,7 +74,7 @@ export const refFilter = (data, { domain, domainOnly, raw }) => { if (protocol.startsWith('http')) { const path = removeTrailingSlash(pathname); - const referrer = searchParams.get('ref'); + const referrer = searchParams.get('referrer'); const query = referrer ? `?referrer=${referrer}` : ''; return removeTrailingSlash(`${removeWWW(hostname)}${path}`) + query; From 1269bea870c02635a4bb8d7651deed9a6aab63e9 Mon Sep 17 00:00:00 2001 From: Kevin Decherf Date: Thu, 24 Mar 2022 23:20:19 +0100 Subject: [PATCH 23/34] fixup! Update metric tables when filtering on referrer Signed-off-by: Kevin Decherf --- pages/api/website/[id]/metrics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/api/website/[id]/metrics.js b/pages/api/website/[id]/metrics.js index 941b99ca..675427db 100644 --- a/pages/api/website/[id]/metrics.js +++ b/pages/api/website/[id]/metrics.js @@ -75,7 +75,7 @@ export default async (req, res) => { { domain, url: type !== 'url' && url, - referrer: referrer, + referrer, }, ); From 4200b8a214c8763732c8c82fe715edbd22cdc141 Mon Sep 17 00:00:00 2001 From: Lemonawa Date: Sat, 26 Mar 2022 17:15:18 +0800 Subject: [PATCH 24/34] Update zh-CN.json --- lang/zh-CN.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/zh-CN.json b/lang/zh-CN.json index 2efe028c..66127402 100644 --- a/lang/zh-CN.json +++ b/lang/zh-CN.json @@ -4,8 +4,8 @@ "label.add-website": "添加网站", "label.administrator": "管理员", "label.all": "所有", - "label.all-events": "All events", - "label.all-time": "All time", + "label.all-events": "所有事件", + "label.all-time": "所有时间", "label.all-websites": "全部网站", "label.back": "返回", "label.cancel": "取消", @@ -37,7 +37,7 @@ "label.more": "更多", "label.name": "名字", "label.new-password": "新密码", - "label.owner": "Owner", + "label.owner": "所有者", "label.password": "密码", "label.passwords-dont-match": "密码不一致", "label.profile": "个人资料", @@ -46,12 +46,12 @@ "label.refresh": "刷新", "label.required": "必填", "label.reset": "重置", - "label.reset-website": "Reset statistics", + "label.reset-website": "重置统计数据", "label.save": "保存", "label.settings": "设置", "label.share-url": "共享链接", "label.single-day": "单日", - "label.theme": "Theme", + "label.theme": "主题", "label.this-month": "本月", "label.this-week": "本周", "label.this-year": "今年", @@ -78,10 +78,10 @@ "message.no-websites-configured": "你还没有设置任何网站。", "message.page-not-found": "网页未找到。", "message.powered-by": "由 {name} 提供支持", - "message.reset-warning": "All statistics for this website will be deleted, but your tracking code will remain intact.", + "message.reset-warning": "本网站的所有统计数据将被删除,但您的跟踪代码将保持不变。", "message.save-success": "保存成功。", "message.share-url": "这是 {target} 的共享链接。", - "message.toggle-charts": "Toggle charts", + "message.toggle-charts": "切换图表", "message.track-stats": "把以下代码放到你的网站的 {head} 部分来收集 {target} 的数据。", "message.type-delete": "在下方输入框输入 {delete} 以确认删除。", "message.type-reset": "在下方输入框输入 {reset} 以确认删除。", From 9aac74c25667ff673f4ce5834b338851fb15c311 Mon Sep 17 00:00:00 2001 From: Jerem Dlcn <44464165+JeremDlcn@users.noreply.github.com> Date: Sat, 26 Mar 2022 22:02:19 +0100 Subject: [PATCH 25/34] Update fr-FR.json translated the right file this time --- lang/fr-FR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/fr-FR.json b/lang/fr-FR.json index b7cee440..6698521d 100644 --- a/lang/fr-FR.json +++ b/lang/fr-FR.json @@ -28,7 +28,7 @@ "label.enable-share-url": "Activer le partage d'URL", "label.invalid": "Invalide", "label.invalid-domain": "Domaine invalide", - "label.language": "Language", + "label.language": "Langage", "label.last-days": "{x} derniers jours", "label.last-hours": "{x} dernières heures", "label.logged-in-as": "Connecté en tant que {username}", @@ -51,7 +51,7 @@ "label.settings": "Paramètres", "label.share-url": "Partager l'URL", "label.single-day": "Journée", - "label.theme": "Theme", + "label.theme": "Thème", "label.this-month": "Ce mois ci", "label.this-week": "Cette semaine", "label.this-year": "Cette année", From d4fe64acc0e7c932003f82cc96849284ae133bc9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 27 Mar 2022 04:27:37 +0000 Subject: [PATCH 26/34] build(deps): bump minimist from 1.2.5 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3df31185..c13da537 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4331,9 +4331,9 @@ minimist-options@4.1.0, minimist-options@^4.0.2: kind-of "^6.0.3" 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== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass@^3.0.0: version "3.1.6" From f0b207f6a29a9c2e5b847fa0587528bc901c2b75 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Thu, 31 Mar 2022 09:55:42 -0700 Subject: [PATCH 27/34] Updated packages. --- assets/logo.svg | 4 +- package.json | 10 +- yarn.lock | 592 +++++++++++++++++++----------------------------- 3 files changed, 242 insertions(+), 364 deletions(-) diff --git a/assets/logo.svg b/assets/logo.svg index c80f1668..f0e52261 100644 --- a/assets/logo.svg +++ b/assets/logo.svg @@ -1,2 +1,2 @@ - - \ No newline at end of file + + diff --git a/package.json b/package.json index 7b6b2ec9..34dd217d 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,6 @@ "dependencies": { "@fontsource/inter": "4.5.5", "@prisma/client": "3.11.0", - "async-retry": "^1.3.3", "bcryptjs": "^2.4.3", "chalk": "^4.1.1", "chart.js": "^2.9.4", @@ -72,8 +71,6 @@ "fs-extra": "^10.0.1", "immer": "^9.0.12", "ipaddr.js": "^2.0.1", - "is-ci": "^3.0.1", - "is-docker": "^3.0.0", "is-localhost-ip": "^1.4.0", "isbot": "^3.4.5", "jose": "2.0.5", @@ -81,7 +78,6 @@ "moment-timezone": "^0.5.33", "next": "12.1.0", "node-fetch": "^3.2.3", - "prompts": "2.4.2", "prop-types": "^15.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", @@ -102,14 +98,18 @@ "@formatjs/cli": "^4.2.29", "@rollup/plugin-buble": "^0.21.3", "@svgr/webpack": "^6.2.1", + "async-retry": "^1.3.3", "cross-env": "^7.0.3", "del": "^6.0.0", "dotenv-cli": "^4.0.0", "eslint": "^7.32.0", "eslint-config-next": "^12.0.1", + "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.0.0", "extract-react-intl-messages": "^4.1.1", "husky": "^7.0.0", + "is-ci": "^3.0.1", + "is-docker": "^3.0.0", "lint-staged": "^11.0.0", "npm-run-all": "^4.1.5", "postcss": "^8.4.12", @@ -118,8 +118,8 @@ "postcss-preset-env": "^7.4.2", "postcss-rtlcss": "^3.5.3", "prettier": "^2.6.0", - "prettier-eslint": "^13.0.0", "prisma": "3.11.0", + "prompts": "2.4.2", "rollup": "^2.70.1", "rollup-plugin-terser": "^7.0.2", "stylelint": "^14.5.3", diff --git a/yarn.lock b/yarn.lock index ea41b0d0..b3e1baf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -947,20 +947,27 @@ "@babel/plugin-transform-typescript" "^7.16.7" "@babel/runtime-corejs3@^7.10.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" - integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz#d7dd49fb812f29c61c59126da3792d8740d4e284" + integrity sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ== dependencies: core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.8.4": version "7.17.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" + integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -994,7 +1001,7 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@csstools/postcss-color-function@^1.0.2": +"@csstools/postcss-color-function@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz#251c961a852c99e9aabdbbdbefd50e9a96e8a9ff" integrity sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ== @@ -1024,7 +1031,7 @@ "@csstools/postcss-progressive-custom-properties" "^1.1.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-is-pseudo-class@^2.0.0": +"@csstools/postcss-is-pseudo-class@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz#472fff2cf434bdf832f7145b2a5491587e790c9e" integrity sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q== @@ -1038,7 +1045,7 @@ dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-oklab-function@^1.0.1": +"@csstools/postcss-oklab-function@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz#87cd646e9450347a5721e405b4f7cc35157b7866" integrity sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg== @@ -1046,7 +1053,7 @@ "@csstools/postcss-progressive-custom-properties" "^1.1.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.2.0": +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== @@ -1244,10 +1251,10 @@ resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.0.tgz#73713399399b34aa5a01771fb73272b55b22c314" integrity sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ== -"@next/eslint-plugin-next@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.0.tgz#32586a11378b3ffa5a93ac40a3c44ad99d70e95a" - integrity sha512-WFiyvSM2G5cQmh32t/SiQuJ+I2O+FHVlK/RFw5b1565O2kEM/36EXncjt88Pa+X5oSc+1SS+tWxowWJd1lqI+g== +"@next/eslint-plugin-next@12.1.1": + version "12.1.1" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.1.tgz#e3e51503e9d7f987a0e080344648bc84ac1e8eb8" + integrity sha512-5hd1VFWZzECADhvA+OE+g0CnrRBFZbPm03HbiUtpk7XeluNn7xVxBU6XvNQA+YrQ7qe5jCK9q7R8MbI9R55Y/Q== dependencies: glob "7.1.7" @@ -1453,10 +1460,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rushstack/eslint-patch@^1.0.8": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz#7f698254aadf921e48dda8c0a6b304026b8a9323" - integrity sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A== +"@rushstack/eslint-patch@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64" + integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw== "@svgr/babel-plugin-add-jsx-attribute@^6.0.0": version "6.0.0" @@ -1607,11 +1614,6 @@ dependencies: magic-string "^0.25.0" -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" @@ -1637,7 +1639,7 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.9": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== @@ -1703,96 +1705,48 @@ dependencies: schema-utils "*" -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== +"@typescript-eslint/parser@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.10.1.tgz#4ce9633cc33fc70bc13786cb793c1a76fe5ad6bd" + integrity sha512-GReo3tjNBwR5RnRO0K2wDIDN31cM3MmDtgyQ85oAxAmC5K3j/g85IjP+cDfcqDsDDBf1HNKQAD0WqOYL8jXqUA== dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^3.0.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/parser@^5.0.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.14.0.tgz#7c79f898aa3cff0ceee6f1d34eeed0f034fb9ef3" - integrity sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw== - dependencies: - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/typescript-estree" "5.14.0" + "@typescript-eslint/scope-manager" "5.10.1" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/typescript-estree" "5.10.1" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" - integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== +"@typescript-eslint/scope-manager@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809" + integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg== dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== +"@typescript-eslint/types@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea" + integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q== -"@typescript-eslint/types@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" - integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== - -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== +"@typescript-eslint/typescript-estree@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15" + integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ== dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== +"@typescript-eslint/visitor-keys@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b" + integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ== dependencies: - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== - dependencies: - "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/types" "5.10.1" eslint-visitor-keys "^3.0.0" "@vue/compiler-core@3.2.31", "@vue/compiler-core@^3.2.23": @@ -1900,7 +1854,7 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -1947,7 +1901,7 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.8.0: version "8.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== @@ -1957,6 +1911,16 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -1969,27 +1933,12 @@ ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -2084,14 +2033,14 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.2: - version "10.4.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" - integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== +autoprefixer@^10.4.4: + version "10.4.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e" + integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA== dependencies: - browserslist "^4.19.1" - caniuse-lite "^1.0.30001297" - fraction.js "^4.1.2" + browserslist "^4.20.2" + caniuse-lite "^1.0.30001317" + fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -2181,14 +2130,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1: +braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.19.3: +browserslist@^4.17.5: version "4.20.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== @@ -2199,6 +2148,17 @@ browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.19.3: node-releases "^2.0.2" picocolors "^1.0.0" +browserslist@^4.19.1, browserslist@^4.20.2: + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== + dependencies: + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + buble@^0.20.0: version "0.20.0" resolved "https://registry.yarnpkg.com/buble/-/buble-0.20.0.tgz#a143979a8d968b7f76b57f38f2e7ce7cfe938d1f" @@ -2249,21 +2209,15 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001313: +caniuse-lite@^1.0.30001283: version "1.0.30001314" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596" integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw== -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" +caniuse-lite@^1.0.30001313, caniuse-lite@^1.0.30001317: + version "1.0.30001320" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz#8397391bec389b8ccce328636499b7284ee13285" + integrity sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA== chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2406,11 +2360,6 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -common-tags@^1.4.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2530,10 +2479,10 @@ css-what@^5.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== -cssdb@^6.4.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.4.1.tgz#a2b5955e3283d8df6b6bb86e4107fedaeec1521b" - integrity sha512-R70R/Q1fPlM1D6Y+Kpat0QjiY+aMsY2/8lekdVoYcJ7ZQs9kw71W78FdOMf8DFq975KHQf1089PNg1dLsbAhoA== +cssdb@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.5.0.tgz#61264b71f29c834f09b59cb3e5b43c8226590122" + integrity sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA== cssesc@^3.0.0: version "3.0.0" @@ -2651,9 +2600,9 @@ data-uri-to-buffer@^4.0.0: integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== date-fns-tz@^1.1.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.0.tgz#6c83d4bdf20d54060cf176d96a3ca45043b36a84" - integrity sha512-r6ye6PmGEvkF467/41qzU71oGwv9kHTnV3vtSZdyV6VThwPID47ZH7FtR7zQWrhgOUWkYySm2ems2w6ZfNUqoA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.1.tgz#88b6374e5a74cfb11ec2d2b120cfe0bc02eeb862" + integrity sha512-Uy+wph6HcQ0IG8TWbVyXicgDmB1zdvb0CoIknZQaxiTun4uSfxLR+8gSTC2C3KCLq+0fEIuEtJ/ORDRIn6doQw== date-fns@^2.23.0: version "2.28.0" @@ -2679,13 +2628,20 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" +debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -2752,11 +2708,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlv@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2826,10 +2777,10 @@ dotenv@^8.1.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -electron-to-chromium@^1.4.76: - version "1.4.82" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.82.tgz#51e123ca434b1eba8c434ece2b54f095b304a651" - integrity sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw== +electron-to-chromium@^1.4.76, electron-to-chromium@^1.4.84: + version "1.4.94" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.94.tgz#f19206c977361264a51d53a7ea7ef861a94baa10" + integrity sha512-CoOKsuACoa0PAG3hQXxbh/XDiFcjGuSyGKUi09cjMHOt6RCi7/EXgXhaFF3I+aC89Omudqmkzd0YOQKxwtf/Bg== emoji-regex@^8.0.0: version "8.0.0" @@ -2905,7 +2856,7 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2916,26 +2867,34 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-next@^12.0.1: - version "12.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.0.tgz#8ace680dc5207e6ab6c915f3989adec122f582e7" - integrity sha512-tBhuUgoDITcdcM7xFvensi9I5WTI4dnvH4ETGRg1U8ZKpXrZsWQFdOKIDzR3RLP5HR3xXrLviaMM4c3zVoE/pA== + version "12.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.1.tgz#11f948c5f4959267c2157dff8f2c28d067e3e1d9" + integrity sha512-+Ql9F07Pafs+cDgy8Zp0F8FxCBq7ke02ZyC2/MMEiGAX+WlnuUCrboBDnfzmHJpAAkcBPjUthunu6LBnF9KWIQ== dependencies: - "@next/eslint-plugin-next" "12.1.0" - "@rushstack/eslint-patch" "^1.0.8" - "@typescript-eslint/parser" "^5.0.0" - eslint-import-resolver-node "^0.3.4" - eslint-import-resolver-typescript "^2.4.0" - eslint-plugin-import "^2.25.2" - eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.27.0" - eslint-plugin-react-hooks "^4.3.0" + "@next/eslint-plugin-next" "12.1.1" + "@rushstack/eslint-patch" "1.0.8" + "@typescript-eslint/parser" "5.10.1" + eslint-import-resolver-node "0.3.4" + eslint-import-resolver-typescript "2.4.0" + eslint-plugin-import "2.25.2" + eslint-plugin-jsx-a11y "6.5.1" + eslint-plugin-react "7.29.1" + eslint-plugin-react-hooks "4.3.0" -eslint-config-prettier@^8.3.0: +eslint-config-prettier@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== -eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6: +eslint-import-resolver-node@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-import-resolver-node@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== @@ -2943,18 +2902,18 @@ eslint-import-resolver-node@^0.3.4, eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-import-resolver-typescript@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz#07661966b272d14ba97f597b51e1a588f9722f0a" - integrity sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ== +eslint-import-resolver-typescript@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" + integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== dependencies: - debug "^4.3.1" - glob "^7.1.7" + debug "^4.1.1" + glob "^7.1.6" is-glob "^4.0.1" - resolve "^1.20.0" + resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-module-utils@^2.7.2: +eslint-module-utils@^2.7.0: version "2.7.3" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== @@ -2962,26 +2921,26 @@ eslint-module-utils@^2.7.2: debug "^3.2.7" find-up "^2.1.0" -eslint-plugin-import@^2.25.2: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@2.25.2: + version "2.25.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9" + integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" + eslint-module-utils "^2.7.0" has "^1.0.3" - is-core-module "^2.8.0" + is-core-module "^2.7.0" is-glob "^4.0.3" minimatch "^3.0.4" object.values "^1.1.5" resolve "^1.20.0" - tsconfig-paths "^3.12.0" + tsconfig-paths "^3.11.0" -eslint-plugin-jsx-a11y@^6.5.1: +eslint-plugin-jsx-a11y@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== @@ -3006,15 +2965,15 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.3.0: +eslint-plugin-react-hooks@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== -eslint-plugin-react@^7.27.0: - version "7.29.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.3.tgz#f4eab757f2756d25d6d4c2a58a9e20b004791f05" - integrity sha512-MzW6TuCnDOcta67CkpDyRfRsEVx9FNMDV8wZsDqe1luHPdGTrQIUaUXD27Ja3gHsdOIs/cXzNchWGlqm+qRVRg== +eslint-plugin-react@7.29.1: + version "7.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.1.tgz#6c40bc83142bb63d132a1b3565e2ea655411f800" + integrity sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA== dependencies: array-includes "^3.1.4" array.prototype.flatmap "^1.2.5" @@ -3031,7 +2990,7 @@ eslint-plugin-react@^7.27.0: semver "^6.3.0" string.prototype.matchall "^4.0.6" -eslint-scope@^5.0.0, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -3039,7 +2998,7 @@ eslint-scope@^5.0.0, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== @@ -3061,7 +3020,7 @@ eslint-visitor-keys@^3.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^7.32.0, eslint@^7.9.0: +eslint@^7.32.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== @@ -3107,15 +3066,6 @@ eslint@^7.32.0, eslint@^7.9.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -3130,7 +3080,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1, esquery@^1.4.0: +esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -3338,7 +3288,7 @@ formik@^2.2.9: tiny-warning "^1.0.2" tslib "^1.10.0" -fraction.js@^4.1.2: +fraction.js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== @@ -3445,7 +3395,7 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@^7.1.6, glob@^7.1.7: +glob@^7.1.3, glob@^7.1.6: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -3512,13 +3462,6 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3534,7 +3477,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -3719,7 +3662,7 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -4109,7 +4052,7 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.merge@^4.6.0, lodash.merge@^4.6.2: +lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -4129,7 +4072,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4144,19 +4087,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loglevel-colored-level-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" - integrity sha1-akAhj9x64V/HbD0PPmdsRlOIYD4= - dependencies: - chalk "^1.1.3" - loglevel "^1.4.1" - -loglevel@^1.4.1: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -4277,12 +4207,12 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mimic-fn@^2.1.0: version "2.1.0" @@ -4310,11 +4240,16 @@ 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.5: +minimist@^1.1.3, 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== +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + minipass@^3.0.0: version "3.1.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" @@ -4705,7 +4640,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.2.2, picomatch@^2.2.3: +picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -4744,6 +4679,13 @@ postcss-attribute-case-insensitive@^5.0.0: dependencies: postcss-selector-parser "^6.0.2" +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + postcss-color-functional-notation@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz#f59ccaeb4ee78f1b32987d43df146109cc743073" @@ -4770,10 +4712,10 @@ postcss-custom-media@^8.0.0: resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1" integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g== -postcss-custom-properties@^12.1.4: - version "12.1.4" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz#e3d8a8000f28094453b836dff5132385f2862285" - integrity sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw== +postcss-custom-properties@^12.1.5: + version "12.1.5" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz#e669cfff89b0ea6fc85c45864a32b450cb6b196f" + integrity sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g== dependencies: postcss-value-parser "^4.2.0" @@ -4791,7 +4733,7 @@ postcss-dir-pseudo-class@^6.0.4: dependencies: postcss-selector-parser "^6.0.9" -postcss-double-position-gradients@^3.1.0: +postcss-double-position-gradients@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz#a12cfdb7d11fa1a99ccecc747f0c19718fb37152" integrity sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ== @@ -4799,10 +4741,10 @@ postcss-double-position-gradients@^3.1.0: "@csstools/postcss-progressive-custom-properties" "^1.1.0" postcss-value-parser "^4.2.0" -postcss-env-function@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.5.tgz#b9614d50abd91e4c88a114644a9766880dabe393" - integrity sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA== +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== dependencies: postcss-value-parser "^4.2.0" @@ -4843,9 +4785,9 @@ postcss-image-set-function@^4.0.6: postcss-value-parser "^4.2.0" postcss-import@^14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" - integrity sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g== + version "14.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" + integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" @@ -4856,7 +4798,7 @@ postcss-initial@^4.0.1: resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== -postcss-lab-function@^4.1.1: +postcss-lab-function@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz#b75afe43ba9c1f16bfe9bb12c8109cabd55b5fc2" integrity sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q== @@ -4879,7 +4821,7 @@ postcss-media-query-parser@^0.2.3: resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= -postcss-nesting@^10.1.2: +postcss-nesting@^10.1.3: version "10.1.3" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.3.tgz#f0b1cd7ae675c697ab6a5a5ca1feea4784a2ef77" integrity sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw== @@ -4909,44 +4851,45 @@ postcss-place@^7.0.4: postcss-value-parser "^4.2.0" postcss-preset-env@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz#2ff3e4787bd9d89710659535855d6ce85ce6110b" - integrity sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA== + version "7.4.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz#fb1c8b4cb405da042da0ddb8c5eda7842c08a449" + integrity sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg== dependencies: - "@csstools/postcss-color-function" "^1.0.2" + "@csstools/postcss-color-function" "^1.0.3" "@csstools/postcss-font-format-keywords" "^1.0.0" "@csstools/postcss-hwb-function" "^1.0.0" "@csstools/postcss-ic-unit" "^1.0.0" - "@csstools/postcss-is-pseudo-class" "^2.0.0" + "@csstools/postcss-is-pseudo-class" "^2.0.1" "@csstools/postcss-normalize-display-values" "^1.0.0" - "@csstools/postcss-oklab-function" "^1.0.1" - "@csstools/postcss-progressive-custom-properties" "^1.2.0" - autoprefixer "^10.4.2" - browserslist "^4.19.3" + "@csstools/postcss-oklab-function" "^1.0.2" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + autoprefixer "^10.4.4" + browserslist "^4.20.2" css-blank-pseudo "^3.0.3" css-has-pseudo "^3.0.4" css-prefers-color-scheme "^6.0.3" - cssdb "^6.4.0" + cssdb "^6.5.0" postcss-attribute-case-insensitive "^5.0.0" + postcss-clamp "^4.1.0" postcss-color-functional-notation "^4.2.2" postcss-color-hex-alpha "^8.0.3" postcss-color-rebeccapurple "^7.0.2" postcss-custom-media "^8.0.0" - postcss-custom-properties "^12.1.4" + postcss-custom-properties "^12.1.5" postcss-custom-selectors "^6.0.0" postcss-dir-pseudo-class "^6.0.4" - postcss-double-position-gradients "^3.1.0" - postcss-env-function "^4.0.5" + postcss-double-position-gradients "^3.1.1" + postcss-env-function "^4.0.6" postcss-focus-visible "^6.0.4" postcss-focus-within "^5.0.4" postcss-font-variant "^5.0.0" postcss-gap-properties "^3.0.3" postcss-image-set-function "^4.0.6" postcss-initial "^4.0.1" - postcss-lab-function "^4.1.1" + postcss-lab-function "^4.1.2" postcss-logical "^5.0.4" postcss-media-minmax "^5.0.0" - postcss-nesting "^10.1.2" + postcss-nesting "^10.1.3" postcss-opacity-percentage "^1.1.2" postcss-overflow-shorthand "^3.0.3" postcss-page-break "^3.0.4" @@ -5014,7 +4957,7 @@ postcss@8.4.5: picocolors "^1.0.0" source-map-js "^1.0.1" -postcss@^8.1.10, postcss@^8.3.11, postcss@^8.4.6: +postcss@^8.1.10, postcss@^8.3.11: version "8.4.8" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032" integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ== @@ -5037,24 +4980,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-eslint@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-13.0.0.tgz#769f5c04057278d071847d893ebc7b9817594184" - integrity sha512-P5K31qWgUOQCtJL/3tpvEe28KfP49qbr6MTVEXC7I2k7ci55bP3YDr+glhyCdhIzxGCVp2f8eobfQ5so52RIIA== - dependencies: - "@typescript-eslint/parser" "^3.0.0" - common-tags "^1.4.0" - dlv "^1.1.0" - eslint "^7.9.0" - indent-string "^4.0.0" - lodash.merge "^4.6.0" - loglevel-colored-level-prefix "^1.0.0" - prettier "^2.0.0" - pretty-format "^23.0.1" - require-relative "^0.8.7" - typescript "^3.9.3" - vue-eslint-parser "~7.1.0" - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -5062,23 +4987,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== - prettier@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== - -pretty-format@^23.0.1: - version "23.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" - integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" + version "2.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== prisma@3.11.0: version "3.11.0" @@ -5301,7 +5213,7 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.3.1: +regexp.prototype.flags@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== @@ -5374,11 +5286,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5389,7 +5296,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -5534,7 +5441,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.2.1, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -5715,17 +5622,17 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: strip-ansi "^6.0.1" string.prototype.matchall@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" - integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== + version "4.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" es-abstract "^1.19.1" get-intrinsic "^1.1.1" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" + regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" string.prototype.padend@^3.0.0: @@ -5762,13 +5669,6 @@ stringify-object@3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5829,15 +5729,15 @@ stylelint-config-recommended@^7.0.0: integrity sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q== stylelint@^14.5.3: - version "14.5.3" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.5.3.tgz#103b6670128ba3dea69fe3a1a07c4a5d3e0e3450" - integrity sha512-omHETL+kGHR+fCXFK1SkZD/A+emCP9esggAdWEl8GPjTNeyRYj+H6uetRDcU+7E451zwWiUYGVAX+lApsAZgsQ== + version "14.6.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.6.1.tgz#aff137b0254515fc36b91921d88a3eb2edc194bf" + integrity sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q== dependencies: balanced-match "^2.0.0" colord "^2.9.2" cosmiconfig "^7.0.1" css-functions-list "^3.0.1" - debug "^4.3.3" + debug "^4.3.4" execall "^2.0.0" fast-glob "^3.2.11" fastest-levenshtein "^1.0.12" @@ -5858,7 +5758,7 @@ stylelint@^14.5.3: normalize-path "^3.0.0" normalize-selector "^0.2.0" picocolors "^1.0.0" - postcss "^8.4.6" + postcss "^8.4.12" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" @@ -5882,11 +5782,6 @@ supports-color@8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6026,14 +5921,14 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -tsconfig-paths@^3.12.0, tsconfig-paths@^3.9.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz#f3e9b8f6876698581d94470c03c95b3a48c0e3d7" - integrity sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw== +tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" - minimist "^1.2.0" + minimist "^1.2.6" strip-bom "^3.0.0" tslib@^1.10.0, tslib@^1.8.1: @@ -6046,7 +5941,7 @@ tslib@^2.0.1, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tsutils@^3.17.1, tsutils@^3.21.0: +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -6097,11 +5992,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^3.9.3: - version "3.9.10" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" - integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== - typescript@^4.0, typescript@^4.5: version "4.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" @@ -6215,18 +6105,6 @@ vary@^1: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vue-eslint-parser@~7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.1.1.tgz#c43c1c715ff50778b9a7e9a4e16921185f3425d3" - integrity sha512-8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA== - dependencies: - debug "^4.1.1" - eslint-scope "^5.0.0" - eslint-visitor-keys "^1.1.0" - espree "^6.2.1" - esquery "^1.0.1" - lodash "^4.17.15" - vue@^3.2.23: version "3.2.31" resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.31.tgz#e0c49924335e9f188352816788a4cca10f817ce6" From afe68f6e21123610fc0eaab4e03eccfc65fecfa7 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Thu, 31 Mar 2022 19:25:04 -0700 Subject: [PATCH 28/34] Update prisma seed files. --- prisma/mysql/seed.js | 1 - prisma/postgresql/seed.js | 1 - prisma/seed.js | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 120000 prisma/mysql/seed.js delete mode 120000 prisma/postgresql/seed.js diff --git a/prisma/mysql/seed.js b/prisma/mysql/seed.js deleted file mode 120000 index fc84d113..00000000 --- a/prisma/mysql/seed.js +++ /dev/null @@ -1 +0,0 @@ -../seed.js \ No newline at end of file diff --git a/prisma/postgresql/seed.js b/prisma/postgresql/seed.js deleted file mode 120000 index fc84d113..00000000 --- a/prisma/postgresql/seed.js +++ /dev/null @@ -1 +0,0 @@ -../seed.js \ No newline at end of file diff --git a/prisma/seed.js b/prisma/seed.js index b954e5b6..12f59004 100644 --- a/prisma/seed.js +++ b/prisma/seed.js @@ -8,13 +8,12 @@ const hashPassword = password => { }; async function main() { - const password = hashPassword(process.env.ADMIN_PASSWORD || 'umami'); await prisma.account.upsert({ where: { username: 'admin' }, update: {}, create: { username: 'admin', - password: password, + password: hashPassword(process.env.ADMIN_PASSWORD || 'umami'), is_admin: true, }, }); From 5d4ed6bd1bf18a32de97dbe1d9f9bba4252d3cbf Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 1 Apr 2022 22:26:48 -0700 Subject: [PATCH 29/34] Updated packages. Use React 18. --- package.json | 4 +- yarn.lock | 267 ++++++++++++++++++++++++++------------------------- 2 files changed, 137 insertions(+), 134 deletions(-) diff --git a/package.json b/package.json index 34dd217d..55cf5349 100644 --- a/package.json +++ b/package.json @@ -79,8 +79,8 @@ "next": "12.1.0", "node-fetch": "^3.2.3", "prop-types": "^15.7.2", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-intl": "^5.24.7", "react-simple-maps": "^2.3.0", "react-spring": "^9.4.4", diff --git a/yarn.lock b/yarn.lock index b3e1baf2..60393b9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -274,11 +274,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== +"@babel/parser@^7.16.4": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -1081,12 +1086,12 @@ integrity sha512-mWnePEroLfaJQWmynipzOVcH6JwT8Jta3+yLsC5Pm/snHBXnOiAOnjBqYjKnvXwJ4eUPt2AaAhyrtwCgWQRGOg== "@formatjs/cli@^4.2.29": - version "4.8.2" - resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-4.8.2.tgz#65b08c01d0ee0099d56c419ecd49c0bf2f947f56" - integrity sha512-nYG9e2tH3xxLbdvlq1KHUdgjfLICa16wY5fD82JTUyiixJ0tDIlMjT3BbEHwKSCYyIxcVme5ODcduZ4gRM+b5w== + version "4.8.3" + resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-4.8.3.tgz#8984be6f1d333857d692f747cb8b16c663c1b354" + integrity sha512-YmOTqKjmB4M/KJsE+e2k8IyViWwSrZwoW/lv2gLNGwucr+hc0+dWpP4oZzl07WSoVWW7NrbdvF8CEBopbfnmLQ== dependencies: - "@formatjs/icu-messageformat-parser" "2.0.18" - "@formatjs/ts-transformer" "3.9.2" + "@formatjs/icu-messageformat-parser" "2.0.19" + "@formatjs/ts-transformer" "3.9.3" "@types/estree" "^0.0.50" "@types/fs-extra" "^9.0.1" "@types/json-stable-stringify" "^1.0.32" @@ -1102,12 +1107,12 @@ typescript "^4.5" vue "^3.2.23" -"@formatjs/ecma402-abstract@1.11.3": - version "1.11.3" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.3.tgz#f25276dfd4ef3dac90da667c3961d8aa9732e384" - integrity sha512-kP/Buv5vVFMAYLHNvvUzr0lwRTU0u2WTy44Tqwku1X3C3lJ5dKqDCYVqA8wL+Y19Bq+MwHgxqd5FZJRCIsLRyQ== +"@formatjs/ecma402-abstract@1.11.4": + version "1.11.4" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" + integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw== dependencies: - "@formatjs/intl-localematcher" "0.2.24" + "@formatjs/intl-localematcher" "0.2.25" tslib "^2.1.0" "@formatjs/ecma402-abstract@1.4.0": @@ -1131,45 +1136,45 @@ dependencies: tslib "^2.1.0" -"@formatjs/icu-messageformat-parser@2.0.18": - version "2.0.18" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.18.tgz#b09e8f16b88e988fd125e7c5810300e8a6dd2c42" - integrity sha512-vquIzsAJJmZ5jWVH8dEgUKcbG4yu3KqtyPet+q35SW5reLOvblkfeCXTRW2TpIwNXzdVqsJBwjbTiRiSU9JxwQ== +"@formatjs/icu-messageformat-parser@2.0.19": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.19.tgz#3a9ae986b9e42b6a833aceab010ee88e36020d26" + integrity sha512-8HsLm9YLyVVIDMyBJb7wmve2wGd461cUwJ470eUog5YH5ZsF4p5lgvaJ+oGKxz1mrSMNNdDHU9v/NDsS+z+ilg== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" - "@formatjs/icu-skeleton-parser" "1.3.5" + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/icu-skeleton-parser" "1.3.6" tslib "^2.1.0" -"@formatjs/icu-skeleton-parser@1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.5.tgz#babc93a1c36383cf87cbb3d2f2145d26c2f7cb40" - integrity sha512-Nhyo2/6kG7ZfgeEfo02sxviOuBcvtzH6SYUharj3DLCDJH3A/4OxkKcmx/2PWGX4bc6iSieh+FA94CsKDxnZBQ== +"@formatjs/icu-skeleton-parser@1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz#4ce8c0737d6f07b735288177049e97acbf2e8964" + integrity sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" + "@formatjs/ecma402-abstract" "1.11.4" tslib "^2.1.0" -"@formatjs/intl-displaynames@5.4.2": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-5.4.2.tgz#feb6b41087a88286d178032490a8ca78bafd4c56" - integrity sha512-SLesCDan9NCMqBbHPXMEwqAcPn3tnbQw0sv0rssH1JQDLDUQYwKXL93kz30X3yskTyQS7N+pd47bhoIe3kbXyw== +"@formatjs/intl-displaynames@5.4.3": + version "5.4.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz#e468586694350c722c7efab1a31fcde68aeaed8b" + integrity sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" - "@formatjs/intl-localematcher" "0.2.24" + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/intl-localematcher" "0.2.25" tslib "^2.1.0" -"@formatjs/intl-listformat@6.5.2": - version "6.5.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-6.5.2.tgz#7fbc310db89e866250e34084e914894c67e09254" - integrity sha512-/IYagQJkzTvpBlhhaysGYNgM3o72WBg1ZWZcpookkgXEJbINwLP5kVagHxmgxffYKs1CDzQ8rmKHghu2qR/7zw== +"@formatjs/intl-listformat@6.5.3": + version "6.5.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz#f29da613a8062dc3e4e3d847ba890c3ea745f051" + integrity sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" - "@formatjs/intl-localematcher" "0.2.24" + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/intl-localematcher" "0.2.25" tslib "^2.1.0" -"@formatjs/intl-localematcher@0.2.24": - version "0.2.24" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.24.tgz#b49fd753c0f54421f26a3c1d0e9cf98a3966e78f" - integrity sha512-K/HRGo6EMnCbhpth/y3u4rW4aXkmQNqRe1L2G+Y5jNr3v0gYhvaucV8WixNju/INAMbPBlbsRBRo/nfjnoOnxQ== +"@formatjs/intl-localematcher@0.2.25": + version "0.2.25" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz#60892fe1b271ec35ba07a2eb018a2dd7bca6ea3a" + integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA== dependencies: tslib "^2.1.0" @@ -1181,25 +1186,25 @@ "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" -"@formatjs/intl@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.1.0.tgz#383b186b1f26195ac896fc6912871abccf9dad2d" - integrity sha512-1iGGqKcCym+ZH+cktHa6YILVGn8Sve+yuYK7hJpN21JiPKCPJuFJViKFY6rDM5jnj5LDCeH8N5YbhQjccDVOVA== +"@formatjs/intl@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.1.1.tgz#288f130a15b85ec1f4d022a379a5c88b27767bcb" + integrity sha512-iUjBnV2XE+mS3run+Rj/96rfxvwSiCsqMrSbIWoU4dOjIYil7boZK2mCamxoz8CqiiL4VD4ym5EEDbYPWirlFA== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" + "@formatjs/ecma402-abstract" "1.11.4" "@formatjs/fast-memoize" "1.2.1" - "@formatjs/icu-messageformat-parser" "2.0.18" - "@formatjs/intl-displaynames" "5.4.2" - "@formatjs/intl-listformat" "6.5.2" - intl-messageformat "9.11.4" + "@formatjs/icu-messageformat-parser" "2.0.19" + "@formatjs/intl-displaynames" "5.4.3" + "@formatjs/intl-listformat" "6.5.3" + intl-messageformat "9.12.0" tslib "^2.1.0" -"@formatjs/ts-transformer@3.9.2": - version "3.9.2" - resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.9.2.tgz#958582b16ed9125fd904c051a9dda1ecd2474a5a" - integrity sha512-Iff+ca1ue3IOb/PDNANR6++EArwlyMpW+t6AL4MG5sordpgflsIh8BMz6nGs+/tUOjP0xioNAu/acYiQ+rW5Bw== +"@formatjs/ts-transformer@3.9.3": + version "3.9.3" + resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.9.3.tgz#714a7ec9daff38fdedd3bdd990e21d382cd793c8" + integrity sha512-TCxBcCaX+trBD964epl0jS0geugN1qw/7ZTRPmvJdu6JYK3WeVMK081CVWpI9yoXuuTa22Ec4UGyG/wp3dC5Cw== dependencies: - "@formatjs/icu-messageformat-parser" "2.0.18" + "@formatjs/icu-messageformat-parser" "2.0.19" "@types/node" "14 || 16 || 17" chalk "^4.0.0" tslib "^2.1.0" @@ -1251,10 +1256,10 @@ resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.0.tgz#73713399399b34aa5a01771fb73272b55b22c314" integrity sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ== -"@next/eslint-plugin-next@12.1.1": - version "12.1.1" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.1.tgz#e3e51503e9d7f987a0e080344648bc84ac1e8eb8" - integrity sha512-5hd1VFWZzECADhvA+OE+g0CnrRBFZbPm03HbiUtpk7XeluNn7xVxBU6XvNQA+YrQ7qe5jCK9q7R8MbI9R55Y/Q== +"@next/eslint-plugin-next@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.1.4.tgz#9c52637af8eecab24dac3f2e5098376f6fc2dff4" + integrity sha512-BRy565KVK6Cdy8LHaHTiwctLqBu/RT84RLpESug70BDJzBlV8QBvODyx/j7wGhvYqp9kvstM05lyb6JaTkSCcQ== dependencies: glob "7.1.7" @@ -1660,9 +1665,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*", "@types/node@14 || 16 || 17": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + version "17.0.23" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" + integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== "@types/node@14": version "14.18.12" @@ -1685,9 +1690,9 @@ integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== "@types/react@*", "@types/react@16 || 17": - version "17.0.40" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.40.tgz#dc010cee6254d5239a138083f3799a16638e6bad" - integrity sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ== + version "17.0.43" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" + integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1972,7 +1977,7 @@ 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-includes@^3.1.3, array-includes@^3.1.4: +array-includes@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== @@ -2600,9 +2605,9 @@ data-uri-to-buffer@^4.0.0: integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== date-fns-tz@^1.1.4: - version "1.3.1" - resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.1.tgz#88b6374e5a74cfb11ec2d2b120cfe0bc02eeb862" - integrity sha512-Uy+wph6HcQ0IG8TWbVyXicgDmB1zdvb0CoIknZQaxiTun4uSfxLR+8gSTC2C3KCLq+0fEIuEtJ/ORDRIn6doQw== + version "1.3.3" + resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.3.tgz#7884a4b3ed6cd95bfd81831d608e5ef8be500c86" + integrity sha512-Gks46gwbSauBQnV3Oofluj1wTm8J0tM7sbSJ9P+cJq/ZnTCpMohTKmmO5Tn+jQ7dyn0+b8G7cY4O2DZ5P/LXcA== date-fns@^2.23.0: version "2.28.0" @@ -2628,14 +2633,14 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.1, debug@^4.1.0: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" -debug@^4.3.2, debug@^4.3.4: +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2817,9 +2822,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + version "1.19.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.2.tgz#8f7b696d8f15b167ae3640b4060670f3d054143f" + integrity sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2827,15 +2832,15 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.1" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" @@ -2867,11 +2872,11 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-next@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.1.tgz#11f948c5f4959267c2157dff8f2c28d067e3e1d9" - integrity sha512-+Ql9F07Pafs+cDgy8Zp0F8FxCBq7ke02ZyC2/MMEiGAX+WlnuUCrboBDnfzmHJpAAkcBPjUthunu6LBnF9KWIQ== + version "12.1.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.1.4.tgz#939ea2ff33034763300bf1e62482cea91212d274" + integrity sha512-Uj0jrVjoQbg9qerxRjSHoOOv3PEzoZxpb8G9LYct25fsflP8xIiUq0l4WEu2KSB5owuLv5hie7wSMqPEsHj+bQ== dependencies: - "@next/eslint-plugin-next" "12.1.1" + "@next/eslint-plugin-next" "12.1.4" "@rushstack/eslint-patch" "1.0.8" "@typescript-eslint/parser" "5.10.1" eslint-import-resolver-node "0.3.4" @@ -3615,14 +3620,14 @@ intl-messageformat-parser@^5.3.7: dependencies: "@formatjs/intl-numberformat" "^5.5.2" -intl-messageformat@9.11.4: - version "9.11.4" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.11.4.tgz#0f9030bc6d10e6a48592142f88e646d88f05f1f2" - integrity sha512-77TSkNubIy/hsapz6LQpyR6OADcxhWdhSaboPb5flMaALCVkPvAIxr48AlPqaMl4r1anNcvR9rpLWVdwUY1IKg== +intl-messageformat@9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.12.0.tgz#b69d042fa7db229e799eaf3afb09f8ceadd306e7" + integrity sha512-5Q9j21JreB1G27/CqMYsA+pvJ19JjHyhiTSeUuvZK9BCDJGHtOLgpUUcGM+GLHiUuoVMKVeeX1smamiVHQrSKQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" + "@formatjs/ecma402-abstract" "1.11.4" "@formatjs/fast-memoize" "1.2.1" - "@formatjs/icu-messageformat-parser" "2.0.18" + "@formatjs/icu-messageformat-parser" "2.0.19" tslib "^2.1.0" ipaddr.js@^2.0.1: @@ -3703,7 +3708,7 @@ is-localhost-ip@^1.4.0: resolved "https://registry.yarnpkg.com/is-localhost-ip/-/is-localhost-ip-1.4.0.tgz#dd66aaabcbb5dbbc943e00adad5f715d2c3b3a1d" integrity sha512-cN7SzlY7BVxSeoJu5equjsZaKSgD4HCfXrTwu0Jgbq5BbT1BU+D7Lyi/l1KO8H0un0JTlxcQaT/GWVapu+DIDg== -is-negative-zero@^2.0.1: +is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== @@ -3797,7 +3802,7 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-weakref@^1.0.1: +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== @@ -3919,11 +3924,11 @@ jsonify@~0.0.0: integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" - integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" + integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== dependencies: - array-includes "^3.1.3" + array-includes "^3.1.4" object.assign "^4.1.2" kind-of@^6.0.2, kind-of@^6.0.3: @@ -4302,11 +4307,16 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@^3.1.30, nanoid@^3.3.1: +nanoid@^3.1.30: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +nanoid@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" + integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4428,7 +4438,7 @@ object-assign@^4, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.11.0, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== @@ -4917,9 +4927,9 @@ postcss-resolve-nested-selector@^0.1.1: integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= postcss-rtlcss@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/postcss-rtlcss/-/postcss-rtlcss-3.5.3.tgz#d0db97669bc2df693f840acb5765ea6c6aca160f" - integrity sha512-QasqXUUBAqvHtDGJydyw5rJB88S4ZHRdxKsguqfes1PBDkBW97P9GiLCtcg6EuCXRvD+52giBQXKWNWg9gshow== + version "3.5.4" + resolved "https://registry.yarnpkg.com/postcss-rtlcss/-/postcss-rtlcss-3.5.4.tgz#b0aac0641cbba1fc566cbdc044239b3da7d8f9f0" + integrity sha512-5GpWTmBqeM10rRcFBwaKYCg7M6jiytfSS6pwrphTZnNSioxYNUMZH+88xh1oO4AF7Ix9y2qC76/gQq1HIuUf+g== dependencies: rtlcss "^3.5.0" @@ -4957,16 +4967,7 @@ postcss@8.4.5: picocolors "^1.0.0" source-map-js "^1.0.1" -postcss@^8.1.10, postcss@^8.3.11: - version "8.4.8" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032" - integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ== - dependencies: - nanoid "^3.3.1" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.12: +postcss@^8.1.10, postcss@^8.3.11, postcss@^8.4.12: version "8.4.12" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== @@ -5043,14 +5044,13 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023" + integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.21.0" react-fast-compare@^2.0.1: version "2.0.4" @@ -5058,19 +5058,19 @@ react-fast-compare@^2.0.1: integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== react-intl@^5.24.7: - version "5.24.7" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-5.24.7.tgz#a57084543ff8e58ed2d2bc2f1d3b8add3a2f0e3b" - integrity sha512-URPLwISsEmnzft33honGEb87LcK0QtwkZXCNsXcDYTnrYC8ZyeJRTcPYvuXC3mrN6+DxnW52RfHC416zNxfyIg== + version "5.24.8" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-5.24.8.tgz#8387205a8e125ce057fc260108b02ad00b22e9b6" + integrity sha512-uFBA7Fvh3XsHVn6b+jgVTk8hMBpQFvkterWwq4KHrjn8nMmLJf6lGqPawAcmhXes0q29JruCQyKX0vj+G7iokA== dependencies: - "@formatjs/ecma402-abstract" "1.11.3" - "@formatjs/icu-messageformat-parser" "2.0.18" - "@formatjs/intl" "2.1.0" - "@formatjs/intl-displaynames" "5.4.2" - "@formatjs/intl-listformat" "6.5.2" + "@formatjs/ecma402-abstract" "1.11.4" + "@formatjs/icu-messageformat-parser" "2.0.19" + "@formatjs/intl" "2.1.1" + "@formatjs/intl-displaynames" "5.4.3" + "@formatjs/intl-listformat" "6.5.3" "@types/hoist-non-react-statics" "^3.3.1" "@types/react" "16 || 17" hoist-non-react-statics "^3.3.2" - intl-messageformat "9.11.4" + intl-messageformat "9.12.0" tslib "^2.1.0" react-is@^16.13.1, react-is@^16.7.0: @@ -5123,13 +5123,12 @@ react-window@^1.8.6: "@babel/runtime" "^7.0.0" memoize-one ">=3.1.1 <6" -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96" + integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-babelrc-up@^1.1.0: version "1.1.0" @@ -5394,13 +5393,12 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" + integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@*: version "4.0.0" @@ -5992,11 +5990,16 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.0, typescript@^4.5: +typescript@^4.0: version "4.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== +typescript@^4.5: + version "4.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" + integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" From 119e4b9a9a32a919b26e1e42aae83ae11cbf8367 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 2 Apr 2022 21:07:08 -0700 Subject: [PATCH 30/34] Updated next and prisma. --- package.json | 6 +- styles/variables.css | 13 --- yarn.lock | 188 +++++++++++++++++++++---------------------- 3 files changed, 96 insertions(+), 111 deletions(-) diff --git a/package.json b/package.json index 55cf5349..2bc90062 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ }, "dependencies": { "@fontsource/inter": "4.5.5", - "@prisma/client": "3.11.0", + "@prisma/client": "3.11.1", "bcryptjs": "^2.4.3", "chalk": "^4.1.1", "chart.js": "^2.9.4", @@ -76,7 +76,7 @@ "jose": "2.0.5", "maxmind": "^4.3.6", "moment-timezone": "^0.5.33", - "next": "12.1.0", + "next": "12.1.4", "node-fetch": "^3.2.3", "prop-types": "^15.7.2", "react": "^18.0.0", @@ -118,7 +118,7 @@ "postcss-preset-env": "^7.4.2", "postcss-rtlcss": "^3.5.3", "prettier": "^2.6.0", - "prisma": "3.11.0", + "prisma": "3.11.1", "prompts": "2.4.2", "rollup": "^2.70.1", "rollup-plugin-terser": "^7.0.2", diff --git a/styles/variables.css b/styles/variables.css index 02e5392f..4c9d7dbf 100644 --- a/styles/variables.css +++ b/styles/variables.css @@ -41,19 +41,6 @@ } [data-theme='dark'] { - /* - --gray50: #080808; - --gray75: #1a1a1a; - --gray100: #1e1e1e; - --gray200: #2c2c2c; - --gray300: #393939; - --gray400: #494949; - --gray500: #5c5c5c; - --gray600: #7c7c7c; - --gray700: #6e6e6e; - --gray800: #a2a2a2; - --gray900: #efefef; - */ --gray50: #252525; --gray75: #2f2f2f; --gray100: #323232; diff --git a/yarn.lock b/yarn.lock index 60393b9f..41703090 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1251,10 +1251,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@next/env@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.0.tgz#73713399399b34aa5a01771fb73272b55b22c314" - integrity sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ== +"@next/env@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.4.tgz#5af629b43075281ecd7f87938802b7cf5b67e94b" + integrity sha512-7gQwotJDKnfMxxXd8xJ2vsX5AzyDxO3zou0+QOXX8/unypA6icw5+wf6A62yKZ6qQ4UZHHxS68pb6UV+wNneXg== "@next/eslint-plugin-next@12.1.4": version "12.1.4" @@ -1263,60 +1263,65 @@ dependencies: glob "7.1.7" -"@next/swc-android-arm64@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz#865ba3a9afc204ff2bdeea49dd64d58705007a39" - integrity sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA== +"@next/swc-android-arm-eabi@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.4.tgz#c3dae178b7c15ad627d2e9b8dfb38caecb5c4ac7" + integrity sha512-FJg/6a3s2YrUaqZ+/DJZzeZqfxbbWrynQMT1C5wlIEq9aDLXCFpPM/PiOyJh0ahxc0XPmi6uo38Poq+GJTuKWw== -"@next/swc-darwin-arm64@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz#08e8b411b8accd095009ed12efbc2f1d4d547135" - integrity sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg== +"@next/swc-android-arm64@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.4.tgz#f320d60639e19ecffa1f9034829f2d95502a9a51" + integrity sha512-LXraazvQQFBgxIg3Htny6G5V5he9EK7oS4jWtMdTGIikmD/OGByOv8ZjLuVLZLtVm3UIvaAiGtlQSLecxJoJDw== -"@next/swc-darwin-x64@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz#fcd684497a76e8feaca88db3c394480ff0b007cd" - integrity sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug== +"@next/swc-darwin-arm64@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.4.tgz#fd578278312613eddcf3aee26910100509941b63" + integrity sha512-SSST/dBymecllZxcqTCcSTCu5o1NKk9I+xcvhn/O9nH6GWjgvGgGkNqLbCarCa0jJ1ukvlBA138FagyrmZ/4rQ== -"@next/swc-linux-arm-gnueabihf@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz#9ec6380a27938a5799aaa6035c205b3c478468a7" - integrity sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog== +"@next/swc-darwin-x64@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.4.tgz#ace5f80d8c8348efe194f6d7074c6213c52b3944" + integrity sha512-p1lwdX0TVjaoDXQVuAkjtxVBbCL/urgxiMCBwuPDO7TikpXtSRivi+mIzBj5q7ypgICFmIAOW3TyupXeoPRAnA== -"@next/swc-linux-arm64-gnu@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz#7f4196dff1049cea479607c75b81033ae2dbd093" - integrity sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q== +"@next/swc-linux-arm-gnueabihf@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.4.tgz#2bf2c83863635f19c71c226a2df936e001cce29c" + integrity sha512-67PZlgkCn3TDxacdVft0xqDCL7Io1/C4xbAs0+oSQ0xzp6OzN2RNpuKjHJrJgKd0DsE1XZ9sCP27Qv0591yfyg== -"@next/swc-linux-arm64-musl@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz#b445f767569cdc2dddee785ca495e1a88c025566" - integrity sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA== +"@next/swc-linux-arm64-gnu@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.4.tgz#d577190f641c9b4b463719dd6b8953b6ba9be8d9" + integrity sha512-OnOWixhhw7aU22TQdQLYrgpgFq0oA1wGgnjAiHJ+St7MLj82KTDyM9UcymAMbGYy6nG/TFOOHdTmRMtCRNOw0g== -"@next/swc-linux-x64-gnu@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz#67610e9be4fbc987de7535f1bcb17e45fe12f90e" - integrity sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A== +"@next/swc-linux-arm64-musl@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.4.tgz#e70ffe70393d8f9242deecdb282ce5a8fd588b14" + integrity sha512-UoRMzPZnsAavdWtVylYxH8DNC7Uy0i6RrvNwT4PyQVdfANBn2omsUkcH5lgS2O7oaz0nAYLk1vqyZDO7+tJotA== -"@next/swc-linux-x64-musl@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz#ea19a23db08a9f2e34ac30401f774cf7d1669d31" - integrity sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw== +"@next/swc-linux-x64-gnu@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.4.tgz#91498a130387fb1961902f2bee55863f8e910cff" + integrity sha512-nM+MA/frxlTLUKLJKorctdI20/ugfHRjVEEkcLp/58LGG7slNaP1E5d5dRA1yX6ISjPcQAkywas5VlGCg+uTvA== -"@next/swc-win32-arm64-msvc@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz#eadf054fc412085659b98e145435bbba200b5283" - integrity sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw== +"@next/swc-linux-x64-musl@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.4.tgz#78057b03c148c121553d41521ad38f6c732762ff" + integrity sha512-GoRHxkuW4u4yKw734B9SzxJwVdyEJosaZ62P7ifOwcujTxhgBt3y76V2nNUrsSuopcKI2ZTDjaa+2wd5zyeXbA== -"@next/swc-win32-ia32-msvc@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz#68faeae10c89f698bf9d28759172b74c9c21bda1" - integrity sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q== +"@next/swc-win32-arm64-msvc@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.4.tgz#05bbaabacac23b8edf6caa99eb86b17550a09051" + integrity sha512-6TQkQze0ievXwHJcVUrIULwCYVe3ccX6T0JgZ1SiMeXpHxISN7VJF/O8uSCw1JvXZYZ6ud0CJ7nfC5HXivgfPg== -"@next/swc-win32-x64-msvc@12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz#d27e7e76c87a460a4da99c5bfdb1618dcd6cd064" - integrity sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg== +"@next/swc-win32-ia32-msvc@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.4.tgz#8fd2fb48f04a2802e51fc320878bf6b411c1c866" + integrity sha512-CsbX/IXuZ5VSmWCpSetG2HD6VO5FTsO39WNp2IR2Ut/uom9XtLDJAZqjQEnbUTLGHuwDKFjrIO3LkhtROXLE/g== + +"@next/swc-win32-x64-msvc@12.1.4": + version "12.1.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.4.tgz#a72ed44c9b1f850986a30fe36c59e01f8a79b5f3" + integrity sha512-JtYuWzKXKLDMgE/xTcFtCm1MiCIRaAc5XYZfYX3n/ZWSI1SJS/GMm+Su0SAHJgRFavJh6U/p998YwO/iGTIgqQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1344,22 +1349,22 @@ resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== -"@prisma/client@3.11.0": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-3.11.0.tgz#6aa05165b641578c74816aaa15b389e0062318ee" - integrity sha512-d42o/tlalaWMmNOR4r5BiR6YYTYEV82eZ2lNKOm5ht3WyYwI9e+zy2MyZnNO4Fx5e08RAhW+GRVcEgKl5faUaQ== +"@prisma/client@3.11.1": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-3.11.1.tgz#bde6dec71ae133d04ce1c6658e3d76627a3c6dc7" + integrity sha512-B3C7zQG4HbjJzUr2Zg9UVkBJutbqq9/uqkl1S138+keZCubJrwizx3RuIvGwI+s+pm3qbsyNqXiZgL3Ir0fSng== dependencies: - "@prisma/engines-version" "3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b" + "@prisma/engines-version" "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" -"@prisma/engines-version@3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b": - version "3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b.tgz#808ab9636184e4a0b2bf79016d6ed72c4a1ed54f" - integrity sha512-bhMW1XybXZyqCf+9QqjP7Oi7xgVHcISVyOZNMm51qeZsy12M1RtHaCcXUFeMMV0JOCZZuPFVr3+0KVpQqK35CQ== +"@prisma/engines-version@3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9": + version "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz#81a1835b495ad287ad7824dbd62f74e9eee90fb9" + integrity sha512-HkcsDniA4iNb/gi0iuyOJNAM7nD/LwQ0uJm15v360O5dee3TM4lWdSQiTYBMK6FF68ACUItmzSur7oYuUZ2zkQ== -"@prisma/engines@3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b": - version "3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b.tgz#4c1093f7b24c433a9cef2e60f13f57f7c89b5cfa" - integrity sha512-m9iZd5F5vP6A2IvKWfHpOO/qK8OOO9nbsV/pdyEkF/1WNe0E8SIWFBKb+HcMLkG9OFbDDBy8QItXmp/mIULuwQ== +"@prisma/engines@3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9": + version "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9.tgz#09ac23f8f615a8586d8d44538060ada199fe872c" + integrity sha512-MILbsGnvmnhCbFGa2/iSnsyGyazU3afzD7ldjCIeLIGKkNBMSZgA2IvpYsAXl+6qFHKGrS3B2otKfV31dwMSQw== "@react-spring/animated@~9.4.4": version "9.4.4" @@ -4322,28 +4327,28 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -next@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/next/-/next-12.1.0.tgz#c33d753b644be92fc58e06e5a214f143da61dd5d" - integrity sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q== +next@12.1.4: + version "12.1.4" + resolved "https://registry.yarnpkg.com/next/-/next-12.1.4.tgz#597a9bdec7aec778b442c4f6d41afd2c64a54b23" + integrity sha512-DA4g97BM4Z0nKtDvCTm58RxdvoQyYzeg0AeVbh0N4Y/D8ELrNu47lQeEgRGF8hV4eQ+Sal90zxrJQQG/mPQ8CQ== dependencies: - "@next/env" "12.1.0" + "@next/env" "12.1.4" caniuse-lite "^1.0.30001283" postcss "8.4.5" - styled-jsx "5.0.0" - use-subscription "1.5.1" + styled-jsx "5.0.1" optionalDependencies: - "@next/swc-android-arm64" "12.1.0" - "@next/swc-darwin-arm64" "12.1.0" - "@next/swc-darwin-x64" "12.1.0" - "@next/swc-linux-arm-gnueabihf" "12.1.0" - "@next/swc-linux-arm64-gnu" "12.1.0" - "@next/swc-linux-arm64-musl" "12.1.0" - "@next/swc-linux-x64-gnu" "12.1.0" - "@next/swc-linux-x64-musl" "12.1.0" - "@next/swc-win32-arm64-msvc" "12.1.0" - "@next/swc-win32-ia32-msvc" "12.1.0" - "@next/swc-win32-x64-msvc" "12.1.0" + "@next/swc-android-arm-eabi" "12.1.4" + "@next/swc-android-arm64" "12.1.4" + "@next/swc-darwin-arm64" "12.1.4" + "@next/swc-darwin-x64" "12.1.4" + "@next/swc-linux-arm-gnueabihf" "12.1.4" + "@next/swc-linux-arm64-gnu" "12.1.4" + "@next/swc-linux-arm64-musl" "12.1.4" + "@next/swc-linux-x64-gnu" "12.1.4" + "@next/swc-linux-x64-musl" "12.1.4" + "@next/swc-win32-arm64-msvc" "12.1.4" + "@next/swc-win32-ia32-msvc" "12.1.4" + "@next/swc-win32-x64-msvc" "12.1.4" nice-try@^1.0.4: version "1.0.5" @@ -4993,12 +4998,12 @@ prettier@^2.6.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== -prisma@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.11.0.tgz#0e384e9d36785711b579fda60117a2d41f79c72c" - integrity sha512-8SdsLPhKR3mOfoo2o73h9mNn3v5kA/RqGA26Sv6qDS78Eh2uepPqt5e8/nwj5EOblYm5HEGuitaXQrOCLb6uTw== +prisma@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.11.1.tgz#fff9c0bcf83cb30c2e1d650882d5eb3c5565e028" + integrity sha512-aYn8bQwt1xwR2oSsVNHT4PXU7EhsThIwmpNB/MNUaaMx5OPLTro6VdNJe/sJssXFLxhamfWeMjwmpXjljo6xkg== dependencies: - "@prisma/engines" "3.11.0-48.b371888aaf8f51357c7457d836b86d12da91658b" + "@prisma/engines" "3.11.1-1.1a2506facaf1a4727b7c26850735e88ec779dee9" progress@^2.0.0: version "2.0.3" @@ -5706,10 +5711,10 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= -styled-jsx@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0.tgz#816b4b92e07b1786c6b7111821750e0ba4d26e77" - integrity sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA== +styled-jsx@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.1.tgz#78fecbbad2bf95ce6cd981a08918ce4696f5fc80" + integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== stylelint-config-css-modules@^3.0.0: version "3.0.0" @@ -6068,13 +6073,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -use-subscription@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" - integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== - dependencies: - object-assign "^4.1.1" - util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" From 99052d80264f8f1b448d3f1b6217a30c7d722b80 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 3 Apr 2022 19:22:20 -0700 Subject: [PATCH 31/34] Use yarn for docker build. --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d204d88c..cc225102 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,5 +37,6 @@ jobs: cache: 'npm' env: DATABASE_TYPE: ${{ matrix.db-type }} - - run: npm install - - run: npm run build --if-present + - run: npm install --global yarn + - run: yarn install + - run: yarn build From e31181c676f69ad2d3901b9d081e6f0ca3e6e1b5 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 3 Apr 2022 20:19:05 -0700 Subject: [PATCH 32/34] Update language bundles. --- .github/workflows/ci.yml | 2 +- public/intl/messages/fr-FR.json | 4 ++-- public/intl/messages/zh-CN.json | 22 +++++++++++----------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc225102..1ac0e37a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,5 +38,5 @@ jobs: env: DATABASE_TYPE: ${{ matrix.db-type }} - run: npm install --global yarn - - run: yarn install + - run: yarn install --frozen-lockfile - run: yarn build diff --git a/public/intl/messages/fr-FR.json b/public/intl/messages/fr-FR.json index 1c553cb8..2eb6249b 100644 --- a/public/intl/messages/fr-FR.json +++ b/public/intl/messages/fr-FR.json @@ -176,7 +176,7 @@ "label.language": [ { "type": 0, - "value": "Language" + "value": "Langage" } ], "label.last-days": [ @@ -326,7 +326,7 @@ "label.theme": [ { "type": 0, - "value": "Theme" + "value": "Thème" } ], "label.this-month": [ diff --git a/public/intl/messages/zh-CN.json b/public/intl/messages/zh-CN.json index acca0bb6..a91b79e7 100644 --- a/public/intl/messages/zh-CN.json +++ b/public/intl/messages/zh-CN.json @@ -32,13 +32,13 @@ "label.all-events": [ { "type": 0, - "value": "All events" + "value": "所有事件" } ], "label.all-time": [ { "type": 0, - "value": "All time" + "value": "所有时间段" } ], "label.all-websites": [ @@ -176,7 +176,7 @@ "label.language": [ { "type": 0, - "value": "Language" + "value": "语言" } ], "label.last-days": [ @@ -250,7 +250,7 @@ "label.owner": [ { "type": 0, - "value": "Owner" + "value": "所有者" } ], "label.password": [ @@ -304,7 +304,7 @@ "label.reset-website": [ { "type": 0, - "value": "Reset statistics" + "value": "重置统计数据" } ], "label.save": [ @@ -334,7 +334,7 @@ "label.theme": [ { "type": 0, - "value": "Theme" + "value": "主题" } ], "label.this-month": [ @@ -428,7 +428,7 @@ "message.confirm-reset": [ { "type": 0, - "value": "Are your sure you want to reset " + "value": "您确定要重置 " }, { "type": 1, @@ -436,7 +436,7 @@ }, { "type": 0, - "value": "'s statistics?" + "value": " 的数据吗?" } ], "message.copied": [ @@ -568,7 +568,7 @@ "message.reset-warning": [ { "type": 0, - "value": "All statistics for this website will be deleted, but your tracking code will remain intact." + "value": "本网站的所有统计数据将被删除,但您的跟踪代码将保持不变。" } ], "message.save-success": [ @@ -594,7 +594,7 @@ "message.toggle-charts": [ { "type": 0, - "value": "Toggle charts" + "value": "切换图表" } ], "message.track-stats": [ @@ -734,7 +734,7 @@ "metrics.languages": [ { "type": 0, - "value": "Languages" + "value": "语言" } ], "metrics.operating-systems": [ From faf6438852bccebdf0ddd95c3a31124843586c49 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 3 Apr 2022 22:25:32 -0700 Subject: [PATCH 33/34] Allow user to change admin username. --- components/settings/AccountSettings.js | 17 +++++++++-------- lib/queries.js | 11 ++++++++++- pages/api/account/index.js | 7 ++----- pages/api/{accounts.js => accounts/index.js} | 0 pages/api/{websites.js => websites/index.js} | 0 5 files changed, 21 insertions(+), 14 deletions(-) rename pages/api/{accounts.js => accounts/index.js} (100%) rename pages/api/{websites.js => websites/index.js} (100%) diff --git a/components/settings/AccountSettings.js b/components/settings/AccountSettings.js index 4929b244..967492db 100644 --- a/components/settings/AccountSettings.js +++ b/components/settings/AccountSettings.js @@ -37,17 +37,18 @@ export default function AccountSettings() { ); - const Buttons = row => - row.username !== 'admin' ? ( - - + const Buttons = row => ( + + + {!row.is_admin && ( - - ) : null; + )} + + ); const columns = [ { diff --git a/lib/queries.js b/lib/queries.js index ed644874..7d3dd7a2 100644 --- a/lib/queries.js +++ b/lib/queries.js @@ -230,7 +230,16 @@ export async function saveEvent(website_id, session_id, url, event_type, event_v } export async function getAccounts() { - return runQuery(prisma.account.findMany()); + return runQuery( + prisma.account.findMany({ + orderBy: [ + { is_admin: 'desc' }, + { + username: 'asc', + }, + ], + }), + ); } export async function getAccountById(user_id) { diff --git a/pages/api/account/index.js b/pages/api/account/index.js index 2ec5f081..101d3e7f 100644 --- a/pages/api/account/index.js +++ b/pages/api/account/index.js @@ -23,10 +23,7 @@ export default async (req, res) => { // Only admin can change these fields if (current_user_is_admin) { - // Cannot change username of admin - if (username !== 'admin') { - data.username = username; - } + data.username = username; data.is_admin = is_admin; } @@ -37,7 +34,7 @@ export default async (req, res) => { return badRequest(res, 'Account already exists'); } } - + console.log('------------------\n', data); const updated = await updateAccount(user_id, data); return ok(res, updated); diff --git a/pages/api/accounts.js b/pages/api/accounts/index.js similarity index 100% rename from pages/api/accounts.js rename to pages/api/accounts/index.js diff --git a/pages/api/websites.js b/pages/api/websites/index.js similarity index 100% rename from pages/api/websites.js rename to pages/api/websites/index.js From 136000c29d3b3a3aca1e268cc882b826286da776 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 3 Apr 2022 23:41:43 -0700 Subject: [PATCH 34/34] Bump version v1.29.0. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bc90062..76e3fdc9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "1.28.0", + "version": "1.29.0", "description": "A simple, fast, website analytics alternative to Google Analytics.", "author": "Mike Cao ", "license": "MIT",