diff --git a/.eslintrc.json b/.eslintrc.json
index 215d6491..6ea8791e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -4,7 +4,12 @@
"es2020": true,
"node": true
},
- "extends": ["eslint:recommended", "plugin:prettier/recommended", "next"],
+ "extends": [
+ "eslint:recommended",
+ "plugin:prettier/recommended",
+ "plugin:import/recommended",
+ "next"
+ ],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
@@ -12,7 +17,27 @@
"ecmaVersion": 11,
"sourceType": "module"
},
+ "settings": {
+ "import/resolver": {
+ "alias": {
+ "map": [
+ ["assets", "./assets"],
+ ["components", "./components"],
+ ["db", "./db"],
+ ["hooks", "./hooks"],
+ ["lang", "./lang"],
+ ["lib", "./lib"],
+ ["public", "./public"],
+ ["queries", "./queries"],
+ ["store", "./store"],
+ ["styles", "./styles"]
+ ],
+ "extensions": [".ts", ".js", ".jsx", ".json"]
+ }
+ }
+ },
"rules": {
+ "no-console": "error",
"react/display-name": "off",
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 80db33c6..c24c2e6d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,6 +7,7 @@ on: [push]
env:
DATABASE_TYPE: postgresql
+ SKIP_DB_CHECK: 1
jobs:
build:
diff --git a/.gitignore b/.gitignore
index 6414cc5f..54410324 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,6 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
+
+*.dev.yml
+
diff --git a/Dockerfile b/Dockerfile
index 48f3df32..eb7ebf1a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -20,7 +20,7 @@ ENV BASE_PATH $BASE_PATH
ENV NEXT_TELEMETRY_DISABLED 1
-RUN yarn build
+RUN yarn build-docker
# Production image, copy all the files and run next
FROM node:16-alpine AS runner
diff --git a/components/common/DateFilter.js b/components/common/DateFilter.js
index 8e50e95a..d568a889 100644
--- a/components/common/DateFilter.js
+++ b/components/common/DateFilter.js
@@ -18,6 +18,10 @@ export const filterOptions = [
),
value: '24hour',
},
+ {
+ label: ,
+ value: '-1day',
+ },
{
label: ,
value: '1week',
diff --git a/components/common/FilterLink.js b/components/common/FilterLink.js
index 459a8ae1..f16258f1 100644
--- a/components/common/FilterLink.js
+++ b/components/common/FilterLink.js
@@ -1,10 +1,10 @@
import React from 'react';
-import Link from 'next/link';
import classNames from 'classnames';
+import Link from 'next/link';
+import { safeDecodeURI } from 'next-basics';
import usePageQuery from 'hooks/usePageQuery';
-import { safeDecodeURI } from 'lib/url';
-import Icon from './Icon';
import External from 'assets/arrow-up-right-from-square.svg';
+import Icon from './Icon';
import styles from './FilterLink.module.css';
export default function FilterLink({ id, value, label, externalUrl }) {
@@ -25,7 +25,7 @@ export default function FilterLink({ id, value, label, externalUrl }) {
{externalUrl && (
-
+
} className={styles.icon} />
)}
diff --git a/components/common/Loading.js b/components/common/Loading.js
index 16d8bb8a..81c8a77e 100644
--- a/components/common/Loading.js
+++ b/components/common/Loading.js
@@ -3,9 +3,9 @@ import PropTypes from 'prop-types';
import classNames from 'classnames';
import styles from './Loading.module.css';
-function Loading({ className }) {
+function Loading({ className, overlay = false }) {
return (
-
+
@@ -15,6 +15,7 @@ function Loading({ className }) {
Loading.propTypes = {
className: PropTypes.string,
+ overlay: PropTypes.bool,
};
export default Loading;
diff --git a/components/common/Loading.module.css b/components/common/Loading.module.css
index 4e56dd8e..a69559e3 100644
--- a/components/common/Loading.module.css
+++ b/components/common/Loading.module.css
@@ -21,6 +21,14 @@
margin: 0;
}
+.loading.overlay {
+ height: 100%;
+ width: 100%;
+ z-index: 10;
+ background: var(--gray400);
+ opacity: 0.4;
+}
+
.loading div {
width: 10px;
height: 10px;
@@ -30,6 +38,10 @@
animation-fill-mode: both;
}
+.loading.overlay div {
+ background: var(--gray900);
+}
+
.loading div + div {
margin-left: 10px;
}
diff --git a/components/common/UpdateNotice.js b/components/common/UpdateNotice.js
index 8bba1694..7419abe8 100644
--- a/components/common/UpdateNotice.js
+++ b/components/common/UpdateNotice.js
@@ -1,8 +1,8 @@
import { useState, useEffect, useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
+import { setItem } from 'next-basics';
import ButtonLayout from 'components/layout/ButtonLayout';
import useStore, { checkVersion } from 'store/version';
-import { setItem } from 'lib/web';
import { REPO_URL, VERSION_CHECK } from 'lib/constants';
import Button from './Button';
import styles from './UpdateNotice.module.css';
diff --git a/components/forms/DeleteForm.js b/components/forms/DeleteForm.js
index 7fa5d6f6..09da94d6 100644
--- a/components/forms/DeleteForm.js
+++ b/components/forms/DeleteForm.js
@@ -8,6 +8,7 @@ import FormLayout, {
FormMessage,
FormRow,
} from 'components/layout/FormLayout';
+import Loading from 'components/common/Loading';
import useApi from 'hooks/useApi';
const CONFIRMATION_WORD = 'DELETE';
@@ -29,8 +30,11 @@ const validate = ({ confirmation }) => {
export default function DeleteForm({ values, onSave, onClose }) {
const { del } = useApi();
const [message, setMessage] = useState();
+ const [deleting, setDeleting] = useState(false);
const handleSubmit = async ({ type, id }) => {
+ setDeleting(true);
+
const { ok, data } = await del(`/${type}/${id}`);
if (ok) {
@@ -39,11 +43,14 @@ export default function DeleteForm({ values, onSave, onClose }) {
setMessage(
data ||
,
);
+
+ setDeleting(false);
}
};
return (
+ {deleting && }
{children} ;
- }
+export default function Page({ className, children }) {
+ return
{children}
;
}
diff --git a/components/metrics/FilterTags.js b/components/metrics/FilterTags.js
index 5b8ed63c..be65540e 100644
--- a/components/metrics/FilterTags.js
+++ b/components/metrics/FilterTags.js
@@ -1,8 +1,8 @@
import React from 'react';
import classNames from 'classnames';
+import { safeDecodeURI } from 'next-basics';
import Button from 'components/common/Button';
import Times from 'assets/times.svg';
-import { safeDecodeURI } from 'lib/url';
import styles from './FilterTags.module.css';
export default function FilterTags({ params, onClick }) {
diff --git a/components/metrics/MetricCard.js b/components/metrics/MetricCard.js
index 429a37d6..eb16904c 100644
--- a/components/metrics/MetricCard.js
+++ b/components/metrics/MetricCard.js
@@ -29,9 +29,9 @@ const MetricCard = ({
: !reverseColors
? styles.negative
: styles.positive
- }`}
+ } ${change >= 0 ? styles.plusSign : ''}`}
>
- {changeProps.x.interpolate(x => `${change >= 0 ? '+' : ''}${format(x)}`)}
+ {changeProps.x.interpolate(x => format(x))}
)}
diff --git a/components/metrics/MetricCard.module.css b/components/metrics/MetricCard.module.css
index 76a69609..a79385aa 100644
--- a/components/metrics/MetricCard.module.css
+++ b/components/metrics/MetricCard.module.css
@@ -37,3 +37,7 @@
.change.negative {
color: var(--red500);
}
+
+.change.plusSign::before {
+ content: '+';
+}
diff --git a/components/metrics/QueryParametersTable.js b/components/metrics/QueryParametersTable.js
index 2d92ad92..6743e6c6 100644
--- a/components/metrics/QueryParametersTable.js
+++ b/components/metrics/QueryParametersTable.js
@@ -1,10 +1,10 @@
import { useState } from 'react';
import { useIntl, defineMessages } from 'react-intl';
-import MetricsTable from './MetricsTable';
+import { safeDecodeURI } from 'next-basics';
import Tag from 'components/common/Tag';
+import FilterButtons from 'components/common/FilterButtons';
import { paramFilter } from 'lib/filters';
-import { safeDecodeURI } from 'lib/url';
-import FilterButtons from '../common/FilterButtons';
+import MetricsTable from './MetricsTable';
const FILTER_COMBINED = 0;
const FILTER_RAW = 1;
diff --git a/components/pages/DashboardEdit.js b/components/pages/DashboardEdit.js
index 4b515f25..4b7cda5f 100644
--- a/components/pages/DashboardEdit.js
+++ b/components/pages/DashboardEdit.js
@@ -3,7 +3,7 @@ import { defineMessages, useIntl } from 'react-intl';
import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
import classNames from 'classnames';
import Button from 'components/common/Button';
-import { sortArrayByMap } from 'lib/array';
+import { firstBy } from 'thenby';
import useDashboard, { saveDashboard } from 'store/dashboard';
import styles from './DashboardEdit.module.css';
@@ -21,8 +21,13 @@ export default function DashboardEdit({ websites }) {
const { formatMessage } = useIntl();
const [order, setOrder] = useState(websiteOrder || []);
- const ordered = useMemo(() => sortArrayByMap(websites, order, 'website_id'), [websites, order]);
-
+ const ordered = useMemo(
+ () =>
+ websites
+ .map(website => ({ ...website, order: order.indexOf(website.website_id) }))
+ .sort(firstBy('order')),
+ [websites, order],
+ );
function handleWebsiteDrag({ destination, source }) {
if (!destination || destination.index === source.index) return;
diff --git a/components/pages/TestConsole.js b/components/pages/TestConsole.js
index e4fa5a52..efeb0264 100644
--- a/components/pages/TestConsole.js
+++ b/components/pages/TestConsole.js
@@ -28,8 +28,6 @@ export default function TestConsole() {
const website = data.find(({ website_id }) => website_id === +websiteId);
const selectedValue = options.find(({ value }) => value === website?.website_id)?.value;
- console.log({ websiteId, data, options, website });
-
function handleSelect(value) {
router.push(`/console/${value}`);
}
diff --git a/components/pages/WebsiteList.js b/components/pages/WebsiteList.js
index 4de8d05d..5e1f71bb 100644
--- a/components/pages/WebsiteList.js
+++ b/components/pages/WebsiteList.js
@@ -6,8 +6,8 @@ import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
import Arrow from 'assets/arrow-right.svg';
import styles from './WebsiteList.module.css';
import useDashboard from 'store/dashboard';
-import { sortArrayByMap } from 'lib/array';
import { useMemo } from 'react';
+import { firstBy } from 'thenby';
const messages = defineMessages({
noWebsites: {
@@ -24,10 +24,11 @@ export default function WebsiteList({ websites, showCharts, limit }) {
const { websiteOrder } = useDashboard();
const { formatMessage } = useIntl();
- console.log({ websiteOrder });
-
const ordered = useMemo(
- () => sortArrayByMap(websites, websiteOrder, 'website_id'),
+ () =>
+ websites
+ .map(website => ({ ...website, order: websiteOrder.indexOf(website.website_id) || 0 }))
+ .sort(firstBy('order')),
[websites, websiteOrder],
);
diff --git a/components/settings/UserButton.js b/components/settings/UserButton.js
index cf11eee6..8e0ee350 100644
--- a/components/settings/UserButton.js
+++ b/components/settings/UserButton.js
@@ -1,11 +1,11 @@
import React from 'react';
import { FormattedMessage } from 'react-intl';
import { useRouter } from 'next/router';
+import { removeItem } from 'next-basics';
import MenuButton from 'components/common/MenuButton';
import Icon from 'components/common/Icon';
import User from 'assets/user.svg';
import styles from './UserButton.module.css';
-import { removeItem } from 'lib/web';
import { AUTH_TOKEN } from 'lib/constants';
import useUser from 'hooks/useUser';
diff --git a/db/clickhouse/migrations/01_init/migration.sql b/db/clickhouse/migrations/01_init/migration.sql
new file mode 100644
index 00000000..5a1df775
--- /dev/null
+++ b/db/clickhouse/migrations/01_init/migration.sql
@@ -0,0 +1,130 @@
+SET allow_experimental_object_type = 1;
+
+-- Create Pageview
+CREATE TABLE pageview
+(
+ website_id UInt32,
+ session_uuid UUID,
+ created_at DateTime('UTC'),
+ url String,
+ referrer String
+)
+ engine = MergeTree PRIMARY KEY (session_uuid, created_at)
+ ORDER BY (session_uuid, created_at)
+ SETTINGS index_granularity = 8192;
+
+CREATE TABLE pageview_queue (
+ website_id UInt32,
+ session_uuid UUID,
+ created_at DateTime('UTC'),
+ url String,
+ referrer String
+)
+ENGINE = Kafka
+SETTINGS kafka_broker_list = 'kafka1:19092,kafka2:19093,kafka3:19094', -- input broker list
+ kafka_topic_list = 'pageview',
+ kafka_group_name = 'pageview_consumer_group',
+ kafka_format = 'JSONEachRow',
+ kafka_max_block_size = 1048576,
+ kafka_skip_broken_messages = 1;
+
+CREATE MATERIALIZED VIEW pageview_queue_mv TO pageview AS
+SELECT website_id,
+ session_uuid,
+ created_at,
+ url,
+ referrer
+FROM pageview_queue;
+
+-- Create Session
+CREATE TABLE session
+(
+ session_uuid UUID,
+ website_id UInt32,
+ created_at DateTime('UTC'),
+ hostname LowCardinality(String),
+ browser LowCardinality(String),
+ os LowCardinality(String),
+ device LowCardinality(String),
+ screen LowCardinality(String),
+ language LowCardinality(String),
+ country LowCardinality(String)
+)
+ engine = MergeTree PRIMARY KEY (session_uuid, created_at)
+ ORDER BY (session_uuid, created_at)
+ SETTINGS index_granularity = 8192;
+
+CREATE TABLE session_queue (
+ session_uuid UUID,
+ website_id UInt32,
+ created_at DateTime('UTC'),
+ hostname LowCardinality(String),
+ browser LowCardinality(String),
+ os LowCardinality(String),
+ device LowCardinality(String),
+ screen LowCardinality(String),
+ language LowCardinality(String),
+ country LowCardinality(String)
+)
+ENGINE = Kafka
+SETTINGS kafka_broker_list = 'kafka1:19092,kafka2:19093,kafka3:19094', -- input broker list
+ kafka_topic_list = 'session',
+ kafka_group_name = 'session_consumer_group',
+ kafka_format = 'JSONEachRow',
+ kafka_max_block_size = 1048576,
+ kafka_skip_broken_messages = 1;
+
+CREATE MATERIALIZED VIEW session_queue_mv TO session AS
+SELECT session_uuid,
+ website_id,
+ created_at,
+ hostname,
+ browser,
+ os,
+ device,
+ screen,
+ language,
+ country
+FROM session_queue;
+
+-- Create event
+CREATE TABLE event
+(
+ event_uuid UUID,
+ website_id UInt32,
+ session_uuid UUID,
+ created_at DateTime('UTC'),
+ url String,
+ event_name String,
+ event_data JSON
+)
+ engine = MergeTree PRIMARY KEY (event_uuid, created_at)
+ ORDER BY (event_uuid, created_at)
+ SETTINGS index_granularity = 8192;
+
+CREATE TABLE event_queue (
+ event_uuid UUID,
+ website_id UInt32,
+ session_uuid UUID,
+ created_at DateTime('UTC'),
+ url String,
+ event_name String,
+ event_data String
+)
+ENGINE = Kafka
+SETTINGS kafka_broker_list = 'kafka1:19092,kafka2:19093,kafka3:19094', -- input broker list
+ kafka_topic_list = 'event',
+ kafka_group_name = 'event_consumer_group',
+ kafka_format = 'JSONEachRow',
+ kafka_max_block_size = 1048576,
+ kafka_skip_broken_messages = 1;
+
+CREATE MATERIALIZED VIEW event_queue_mv TO event AS
+SELECT event_uuid,
+ website_id,
+ session_uuid,
+ created_at,
+ url,
+ event_name,
+ event_data
+FROM event_queue;
diff --git a/db/mysql/migrations/03_remove_cascade_delete/migration.sql b/db/mysql/migrations/03_remove_cascade_delete/migration.sql
new file mode 100644
index 00000000..542784a9
--- /dev/null
+++ b/db/mysql/migrations/03_remove_cascade_delete/migration.sql
@@ -0,0 +1,35 @@
+-- DropForeignKey
+ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_2`;
+
+-- DropForeignKey
+ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_1`;
+
+-- DropForeignKey
+ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_2`;
+
+-- DropForeignKey
+ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_1`;
+
+-- DropForeignKey
+ALTER TABLE `session` DROP FOREIGN KEY `session_ibfk_1`;
+
+-- DropForeignKey
+ALTER TABLE `website` DROP FOREIGN KEY `website_ibfk_1`;
+
+-- AddForeignKey
+ALTER TABLE `event` ADD CONSTRAINT `event_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE `event` ADD CONSTRAINT `event_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE `pageview` ADD CONSTRAINT `pageview_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE `pageview` ADD CONSTRAINT `pageview_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE `session` ADD CONSTRAINT `session_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE `website` ADD CONSTRAINT `website_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `account`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
diff --git a/db/mysql/schema.prisma b/db/mysql/schema.prisma
index 7b7036a7..9ad2620c 100644
--- a/db/mysql/schema.prisma
+++ b/db/mysql/schema.prisma
@@ -24,8 +24,8 @@ model event {
created_at DateTime? @default(now()) @db.Timestamp(0)
url String @db.VarChar(500)
event_name String @db.VarChar(50)
- session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade, onUpdate: NoAction, map: "event_ibfk_2")
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "event_ibfk_1")
+ session session @relation(fields: [session_id], references: [session_id])
+ website website @relation(fields: [website_id], references: [website_id])
event_data event_data?
@@index([created_at])
@@ -34,7 +34,7 @@ model event {
}
model event_data {
- event_data_id Int @id @default(autoincrement())
+ event_data_id Int @id @default(autoincrement()) @db.UnsignedInt
event_id Int @unique @db.UnsignedInt
event_data Json
event event @relation(fields: [event_id], references: [event_id])
@@ -47,8 +47,8 @@ model pageview {
created_at DateTime? @default(now()) @db.Timestamp(0)
url String @db.VarChar(500)
referrer String? @db.VarChar(500)
- session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade, onUpdate: NoAction, map: "pageview_ibfk_2")
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "pageview_ibfk_1")
+ session session @relation(fields: [session_id], references: [session_id])
+ website website @relation(fields: [website_id], references: [website_id])
@@index([created_at])
@@index([session_id])
@@ -69,7 +69,7 @@ model session {
screen String? @db.VarChar(11)
language String? @db.VarChar(35)
country String? @db.Char(2)
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "session_ibfk_1")
+ website website @relation(fields: [website_id], references: [website_id])
event event[]
pageview pageview[]
@@ -85,7 +85,7 @@ model website {
domain String? @db.VarChar(500)
share_id String? @unique() @db.VarChar(64)
created_at DateTime? @default(now()) @db.Timestamp(0)
- account account @relation(fields: [user_id], references: [user_id], onDelete: Cascade, onUpdate: NoAction, map: "website_ibfk_1")
+ account account @relation(fields: [user_id], references: [user_id])
event event[]
pageview pageview[]
session session[]
diff --git a/db/postgresql/migrations/03_remove_casade_delete/migration.sql b/db/postgresql/migrations/03_remove_casade_delete/migration.sql
new file mode 100644
index 00000000..aa1f7805
--- /dev/null
+++ b/db/postgresql/migrations/03_remove_casade_delete/migration.sql
@@ -0,0 +1,35 @@
+-- DropForeignKey
+ALTER TABLE "event" DROP CONSTRAINT IF EXISTS "event_session_id_fkey";
+
+-- DropForeignKey
+ALTER TABLE "event" DROP CONSTRAINT IF EXISTS "event_website_id_fkey";
+
+-- DropForeignKey
+ALTER TABLE "pageview" DROP CONSTRAINT IF EXISTS "pageview_session_id_fkey";
+
+-- DropForeignKey
+ALTER TABLE "pageview" DROP CONSTRAINT IF EXISTS "pageview_website_id_fkey";
+
+-- DropForeignKey
+ALTER TABLE "session" DROP CONSTRAINT IF EXISTS "session_website_id_fkey";
+
+-- DropForeignKey
+ALTER TABLE "website" DROP CONSTRAINT IF EXISTS "website_user_id_fkey";
+
+-- AddForeignKey
+ALTER TABLE "event" ADD CONSTRAINT "event_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "event" ADD CONSTRAINT "event_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "pageview" ADD CONSTRAINT "pageview_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "pageview" ADD CONSTRAINT "pageview_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "session" ADD CONSTRAINT "session_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
+
+-- AddForeignKey
+ALTER TABLE "website" ADD CONSTRAINT "website_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "account"("user_id") ON DELETE RESTRICT ON UPDATE CASCADE;
diff --git a/db/postgresql/schema.prisma b/db/postgresql/schema.prisma
index 880cc27c..a76a3da4 100644
--- a/db/postgresql/schema.prisma
+++ b/db/postgresql/schema.prisma
@@ -24,8 +24,8 @@ model event {
created_at DateTime? @default(now()) @db.Timestamptz(6)
url String @db.VarChar(500)
event_name String @db.VarChar(50)
- session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade)
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
+ session session @relation(fields: [session_id], references: [session_id])
+ website website @relation(fields: [website_id], references: [website_id])
event_data event_data?
@@index([created_at])
@@ -47,8 +47,8 @@ model pageview {
created_at DateTime? @default(now()) @db.Timestamptz(6)
url String @db.VarChar(500)
referrer String? @db.VarChar(500)
- session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade)
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
+ session session @relation(fields: [session_id], references: [session_id])
+ website website @relation(fields: [website_id], references: [website_id])
@@index([created_at])
@@index([session_id])
@@ -69,9 +69,9 @@ model session {
screen String? @db.VarChar(11)
language String? @db.VarChar(35)
country String? @db.Char(2)
- website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
- pageview pageview[]
+ website website @relation(fields: [website_id], references: [website_id])
event event[]
+ pageview pageview[]
@@index([created_at])
@@index([website_id])
@@ -85,10 +85,10 @@ model website {
domain String? @db.VarChar(500)
share_id String? @unique @db.VarChar(64)
created_at DateTime? @default(now()) @db.Timestamptz(6)
- account account @relation(fields: [user_id], references: [user_id], onDelete: Cascade)
+ account account @relation(fields: [user_id], references: [user_id])
+ event event[]
pageview pageview[]
session session[]
- event event[]
@@index([user_id])
}
diff --git a/hooks/useApi.js b/hooks/useApi.js
index 63e88a46..662a1da9 100644
--- a/hooks/useApi.js
+++ b/hooks/useApi.js
@@ -1,6 +1,6 @@
import { useCallback } from 'react';
import { useRouter } from 'next/router';
-import { get, post, put, del, getItem } from 'lib/web';
+import { get, post, put, del, getItem } from 'next-basics';
import { AUTH_TOKEN, SHARE_TOKEN_HEADER } from 'lib/constants';
import useStore from 'store/app';
diff --git a/hooks/useCountryNames.js b/hooks/useCountryNames.js
index 6dce6cb7..7c15779f 100644
--- a/hooks/useCountryNames.js
+++ b/hooks/useCountryNames.js
@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useRouter } from 'next/router';
-import { get } from 'lib/web';
+import { get } from 'next-basics';
import enUS from 'public/intl/country/en-US.json';
const countryNames = {
diff --git a/hooks/useDateRange.js b/hooks/useDateRange.js
index 81fc6846..be42f7d3 100644
--- a/hooks/useDateRange.js
+++ b/hooks/useDateRange.js
@@ -1,7 +1,7 @@
import { useCallback, useMemo } from 'react';
import { parseISO } from 'date-fns';
import { getDateRange } from 'lib/date';
-import { getItem, setItem } from 'lib/web';
+import { getItem, setItem } from 'next-basics';
import { DATE_RANGE_CONFIG, DEFAULT_DATE_RANGE } from 'lib/constants';
import useForceUpdate from './useForceUpdate';
import useLocale from './useLocale';
diff --git a/hooks/useFetch.js b/hooks/useFetch.js
index 5b824d1b..bf50b917 100644
--- a/hooks/useFetch.js
+++ b/hooks/useFetch.js
@@ -8,7 +8,7 @@ export default function useFetch(url, options = {}, update = []) {
const [loading, setLoading] = useState(false);
const [count, setCount] = useState(0);
const { get } = useApi();
- const { params = {}, headers = {}, disabled, delay = 0, interval, onDataLoad } = options;
+ const { params = {}, headers = {}, disabled = false, delay = 0, interval, onDataLoad } = options;
async function loadData(params) {
try {
@@ -29,7 +29,9 @@ export default function useFetch(url, options = {}, update = []) {
onDataLoad?.(data);
} catch (e) {
+ // eslint-disable-next-line no-console
console.error(e);
+
setError(e);
} finally {
setLoading(false);
@@ -44,7 +46,7 @@ export default function useFetch(url, options = {}, update = []) {
clearTimeout(id);
};
}
- }, [url, !!disabled, count, ...update]);
+ }, [url, disabled, count, ...update]);
useEffect(() => {
if (interval && !disabled) {
@@ -54,7 +56,7 @@ export default function useFetch(url, options = {}, update = []) {
clearInterval(id);
};
}
- }, [interval, !!disabled]);
+ }, [interval, disabled]);
return { ...response, error, loading };
}
diff --git a/hooks/useLanguageNames.js b/hooks/useLanguageNames.js
index 2fc313f2..86a358ac 100644
--- a/hooks/useLanguageNames.js
+++ b/hooks/useLanguageNames.js
@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useRouter } from 'next/router';
-import { get } from 'lib/web';
+import { get } from 'next-basics';
import enUS from 'public/intl/language/en-US.json';
const languageNames = {
diff --git a/hooks/useLocale.js b/hooks/useLocale.js
index fdce6d91..06c3bc6b 100644
--- a/hooks/useLocale.js
+++ b/hooks/useLocale.js
@@ -1,6 +1,6 @@
import { useEffect } from 'react';
import { useRouter } from 'next/router';
-import { get, setItem } from 'lib/web';
+import { get, setItem } from 'next-basics';
import { LOCALE_CONFIG } from 'lib/constants';
import { getDateLocale, getTextDirection } from 'lib/lang';
import useStore, { setLocale } from 'store/app';
@@ -48,5 +48,14 @@ export default function useLocale() {
}
}, [locale]);
+ useEffect(() => {
+ const url = new URL(window.location.href);
+ const locale = url.searchParams.get('locale');
+
+ if (locale) {
+ saveLocale(locale);
+ }
+ }, []);
+
return { locale, saveLocale, messages, dir, dateLocale };
}
diff --git a/hooks/usePageQuery.js b/hooks/usePageQuery.js
index 7cce756d..1884f12e 100644
--- a/hooks/usePageQuery.js
+++ b/hooks/usePageQuery.js
@@ -1,6 +1,9 @@
import { useMemo } from 'react';
import { useRouter } from 'next/router';
-import { getQueryString } from 'lib/url';
+
+function getQueryString(params) {
+ return new URLSearchParams({ ...params }).toString();
+}
export default function usePageQuery() {
const router = useRouter();
diff --git a/hooks/useTheme.js b/hooks/useTheme.js
index cc02631e..5c21bf1c 100644
--- a/hooks/useTheme.js
+++ b/hooks/useTheme.js
@@ -1,6 +1,6 @@
import { useEffect } from 'react';
import useStore, { setTheme } from 'store/app';
-import { getItem, setItem } from 'lib/web';
+import { getItem, setItem } from 'next-basics';
import { THEME_CONFIG } from 'lib/constants';
const selector = state => state.theme;
@@ -23,5 +23,14 @@ export default function useTheme() {
document.body.setAttribute('data-theme', theme);
}, [theme]);
+ useEffect(() => {
+ const url = new URL(window.location.href);
+ const theme = url.searchParams.get('theme');
+
+ if (['light', 'dark'].includes(theme)) {
+ saveTheme(theme);
+ }
+ }, []);
+
return [theme, saveTheme];
}
diff --git a/hooks/useTimezone.js b/hooks/useTimezone.js
index 5032a6de..8eb5d5f8 100644
--- a/hooks/useTimezone.js
+++ b/hooks/useTimezone.js
@@ -1,6 +1,6 @@
import { useState, useCallback } from 'react';
import { getTimezone } from 'lib/date';
-import { getItem, setItem } from 'lib/web';
+import { getItem, setItem } from 'next-basics';
import { TIMEZONE_CONFIG } from 'lib/constants';
export default function useTimezone() {
diff --git a/lang/ca-ES.json b/lang/ca-ES.json
index 8ab41de3..dcbada59 100644
--- a/lang/ca-ES.json
+++ b/lang/ca-ES.json
@@ -62,6 +62,7 @@
"label.username": "Nom d'usuari",
"label.view-details": "Veure els detalls",
"label.websites": "Llocs web",
+ "label.yesterday": "Ahir",
"message.active-users": "{x} {x, plural, one {visitant actual} other {visitants actuals}}",
"message.confirm-delete": "Segur que vols esborrar {target}?",
"message.confirm-reset": "Segur que vols restablir les estadístiques de {target}?",
diff --git a/lang/de-DE.json b/lang/de-DE.json
index 297de6a2..f95f4fc8 100644
--- a/lang/de-DE.json
+++ b/lang/de-DE.json
@@ -62,6 +62,7 @@
"label.username": "Benutzername",
"label.view-details": "Details anzeigen",
"label.websites": "Webseiten",
+ "label.yesterday": "Gestern",
"message.active-users": "{x} {x, plural, one {aktiver Besucher} other {aktive Besucher}}",
"message.confirm-delete": "Sind Sie sich sicher, {target} zu löschen?",
"message.confirm-reset": "Sind Sie sicher, dass Sie die Statistiken von {target} zurücksetzen wollen?",
diff --git a/lang/en-GB.json b/lang/en-GB.json
index bc253a60..aa5e3ae3 100644
--- a/lang/en-GB.json
+++ b/lang/en-GB.json
@@ -62,6 +62,7 @@
"label.username": "Username",
"label.view-details": "View details",
"label.websites": "Websites",
+ "label.yesterday": "Yesterday",
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
"message.confirm-delete": "Are you sure you want to delete {target}?",
"message.confirm-reset": "Are you sure you want to reset {target}'s statistics?",
diff --git a/lang/en-US.json b/lang/en-US.json
index bc253a60..aa5e3ae3 100644
--- a/lang/en-US.json
+++ b/lang/en-US.json
@@ -62,6 +62,7 @@
"label.username": "Username",
"label.view-details": "View details",
"label.websites": "Websites",
+ "label.yesterday": "Yesterday",
"message.active-users": "{x} current {x, plural, one {visitor} other {visitors}}",
"message.confirm-delete": "Are you sure you want to delete {target}?",
"message.confirm-reset": "Are you sure you want to reset {target}'s statistics?",
diff --git a/lang/es-MX.json b/lang/es-MX.json
index e9b02c1d..ecefd17b 100644
--- a/lang/es-MX.json
+++ b/lang/es-MX.json
@@ -62,6 +62,7 @@
"label.username": "Nombre de usuario",
"label.view-details": "Ver detalles",
"label.websites": "Sitios",
+ "label.yesterday": "Ayer",
"message.active-users": "{x} {x, plural, one {activo} other {activos}}",
"message.confirm-delete": "¿Estás seguro(a) de querer eliminar {target}?",
"message.confirm-reset": "¿Seguro que deseas restablecer las estadísticas de {target}?",
diff --git a/lang/fr-FR.json b/lang/fr-FR.json
index ca0b7e41..0ba89b1d 100644
--- a/lang/fr-FR.json
+++ b/lang/fr-FR.json
@@ -5,7 +5,7 @@
"label.administrator": "Administrateur",
"label.all": "Tout",
"label.all-time": "Toutes les données",
- "label.all-websites": "Tous les sites web",
+ "label.all-websites": "Tous les sites",
"label.back": "Retour",
"label.cancel": "Annuler",
"label.change-password": "Changer le mot de passe",
@@ -27,7 +27,7 @@
"label.enable-share-url": "Activer l'URL de partage",
"label.invalid": "Invalide",
"label.invalid-domain": "Domaine invalide",
- "label.language": "Langage",
+ "label.language": "Langue",
"label.last-days": "{x} derniers jours",
"label.last-hours": "{x} dernières heures",
"label.logged-in-as": "Connecté en tant que {username}",
@@ -52,7 +52,7 @@
"label.share-url": "Partager l'URL",
"label.single-day": "Journée",
"label.theme": "Thème",
- "label.this-month": "Ce mois ci",
+ "label.this-month": "Ce mois",
"label.this-week": "Cette semaine",
"label.this-year": "Cette année",
"label.timezone": "Fuseau horaire",
@@ -62,12 +62,13 @@
"label.username": "Nom d'utilisateur",
"label.view-details": "Voir les details",
"label.websites": "Sites",
+ "label.yesterday": "Hier",
"message.active-users": "{x} {x, plural, one {visiteur} other {visiteurs}} actuellement",
"message.confirm-delete": "Êtes-vous sûr de vouloir supprimer {target} ?",
- "message.confirm-reset": "Êtes-vous sûr de vouloir réinistialiser les statistiques de {target} ?",
+ "message.confirm-reset": "Êtes-vous sûr de vouloir réinitialiser les statistiques de {target} ?",
"message.copied": "Copié !",
"message.delete-warning": "Toutes les données associées seront également supprimées.",
- "message.edit-dashboard": "Modifier l'ordre des sites",
+ "message.edit-dashboard": "Modifier le tableau de bord",
"message.failure": "Un problème est survenu.",
"message.get-share-url": "Obtenir l'URL de partage",
"message.get-tracking-code": "Obtenir le code de suivi",
@@ -76,14 +77,14 @@
"message.log.visitor": "Visiteur de {country} utilisant {browser} sur {os} {device}",
"message.new-version-available": "Une nouvelle version de umami {version} est disponible !",
"message.no-data-available": "Pas de données disponibles.",
- "message.no-websites-configured": "Vous n'avez configuré aucun site Web.",
+ "message.no-websites-configured": "Vous n'avez configuré aucun site.",
"message.page-not-found": "Page non trouvée.",
"message.powered-by": "Propulsé par {name}",
- "message.reset-warning": "Toutes les statistiques pour ce site seront supprimés, mais votre code de suivi restera intact.",
+ "message.reset-warning": "Toutes les statistiques pour ce site seront supprimées, mais votre code de suivi restera intact.",
"message.save-success": "Enregistré avec succès.",
"message.share-url": "Ceci est l'URL partagée pour {target}.",
"message.toggle-charts": "Afficher/Masquer les graphiques",
- "message.track-stats": "Pour suivre les statistiques de {target}, placez le code suivant dans la section {head} de votre site Web.",
+ "message.track-stats": "Pour suivre les statistiques de {target}, placez le code suivant dans la section {head} de votre site.",
"message.type-delete": "Tapez {delete} dans la case ci-dessous pour confirmer.",
"message.type-reset": "Tapez {reset} dans la case ci-dessous pour confirmer.",
"metrics.actions": "Actions",
@@ -99,13 +100,13 @@
"metrics.events": "Événements",
"metrics.filter.combined": "Combiné",
"metrics.filter.raw": "Brut",
- "metrics.languages": "Langages",
+ "metrics.languages": "Langues",
"metrics.operating-systems": "Systèmes d'exploitation",
"metrics.page-views": "Pages vues",
"metrics.pages": "Pages",
- "metrics.query-parameters": "Query parameters",
+ "metrics.query-parameters": "Paramètres d'URL",
"metrics.referrers": "Sources",
- "metrics.screens": "Tailles d'écran",
+ "metrics.screens": "Résolutions d'écran",
"metrics.unique-visitors": "Visiteurs uniques",
"metrics.views": "Vues",
"metrics.visitors": "Visiteurs"
diff --git a/lang/it-IT.json b/lang/it-IT.json
index 4069bb9c..356e226c 100644
--- a/lang/it-IT.json
+++ b/lang/it-IT.json
@@ -62,6 +62,7 @@
"label.username": "Nome utente",
"label.view-details": "Vedi dettagli",
"label.websites": "Siti web",
+ "label.yesterday": "Ieri",
"message.active-users": "{x} {x, plural, one {visitatore} other {visitatori}} online",
"message.confirm-delete": "Sei sicuro di voler eliminare {target}?",
"message.confirm-reset": "Sei sicuro di voler azzerare le statistiche di {target}?",
diff --git a/lang/zh-CN.json b/lang/zh-CN.json
index 8d5a9fd7..b09718d4 100644
--- a/lang/zh-CN.json
+++ b/lang/zh-CN.json
@@ -67,7 +67,7 @@
"message.confirm-reset": "您确定要重置 {target} 的数据吗?",
"message.copied": "复制成功!",
"message.delete-warning": "所有相关数据将会被删除。",
- "message.edit-dashboard": "Edit dashboard",
+ "message.edit-dashboard": "编辑仪表板",
"message.failure": "出现错误。",
"message.get-share-url": "获取共享链接",
"message.get-tracking-code": "获取跟踪代码",
@@ -103,7 +103,7 @@
"metrics.operating-systems": "操作系统",
"metrics.page-views": "页面浏览量",
"metrics.pages": "网页",
- "metrics.query-parameters": "Query parameters",
+ "metrics.query-parameters": "查询参数",
"metrics.referrers": "来源域名",
"metrics.screens": "屏幕尺寸",
"metrics.unique-visitors": "独立访客",
diff --git a/lang/zh-TW.json b/lang/zh-TW.json
index fe3dfadc..8576bc22 100644
--- a/lang/zh-TW.json
+++ b/lang/zh-TW.json
@@ -27,7 +27,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}",
@@ -67,7 +67,7 @@
"message.confirm-reset": "您確定要重置 {target} 的數據嗎?",
"message.copied": "複製成功!",
"message.delete-warning": "所有相關數據將會被刪除。",
- "message.edit-dashboard": "Edit dashboard",
+ "message.edit-dashboard": "編輯管理面板",
"message.failure": "出現錯誤。",
"message.get-share-url": "獲得分享連結",
"message.get-tracking-code": "獲得追蹤代碼",
@@ -103,7 +103,7 @@
"metrics.operating-systems": "操作系統",
"metrics.page-views": "網頁流量",
"metrics.pages": "網頁",
- "metrics.query-parameters": "Query parameters",
+ "metrics.query-parameters": "查詢參數",
"metrics.referrers": "指入域名",
"metrics.screens": "屏幕尺寸",
"metrics.unique-visitors": "獨立訪客",
diff --git a/lib/auth.js b/lib/auth.js
index 7f570031..b50a923f 100644
--- a/lib/auth.js
+++ b/lib/auth.js
@@ -1,20 +1,27 @@
-import { parseSecureToken, parseToken } from './crypto';
-import { SHARE_TOKEN_HEADER } from './constants';
+import { parseSecureToken, parseToken, getItem } from 'next-basics';
+import { AUTH_TOKEN, SHARE_TOKEN_HEADER } from './constants';
import { getWebsiteById } from 'queries';
+import { secret } from './crypto';
export async function getAuthToken(req) {
try {
const token = req.headers.authorization;
- return parseSecureToken(token.split(' ')[1]);
+ return parseSecureToken(token.split(' ')[1], secret());
} catch {
return null;
}
}
+export function getAuthHeader() {
+ const token = getItem(AUTH_TOKEN);
+
+ return token ? { authorization: `Bearer ${token}` } : {};
+}
+
export async function isValidToken(token, validation) {
try {
- const result = await parseToken(token);
+ const result = parseToken(token, secret());
if (typeof validation === 'object') {
return !Object.keys(validation).find(key => result[key] !== validation[key]);
diff --git a/lib/clickhouse.js b/lib/clickhouse.js
new file mode 100644
index 00000000..519899f2
--- /dev/null
+++ b/lib/clickhouse.js
@@ -0,0 +1,201 @@
+import { ClickHouse } from 'clickhouse';
+import dateFormat from 'dateformat';
+import debug from 'debug';
+import { FILTER_IGNORED } from 'lib/constants';
+import { CLICKHOUSE } from 'lib/db';
+
+export const CLICKHOUSE_DATE_FORMATS = {
+ minute: '%Y-%m-%d %H:%M:00',
+ hour: '%Y-%m-%d %H:00:00',
+ day: '%Y-%m-%d',
+ month: '%Y-%m-01',
+ year: '%Y-01-01',
+};
+
+const log = debug('umami:clickhouse');
+
+function getClient() {
+ const {
+ hostname,
+ port,
+ pathname,
+ username = 'default',
+ password,
+ } = new URL(process.env.CLICKHOUSE_URL);
+
+ const client = new ClickHouse({
+ url: hostname,
+ port: Number(port),
+ format: 'json',
+ config: {
+ database: pathname.replace('/', ''),
+ },
+ basicAuth: password ? { username, password } : null,
+ });
+
+ if (process.env.NODE_ENV !== 'production') {
+ global[CLICKHOUSE] = client;
+ }
+
+ log('Clickhouse initialized');
+
+ return client;
+}
+
+function getDateStringQuery(data, unit) {
+ return `formatDateTime(${data}, '${CLICKHOUSE_DATE_FORMATS[unit]}')`;
+}
+
+function getDateQuery(field, unit, timezone) {
+ if (timezone) {
+ return `date_trunc('${unit}', ${field}, '${timezone}')`;
+ }
+ return `date_trunc('${unit}', ${field})`;
+}
+
+function getDateFormat(date) {
+ return `'${dateFormat(date, 'UTC:yyyy-mm-dd HH:MM:ss')}'`;
+}
+
+function getBetweenDates(field, start_at, end_at) {
+ return `${field} between ${getDateFormat(start_at)}
+ and ${getDateFormat(end_at)}`;
+}
+
+function getFilterQuery(table, column, filters = {}, params = []) {
+ const query = Object.keys(filters).reduce((arr, key) => {
+ const filter = filters[key];
+
+ if (filter === undefined || filter === FILTER_IGNORED) {
+ return arr;
+ }
+
+ switch (key) {
+ case 'url':
+ if (table === 'pageview' || table === 'event') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'os':
+ case 'browser':
+ case 'device':
+ case 'country':
+ if (table === 'session') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'event_name':
+ if (table === 'event') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'referrer':
+ if (table === 'pageview' || table === 'event') {
+ arr.push(`and ${table}.referrer like $${params.length + 1}`);
+ params.push(`%${decodeURIComponent(filter)}%`);
+ }
+ break;
+
+ case 'domain':
+ if (table === 'pageview') {
+ arr.push(`and ${table}.referrer not like $${params.length + 1}`);
+ arr.push(`and ${table}.referrer not like '/%'`);
+ params.push(`%://${filter}/%`);
+ }
+ break;
+
+ case 'query':
+ if (table === 'pageview') {
+ arr.push(`and ${table}.url like '%?%'`);
+ }
+ }
+
+ return arr;
+ }, []);
+
+ return query.join('\n');
+}
+
+function parseFilters(table, column, filters = {}, params = [], sessionKey = 'session_id') {
+ const { domain, url, event_url, referrer, os, browser, device, country, event_name, query } =
+ filters;
+
+ const pageviewFilters = { domain, url, referrer, query };
+ const sessionFilters = { os, browser, device, country };
+ const eventFilters = { url: event_url, event_name };
+
+ return {
+ pageviewFilters,
+ sessionFilters,
+ eventFilters,
+ event: { event_name },
+ joinSession:
+ os || browser || device || country
+ ? `inner join session on ${table}.${sessionKey} = session.${sessionKey}`
+ : '',
+ pageviewQuery: getFilterQuery('pageview', column, pageviewFilters, params),
+ sessionQuery: getFilterQuery('session', column, sessionFilters, params),
+ eventQuery: getFilterQuery('event', column, eventFilters, params),
+ };
+}
+
+function formatQuery(str, params = []) {
+ let formattedString = str;
+
+ params.forEach((param, i) => {
+ let replace = param;
+
+ if (typeof param === 'string' || param instanceof String) {
+ replace = `'${replace}'`;
+ }
+
+ formattedString = formattedString.replace(`$${i + 1}`, replace);
+ });
+
+ return formattedString;
+}
+
+async function rawQuery(query, params = []) {
+ let formattedQuery = formatQuery(query, params);
+
+ if (process.env.LOG_QUERY) {
+ log(formattedQuery);
+ }
+
+ return clickhouse.query(formattedQuery).toPromise();
+}
+
+async function findUnique(data) {
+ if (data.length > 1) {
+ throw `${data.length} records found when expecting 1.`;
+ }
+
+ return data[0] ?? null;
+}
+
+async function findFirst(data) {
+ return data[0] ?? null;
+}
+
+// Initialization
+const clickhouse = process.env.CLICKHOUSE_URL && (global[CLICKHOUSE] || getClient());
+
+export default {
+ client: clickhouse,
+ log,
+ getDateStringQuery,
+ getDateQuery,
+ getDateFormat,
+ getBetweenDates,
+ getFilterQuery,
+ parseFilters,
+ findUnique,
+ findFirst,
+ rawQuery,
+};
diff --git a/lib/constants.js b/lib/constants.js
index ccf980c4..feef540d 100644
--- a/lib/constants.js
+++ b/lib/constants.js
@@ -67,35 +67,6 @@ export const EVENT_COLORS = [
'#ffec16',
];
-export const RELATIONAL = 'relational';
-export const POSTGRESQL = 'postgresql';
-export const MYSQL = 'mysql';
-export const CLICKHOUSE = 'clickhouse';
-
-export const MYSQL_DATE_FORMATS = {
- minute: '%Y-%m-%d %H:%i:00',
- hour: '%Y-%m-%d %H:00:00',
- day: '%Y-%m-%d',
- month: '%Y-%m-01',
- year: '%Y-01-01',
-};
-
-export const POSTGRESQL_DATE_FORMATS = {
- minute: 'YYYY-MM-DD HH24:MI:00',
- hour: 'YYYY-MM-DD HH24:00:00',
- day: 'YYYY-MM-DD',
- month: 'YYYY-MM-01',
- year: 'YYYY-01-01',
-};
-
-export const CLICKHOUSE_DATE_FORMATS = {
- minute: '%Y-%m-%d %H:%M:00',
- hour: '%Y-%m-%d %H:00:00',
- day: '%Y-%m-%d',
- month: '%Y-%m-01',
- year: '%Y-01-01',
-};
-
export const FILTER_IGNORED = Symbol.for('filter-ignored');
export const DOMAIN_REGEX =
@@ -106,6 +77,7 @@ export const LAPTOP_SCREEN_WIDTH = 1024;
export const MOBILE_SCREEN_WIDTH = 479;
export const URL_LENGTH = 500;
+export const EVENT_NAME_LENGTH = 50;
export const DESKTOP_OS = [
'Windows 3.11',
diff --git a/lib/crypto.js b/lib/crypto.js
index e59b0193..74470549 100644
--- a/lib/crypto.js
+++ b/lib/crypto.js
@@ -1,74 +1,19 @@
-import crypto from 'crypto';
-import { v4, v5, validate } from 'uuid';
-import bcrypt from 'bcryptjs';
-import { JWT, JWE, JWK } from 'jose';
+import { v4, v5 } from 'uuid';
import { startOfMonth } from 'date-fns';
-
-const SALT_ROUNDS = 10;
-const KEY = JWK.asKey(Buffer.from(secret()));
-const ROTATING_SALT = hash(startOfMonth(new Date()).toUTCString());
-const CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
-
-export function hash(...args) {
- return crypto.createHash('sha512').update(args.join('')).digest('hex');
-}
+import { hash } from 'next-basics';
export function secret() {
return hash(process.env.HASH_SALT || process.env.DATABASE_URL);
}
export function salt() {
- return v5(hash(secret(), ROTATING_SALT), v5.DNS);
+ const ROTATING_SALT = hash(startOfMonth(new Date()).toUTCString());
+
+ return hash([secret(), ROTATING_SALT]);
}
export function uuid(...args) {
if (!args.length) return v4();
- return v5(args.join(''), salt());
-}
-
-export function isValidUuid(s) {
- return validate(s);
-}
-
-export function getRandomChars(n) {
- let s = '';
- for (let i = 0; i < n; i++) {
- s += CHARS[Math.floor(Math.random() * CHARS.length)];
- }
- return s;
-}
-
-export function hashPassword(password) {
- return bcrypt.hashSync(password, SALT_ROUNDS);
-}
-
-export function checkPassword(password, hash) {
- return bcrypt.compareSync(password, hash);
-}
-
-export async function createToken(payload) {
- return JWT.sign(payload, KEY);
-}
-
-export async function parseToken(token) {
- try {
- return JWT.verify(token, KEY);
- } catch {
- return null;
- }
-}
-
-export async function createSecureToken(payload) {
- return JWE.encrypt(await createToken(payload), KEY);
-}
-
-export async function parseSecureToken(token) {
- try {
- const result = await JWE.decrypt(token, KEY);
-
- return parseToken(result.toString());
- } catch {
- return null;
- }
+ return v5(hash([...args, salt()]), v5.DNS);
}
diff --git a/lib/date.js b/lib/date.js
index 6897df21..cae39ce4 100644
--- a/lib/date.js
+++ b/lib/date.js
@@ -7,6 +7,8 @@ import {
addYears,
subHours,
subDays,
+ subMonths,
+ subYears,
startOfMinute,
startOfHour,
startOfDay,
@@ -39,7 +41,7 @@ export function getDateRange(value, locale = 'en-US') {
const now = new Date();
const dateLocale = getDateLocale(locale);
- const match = value.match(/^(?[0-9]+)(?hour|day|week|month|year)$/);
+ const match = value.match(/^(?[0-9-]+)(?hour|day|week|month|year)$/);
if (!match) return;
@@ -78,6 +80,39 @@ export function getDateRange(value, locale = 'en-US') {
}
}
+ if (+num === -1) {
+ switch (unit) {
+ case 'day':
+ return {
+ startDate: subDays(startOfDay(now), 1),
+ endDate: subDays(endOfDay(now), 1),
+ unit: 'hour',
+ value,
+ };
+ case 'week':
+ return {
+ startDate: subDays(startOfWeek(now, { locale: dateLocale }), 7),
+ endDate: subDays(endOfWeek(now, { locale: dateLocale }), 1),
+ unit: 'day',
+ value,
+ };
+ case 'month':
+ return {
+ startDate: subMonths(startOfMonth(now), 1),
+ endDate: subMonths(endOfMonth(now), 1),
+ unit: 'day',
+ value,
+ };
+ case 'year':
+ return {
+ startDate: subYears(startOfYear(now), 1),
+ endDate: subYears(endOfYear(now), 1),
+ unit: 'month',
+ value,
+ };
+ }
+ }
+
switch (unit) {
case 'day':
return {
diff --git a/lib/db.js b/lib/db.js
index 4c04e8cf..58e769b7 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -1,83 +1,18 @@
-import { PrismaClient } from '@prisma/client';
-import { ClickHouse } from 'clickhouse';
-import chalk from 'chalk';
-import {
- MYSQL,
- MYSQL_DATE_FORMATS,
- POSTGRESQL,
- POSTGRESQL_DATE_FORMATS,
- CLICKHOUSE,
- RELATIONAL,
- FILTER_IGNORED,
-} from 'lib/constants';
-import moment from 'moment-timezone';
-import { CLICKHOUSE_DATE_FORMATS } from './constants';
+export const PRISMA = 'prisma';
+export const POSTGRESQL = 'postgresql';
+export const MYSQL = 'mysql';
+export const CLICKHOUSE = 'clickhouse';
+export const KAFKA = 'kafka';
+export const KAFKA_PRODUCER = 'kafka-producer';
+export const REDIS = 'redis';
+// Fixes issue with converting bigint values
BigInt.prototype.toJSON = function () {
return Number(this);
};
-const options = {
- log: [
- {
- emit: 'event',
- level: 'query',
- },
- ],
-};
-
-function logQuery(e) {
- console.log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
-}
-
-function getPrismaClient(options) {
- const prisma = new PrismaClient(options);
-
- if (process.env.LOG_QUERY) {
- prisma.$on('query', logQuery);
- }
-
- return prisma;
-}
-
-function getClickhouseClient() {
- if (!process.env.ANALYTICS_URL) {
- return null;
- }
-
- const url = new URL(process.env.ANALYTICS_URL);
- const database = url.pathname.replace('/', '');
-
- return new ClickHouse({
- url: url.hostname,
- port: Number(url.port),
- basicAuth: url.password
- ? {
- username: url.username || 'default',
- password: url.password,
- }
- : null,
- format: 'json',
- config: {
- database,
- },
- });
-}
-
-const prisma = global.prisma || getPrismaClient(options);
-const clickhouse = global.clickhouse || getClickhouseClient();
-
-if (process.env.NODE_ENV !== 'production') {
- global.prisma = prisma;
- global.clickhouse = clickhouse;
-}
-
-export { prisma, clickhouse };
-
-export function getDatabase() {
- const type =
- process.env.DATABASE_TYPE ||
- (process.env.DATABASE_URL && process.env.DATABASE_URL.split(':')[0]);
+export function getDatabaseType(url = process.env.DATABASE_URL) {
+ const type = process.env.DATABASE_TYPE || (url && url.split(':')[0]);
if (type === 'postgres') {
return POSTGRESQL;
@@ -86,220 +21,18 @@ export function getDatabase() {
return type;
}
-export function getAnalyticsDatabase() {
- const type =
- process.env.ANALYTICS_TYPE ||
- (process.env.ANALYTICS_URL && process.env.ANALYTICS_URL.split(':')[0]);
-
- if (type === 'postgres') {
- return POSTGRESQL;
- }
-
- if (!type) {
- return getDatabase();
- }
-
- return type;
-}
-
-export function getDateStringQueryClickhouse(data, unit) {
- return `formatDateTime(${data}, '${CLICKHOUSE_DATE_FORMATS[unit]}')`;
-}
-
-export function getDateQuery(field, unit, timezone) {
- const db = getDatabase();
-
- if (db === POSTGRESQL) {
- if (timezone) {
- return `to_char(date_trunc('${unit}', ${field} at time zone '${timezone}'), '${POSTGRESQL_DATE_FORMATS[unit]}')`;
- }
- return `to_char(date_trunc('${unit}', ${field}), '${POSTGRESQL_DATE_FORMATS[unit]}')`;
- }
-
- if (db === MYSQL) {
- if (timezone) {
- const tz = moment.tz(timezone).format('Z');
-
- return `date_format(convert_tz(${field},'+00:00','${tz}'), '${MYSQL_DATE_FORMATS[unit]}')`;
- }
-
- return `date_format(${field}, '${MYSQL_DATE_FORMATS[unit]}')`;
- }
-}
-
-export function getDateQueryClickhouse(field, unit, timezone) {
- if (timezone) {
- return `date_trunc('${unit}', ${field},'${timezone}')`;
- }
- return `date_trunc('${unit}', ${field})`;
-}
-
-export function getDateFormatClickhouse(date) {
- return `parseDateTimeBestEffort('${date.toUTCString()}')`;
-}
-
-export function getBetweenDatesClickhouse(field, start_at, end_at) {
- return `${field} between ${getDateFormatClickhouse(start_at)}
- and ${getDateFormatClickhouse(end_at)}`;
-}
-
-export function getTimestampInterval(field) {
- const db = getDatabase();
-
- if (db === POSTGRESQL) {
- return `floor(extract(epoch from max(${field}) - min(${field})))`;
- }
-
- if (db === MYSQL) {
- return `floor(unix_timestamp(max(${field})) - unix_timestamp(min(${field})))`;
- }
-}
-
-export function getFilterQuery(table, column, filters = {}, params = []) {
- const query = Object.keys(filters).reduce((arr, key) => {
- const filter = filters[key];
-
- if (filter === undefined || filter === FILTER_IGNORED) {
- return arr;
- }
-
- switch (key) {
- case 'url':
- if (table === 'pageview' || table === 'event') {
- arr.push(`and ${table}.${key}=$${params.length + 1}`);
- params.push(decodeURIComponent(filter));
- }
- break;
-
- case 'os':
- case 'browser':
- case 'device':
- case 'country':
- if (table === 'session') {
- arr.push(`and ${table}.${key}=$${params.length + 1}`);
- params.push(decodeURIComponent(filter));
- }
- break;
-
- case 'event_name':
- if (table === 'event') {
- arr.push(`and ${table}.${key}=$${params.length + 1}`);
- params.push(decodeURIComponent(filter));
- }
- break;
-
- case 'referrer':
- if (table === 'pageview' || table === 'event') {
- arr.push(`and ${table}.referrer like $${params.length + 1}`);
- params.push(`%${decodeURIComponent(filter)}%`);
- }
- break;
-
- case 'domain':
- if (table === 'pageview') {
- arr.push(`and ${table}.referrer not like $${params.length + 1}`);
- arr.push(`and ${table}.referrer not like '/%'`);
- params.push(`%://${filter}/%`);
- }
- break;
-
- case 'query':
- if (table === 'pageview') {
- arr.push(`and ${table}.url like '%?%'`);
- }
- }
-
- return arr;
- }, []);
-
- return query.join('\n');
-}
-
-export function parseFilters(table, column, filters = {}, params = [], sessionKey = 'session_id') {
- const { domain, url, event_url, referrer, os, browser, device, country, event_name, query } =
- filters;
-
- console.log({ table, column, filters, params });
-
- const pageviewFilters = { domain, url, referrer, query };
- const sessionFilters = { os, browser, device, country };
- const eventFilters = { url: event_url, event_name };
-
- return {
- pageviewFilters,
- sessionFilters,
- eventFilters,
- event: { event_name },
- joinSession:
- os || browser || device || country
- ? `inner join session on ${table}.${sessionKey} = session.${sessionKey}`
- : '',
- pageviewQuery: getFilterQuery('pageview', column, pageviewFilters, params),
- sessionQuery: getFilterQuery('session', column, sessionFilters, params),
- eventQuery: getFilterQuery('event', column, eventFilters, params),
- };
-}
-
-export function replaceQueryClickhouse(string, params = []) {
- let formattedString = string;
-
- params.forEach((a, i) => {
- let replace = a;
-
- if (typeof a === 'string' || a instanceof String) {
- replace = `'${replace}'`;
- }
-
- formattedString = formattedString.replace(`$${i + 1}`, replace);
- });
-
- return formattedString;
-}
-
-export async function runQuery(query) {
- return query.catch(e => {
- throw e;
- });
-}
-
-export async function rawQuery(query, params = []) {
- const db = getDatabase();
-
- if (db !== POSTGRESQL && db !== MYSQL) {
- return Promise.reject(new Error('Unknown database.'));
- }
-
- const sql = db === MYSQL ? query.replace(/\$[0-9]+/g, '?') : query;
-
- return runQuery(prisma.$queryRawUnsafe.apply(prisma, [sql, ...params]));
-}
-
-export async function rawQueryClickhouse(query, params = [], debug = false) {
- let formattedQuery = replaceQueryClickhouse(query, params);
-
- if (debug || process.env.LOG_QUERY) {
- console.log(formattedQuery);
- }
-
- return clickhouse.query(formattedQuery).toPromise();
-}
-
-export async function findUnique(data) {
- if (data.length > 1) {
- throw `${data.length} records found when expecting 1.`;
- }
-
- return data[0] ?? null;
-}
-
-export async function runAnalyticsQuery(queries) {
- const db = getAnalyticsDatabase();
+export async function runQuery(queries) {
+ const db = getDatabaseType(process.env.CLICKHOUSE_URL || process.env.DATABASE_URL);
if (db === POSTGRESQL || db === MYSQL) {
- return queries[RELATIONAL]();
+ return queries[PRISMA]();
}
if (db === CLICKHOUSE) {
+ if (queries[KAFKA]) {
+ return queries[KAFKA]();
+ }
+
return queries[CLICKHOUSE]();
}
}
diff --git a/lib/filters.js b/lib/filters.js
index 27b88e20..087b92bf 100644
--- a/lib/filters.js
+++ b/lib/filters.js
@@ -1,5 +1,3 @@
-import { removeWWW } from './url';
-
export const urlFilter = data => {
const isValidUrl = url => {
return url !== '' && url !== null && !url.startsWith('#');
@@ -49,7 +47,7 @@ export const refFilter = data => {
try {
const url = new URL(x);
- id = removeWWW(url.hostname) || url.href;
+ id = url.hostname.replace('www', '') || url.href;
} catch {
id = '';
}
@@ -94,11 +92,7 @@ export const paramFilter = data => {
return obj;
}, {});
- const d = Object.keys(map).flatMap(key =>
+ return Object.keys(map).flatMap(key =>
Object.keys(map[key]).map(n => ({ x: `${key}=${n}`, p: key, v: n, y: map[key][n] })),
);
-
- console.log({ map, d });
-
- return d;
};
diff --git a/lib/format.js b/lib/format.js
index a336c1c4..a85c3ef7 100644
--- a/lib/format.js
+++ b/lib/format.js
@@ -74,7 +74,7 @@ export function stringToColor(str) {
let color = '#';
for (let i = 0; i < 3; i++) {
let value = (hash >> (i * 8)) & 0xff;
- color += ('00' + value.toString(16)).substr(-2);
+ color += ('00' + value.toString(16)).substring(-2);
}
return color;
}
diff --git a/lib/kafka.js b/lib/kafka.js
new file mode 100644
index 00000000..6d007009
--- /dev/null
+++ b/lib/kafka.js
@@ -0,0 +1,84 @@
+import { Kafka, logLevel } from 'kafkajs';
+import dateFormat from 'dateformat';
+import debug from 'debug';
+import { KAFKA, KAFKA_PRODUCER } from 'lib/db';
+
+const log = debug('umami:kafka');
+
+function getClient() {
+ const { username, password } = new URL(process.env.KAFKA_URL);
+ const brokers = process.env.KAFKA_BROKER.split(',');
+
+ const ssl =
+ username && password
+ ? {
+ ssl: true,
+ sasl: {
+ mechanism: 'plain',
+ username,
+ password,
+ },
+ }
+ : {};
+
+ const client = new Kafka({
+ clientId: 'umami',
+ brokers: brokers,
+ connectionTimeout: 3000,
+ logLevel: logLevel.ERROR,
+ ...ssl,
+ });
+
+ if (process.env.NODE_ENV !== 'production') {
+ global[KAFKA] = client;
+ }
+
+ return client;
+}
+
+async function getProducer() {
+ const producer = kafka.producer();
+ await producer.connect();
+
+ if (process.env.NODE_ENV !== 'production') {
+ global[KAFKA_PRODUCER] = producer;
+ }
+
+ return producer;
+}
+
+function getDateFormat(date) {
+ return dateFormat(date, 'UTC:yyyy-mm-dd HH:MM:ss');
+}
+
+async function sendMessage(params, topic) {
+ await producer.send({
+ topic,
+ messages: [
+ {
+ value: JSON.stringify(params),
+ },
+ ],
+ acks: 0,
+ });
+}
+
+// Initialization
+let kafka;
+let producer;
+
+(async () => {
+ kafka = process.env.KAFKA_URL && process.env.KAFKA_BROKER && (global[KAFKA] || getClient());
+
+ if (kafka) {
+ producer = global[KAFKA_PRODUCER] || (await getProducer());
+ }
+})();
+
+export default {
+ client: kafka,
+ producer: producer,
+ log,
+ getDateFormat,
+ sendMessage,
+};
diff --git a/lib/middleware.js b/lib/middleware.js
index 0c6fd081..f7289335 100644
--- a/lib/middleware.js
+++ b/lib/middleware.js
@@ -1,19 +1,7 @@
+import { createMiddleware, unauthorized, badRequest, serverError } from 'next-basics';
import cors from 'cors';
import { getSession } from './session';
import { getAuthToken } from './auth';
-import { unauthorized, badRequest, serverError } from './response';
-
-export function createMiddleware(middleware) {
- return (req, res) =>
- new Promise((resolve, reject) => {
- middleware(req, res, result => {
- if (result instanceof Error) {
- return reject(result);
- }
- return resolve(result);
- });
- });
-}
export const useCors = createMiddleware(cors());
@@ -23,7 +11,9 @@ export const useSession = createMiddleware(async (req, res, next) => {
try {
session = await getSession(req);
} catch (e) {
+ // eslint-disable-next-line no-console
console.error(e);
+
return serverError(res, e.message);
}
diff --git a/lib/prisma.js b/lib/prisma.js
new file mode 100644
index 00000000..b93afafa
--- /dev/null
+++ b/lib/prisma.js
@@ -0,0 +1,199 @@
+import { PrismaClient } from '@prisma/client';
+import chalk from 'chalk';
+import moment from 'moment-timezone';
+import debug from 'debug';
+import { PRISMA, MYSQL, POSTGRESQL, getDatabaseType } from 'lib/db';
+import { FILTER_IGNORED } from 'lib/constants';
+
+const MYSQL_DATE_FORMATS = {
+ minute: '%Y-%m-%d %H:%i:00',
+ hour: '%Y-%m-%d %H:00:00',
+ day: '%Y-%m-%d',
+ month: '%Y-%m-01',
+ year: '%Y-01-01',
+};
+
+const POSTGRESQL_DATE_FORMATS = {
+ minute: 'YYYY-MM-DD HH24:MI:00',
+ hour: 'YYYY-MM-DD HH24:00:00',
+ day: 'YYYY-MM-DD',
+ month: 'YYYY-MM-01',
+ year: 'YYYY-01-01',
+};
+
+const log = debug('umami:prisma');
+
+const PRISMA_OPTIONS = {
+ log: [
+ {
+ emit: 'event',
+ level: 'query',
+ },
+ ],
+};
+
+function logQuery(e) {
+ log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
+}
+
+function getClient(options) {
+ const prisma = new PrismaClient(options);
+
+ if (process.env.LOG_QUERY) {
+ prisma.$on('query', logQuery);
+ }
+
+ if (process.env.NODE_ENV !== 'production') {
+ global[PRISMA] = prisma;
+ }
+
+ log('Prisma initialized');
+
+ return prisma;
+}
+
+function getDateQuery(field, unit, timezone) {
+ const db = getDatabaseType(process.env.DATABASE_URL);
+
+ if (db === POSTGRESQL) {
+ if (timezone) {
+ return `to_char(date_trunc('${unit}', ${field} at time zone '${timezone}'), '${POSTGRESQL_DATE_FORMATS[unit]}')`;
+ }
+ return `to_char(date_trunc('${unit}', ${field}), '${POSTGRESQL_DATE_FORMATS[unit]}')`;
+ }
+
+ if (db === MYSQL) {
+ if (timezone) {
+ const tz = moment.tz(timezone).format('Z');
+
+ return `date_format(convert_tz(${field},'+00:00','${tz}'), '${MYSQL_DATE_FORMATS[unit]}')`;
+ }
+
+ return `date_format(${field}, '${MYSQL_DATE_FORMATS[unit]}')`;
+ }
+}
+
+function getTimestampInterval(field) {
+ const db = getDatabaseType(process.env.DATABASE_URL);
+
+ if (db === POSTGRESQL) {
+ return `floor(extract(epoch from max(${field}) - min(${field})))`;
+ }
+
+ if (db === MYSQL) {
+ return `floor(unix_timestamp(max(${field})) - unix_timestamp(min(${field})))`;
+ }
+}
+
+function getFilterQuery(table, column, filters = {}, params = []) {
+ const query = Object.keys(filters).reduce((arr, key) => {
+ const filter = filters[key];
+
+ if (filter === undefined || filter === FILTER_IGNORED) {
+ return arr;
+ }
+
+ switch (key) {
+ case 'url':
+ if (table === 'pageview' || table === 'event') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'os':
+ case 'browser':
+ case 'device':
+ case 'country':
+ if (table === 'session') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'event_name':
+ if (table === 'event') {
+ arr.push(`and ${table}.${key}=$${params.length + 1}`);
+ params.push(decodeURIComponent(filter));
+ }
+ break;
+
+ case 'referrer':
+ if (table === 'pageview' || table === 'event') {
+ arr.push(`and ${table}.referrer like $${params.length + 1}`);
+ params.push(`%${decodeURIComponent(filter)}%`);
+ }
+ break;
+
+ case 'domain':
+ if (table === 'pageview') {
+ arr.push(`and ${table}.referrer not like $${params.length + 1}`);
+ arr.push(`and ${table}.referrer not like '/%'`);
+ params.push(`%://${filter}/%`);
+ }
+ break;
+
+ case 'query':
+ if (table === 'pageview') {
+ arr.push(`and ${table}.url like '%?%'`);
+ }
+ }
+
+ return arr;
+ }, []);
+
+ return query.join('\n');
+}
+
+function parseFilters(table, column, filters = {}, params = [], sessionKey = 'session_id') {
+ const { domain, url, event_url, referrer, os, browser, device, country, event_name, query } =
+ filters;
+
+ const pageviewFilters = { domain, url, referrer, query };
+ const sessionFilters = { os, browser, device, country };
+ const eventFilters = { url: event_url, event_name };
+
+ return {
+ pageviewFilters,
+ sessionFilters,
+ eventFilters,
+ event: { event_name },
+ joinSession:
+ os || browser || device || country
+ ? `inner join session on ${table}.${sessionKey} = session.${sessionKey}`
+ : '',
+ pageviewQuery: getFilterQuery('pageview', column, pageviewFilters, params),
+ sessionQuery: getFilterQuery('session', column, sessionFilters, params),
+ eventQuery: getFilterQuery('event', column, eventFilters, params),
+ };
+}
+
+async function rawQuery(query, params = []) {
+ const db = getDatabaseType(process.env.DATABASE_URL);
+
+ if (db !== POSTGRESQL && db !== MYSQL) {
+ return Promise.reject(new Error('Unknown database.'));
+ }
+
+ const sql = db === MYSQL ? query.replace(/\$[0-9]+/g, '?') : query;
+
+ return prisma.$queryRawUnsafe.apply(prisma, [sql, ...params]);
+}
+
+async function transaction(queries) {
+ return prisma.$transaction(queries);
+}
+
+// Initialization
+const prisma = global[PRISMA] || getClient(PRISMA_OPTIONS);
+
+export default {
+ client: prisma,
+ log,
+ getDateQuery,
+ getTimestampInterval,
+ getFilterQuery,
+ parseFilters,
+ rawQuery,
+ transaction,
+};
diff --git a/lib/redis.js b/lib/redis.js
new file mode 100644
index 00000000..24d81438
--- /dev/null
+++ b/lib/redis.js
@@ -0,0 +1,58 @@
+import Redis from 'ioredis';
+import { startOfMonth } from 'date-fns';
+import debug from 'debug';
+import { getSessions, getAllWebsites } from 'queries';
+import { REDIS } from 'lib/db';
+
+const log = debug('umami:redis');
+const INITIALIZED = 'redis:initialized';
+export const DELETED = 'deleted';
+
+function getClient() {
+ if (!process.env.REDIS_URL) {
+ return null;
+ }
+
+ const redis = new Redis(process.env.REDIS_URL);
+
+ if (process.env.NODE_ENV !== 'production') {
+ global[REDIS] = redis;
+ }
+
+ return redis;
+}
+
+async function stageData() {
+ const sessions = await getSessions([], startOfMonth(new Date()));
+ const websites = await getAllWebsites();
+
+ const sessionUuids = sessions.map(a => {
+ return { key: `session:${a.session_uuid}`, value: 1 };
+ });
+ const websiteIds = websites.map(a => {
+ return { key: `website:${a.website_uuid}`, value: Number(a.website_id) };
+ });
+
+ await addRedis(sessionUuids);
+ await addRedis(websiteIds);
+
+ await redis.set(INITIALIZED, 1);
+}
+
+async function addRedis(ids) {
+ for (let i = 0; i < ids.length; i++) {
+ const { key, value } = ids[i];
+ await redis.set(key, value);
+ }
+}
+
+// Initialization
+const redis = process.env.REDIS_URL && (global[REDIS] || getClient());
+
+(async () => {
+ if (redis && !(await redis.get(INITIALIZED))) {
+ await stageData();
+ }
+})();
+
+export default { client: redis, stageData, log };
diff --git a/lib/response.js b/lib/response.js
deleted file mode 100644
index 72525f18..00000000
--- a/lib/response.js
+++ /dev/null
@@ -1,43 +0,0 @@
-export function ok(res, data = {}) {
- return json(res, data);
-}
-
-export function json(res, data = {}) {
- return res.status(200).json(data);
-}
-
-export function send(res, data, type = 'text/plain') {
- res.setHeader('Content-Type', type);
-
- return res.status(200).send(data);
-}
-
-export function redirect(res, url) {
- res.setHeader('Location', url);
-
- return res.status(303).end();
-}
-
-export function badRequest(res, msg = '400 Bad Request') {
- return res.status(400).end(msg);
-}
-
-export function unauthorized(res, msg = '401 Unauthorized') {
- return res.status(401).end(msg);
-}
-
-export function forbidden(res, msg = '403 Forbidden') {
- return res.status(403).end(msg);
-}
-
-export function notFound(res, msg = '404 Not Found') {
- return res.status(404).end(msg);
-}
-
-export function methodNotAllowed(res, msg = '405 Method Not Allowed') {
- res.status(405).end(msg);
-}
-
-export function serverError(res, msg = '500 Internal Server Error') {
- res.status(500).end(msg);
-}
diff --git a/lib/session.js b/lib/session.js
index 7c4476d6..b01cbe9a 100644
--- a/lib/session.js
+++ b/lib/session.js
@@ -1,6 +1,9 @@
-import { getWebsiteByUuid, getSessionByUuid, createSession } from 'queries';
-import { getJsonBody, getClientInfo } from 'lib/request';
-import { uuid, isValidUuid, parseToken } from 'lib/crypto';
+import { parseToken } from 'next-basics';
+import { validate } from 'uuid';
+import { uuid } from 'lib/crypto';
+import redis, { DELETED } from 'lib/redis';
+import { getClientInfo, getJsonBody } from 'lib/request';
+import { createSession, getSessionByUuid, getWebsiteByUuid } from 'queries';
export async function getSession(req) {
const { payload } = getJsonBody(req);
@@ -9,7 +12,6 @@ export async function getSession(req) {
throw new Error('Invalid request');
}
- const { website: website_uuid, hostname, screen, language } = payload;
const cache = req.headers['x-umami-cache'];
if (cache) {
@@ -20,26 +22,52 @@ export async function getSession(req) {
}
}
- if (!isValidUuid(website_uuid)) {
- throw new Error(`Invalid website: ${website_uuid}`);
+ const { website: website_uuid, hostname, screen, language } = payload;
+
+ if (!validate(website_uuid)) {
+ return null;
+ }
+
+ let websiteId = null;
+
+ // Check if website exists
+ if (redis.client) {
+ websiteId = await redis.client.get(`website:${website_uuid}`);
+ }
+
+ // Check database if redis does not have
+ if (!websiteId) {
+ const { website_id } = await getWebsiteByUuid(website_uuid);
+ websiteId = website_id;
+ }
+
+ if (!websiteId || websiteId === DELETED) {
+ throw new Error(`Website not found: ${website_uuid}`);
}
const { userAgent, browser, os, ip, country, device } = await getClientInfo(req, payload);
- const website = await getWebsiteByUuid(website_uuid);
+ const session_uuid = uuid(websiteId, hostname, ip, userAgent);
- if (!website) {
- throw new Error(`Website not found: ${website_uuid}`);
+ let sessionCreated = false;
+ let sessionId = null;
+ let session = null;
+
+ // Check if session exists
+ if (redis.client) {
+ sessionCreated = !!(await redis.client.get(`session:${session_uuid}`));
}
- const { website_id } = website;
- const session_uuid = uuid(website_id, hostname, ip, userAgent);
+ // Check database if redis does not have
+ if (!sessionCreated) {
+ session = await getSessionByUuid(session_uuid);
+ sessionCreated = !!session;
+ sessionId = session ? session.session_id : null;
+ }
- let session = await getSessionByUuid(session_uuid);
-
- if (!session) {
+ if (!sessionCreated) {
try {
- session = await createSession(website_id, {
+ session = await createSession(websiteId, {
session_uuid,
hostname,
browser,
@@ -50,21 +78,17 @@ export async function getSession(req) {
device,
});
- if (!session) {
- return null;
- }
+ sessionId = session ? session.session_id : null;
} catch (e) {
- if (!e.message.includes('Unique constraint')) {
+ if (!e.message.toLowerCase().includes('unique constraint')) {
throw e;
}
}
}
- const { session_id } = session;
-
return {
- website_id,
- session_id,
+ website_id: websiteId,
+ session_id: sessionId,
session_uuid,
};
}
diff --git a/lib/url.js b/lib/url.js
deleted file mode 100644
index 644770b6..00000000
--- a/lib/url.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export function removeTrailingSlash(url) {
- return url && url.length > 1 && url.endsWith('/') ? url.slice(0, -1) : url;
-}
-
-export function removeWWW(url) {
- return url && url.length > 1 && url.startsWith('www.') ? url.slice(4) : url;
-}
-
-export function getQueryString(params = {}) {
- const map = Object.keys(params).reduce((arr, key) => {
- if (params[key] !== undefined) {
- return arr.concat(`${key}=${encodeURIComponent(params[key])}`);
- }
- return arr;
- }, []);
-
- if (map.length) {
- return `?${map.join('&')}`;
- }
-
- return '';
-}
-
-export function makeUrl(url, params) {
- return `${url}${getQueryString(params)}`;
-}
-
-export function safeDecodeURI(s) {
- try {
- return decodeURI(s);
- } catch (e) {
- console.error(e);
- }
- return s;
-}
diff --git a/lib/web.js b/lib/web.js
deleted file mode 100644
index 7317d322..00000000
--- a/lib/web.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import { makeUrl } from './url';
-
-export const apiRequest = (method, url, body, headers) => {
- return fetch(url, {
- method,
- cache: 'no-cache',
- credentials: 'same-origin',
- headers: {
- Accept: 'application/json',
- 'Content-Type': 'application/json',
- ...headers,
- },
- body,
- }).then(res => {
- if (res.ok) {
- return res.json().then(data => ({ ok: res.ok, status: res.status, data }));
- }
-
- return res.text().then(data => ({ ok: res.ok, status: res.status, res: res, data }));
- });
-};
-
-export const get = (url, params, headers) =>
- apiRequest('get', makeUrl(url, params), undefined, headers);
-
-export const del = (url, params, headers) =>
- apiRequest('delete', makeUrl(url, params), undefined, headers);
-
-export const post = (url, params, headers) =>
- apiRequest('post', url, JSON.stringify(params), headers);
-
-export const put = (url, params, headers) =>
- apiRequest('put', url, JSON.stringify(params), headers);
-
-export const hook = (_this, method, callback) => {
- const orig = _this[method];
-
- return (...args) => {
- callback.apply(null, args);
-
- return orig.apply(_this, args);
- };
-};
-
-export const doNotTrack = () => {
- const { doNotTrack, navigator, external } = window;
-
- const msTrackProtection = 'msTrackingProtectionEnabled';
- const msTracking = () => {
- return external && msTrackProtection in external && external[msTrackProtection]();
- };
-
- const dnt = doNotTrack || navigator.doNotTrack || navigator.msDoNotTrack || msTracking();
-
- return dnt == '1' || dnt === 'yes';
-};
-
-export const setItem = (key, data, session) => {
- if (typeof window !== 'undefined' && data) {
- (session ? sessionStorage : localStorage).setItem(key, JSON.stringify(data));
- }
-};
-
-export const getItem = (key, session) => {
- if (typeof window !== 'undefined') {
- const value = (session ? sessionStorage : localStorage).getItem(key);
-
- if (value !== 'undefined') {
- return JSON.parse(value);
- }
- }
-};
-
-export const removeItem = (key, session) => {
- if (typeof window !== 'undefined') {
- (session ? sessionStorage : localStorage).removeItem(key);
- }
-};
diff --git a/netlify.toml b/netlify.toml
index c7168738..0d8c6fc1 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -1,2 +1,2 @@
[functions]
-included_files = ["public/geo/*.mmdb"]
+included_files = ["node_modules/.geo/**"]
diff --git a/package.json b/package.json
index f5c43c06..343adc45 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "umami",
- "version": "1.37.0",
+ "version": "1.38.0-beta.1",
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
"author": "Mike Cao ",
"license": "MIT",
@@ -11,8 +11,9 @@
},
"scripts": {
"dev": "next dev",
- "build": "npm-run-all build-tracker build-geo build-db build-app",
- "start": "npm-run-all check-db start-next",
+ "build": "npm-run-all build-db check-db build-tracker build-geo build-app",
+ "start": "start-next",
+ "build-docker": "npm-run-all build-db build-tracker build-geo build-app",
"start-docker": "npm-run-all check-db update-tracker start-server",
"start-env": "node scripts/start-env.js",
"start-server": "node server.js",
@@ -56,8 +57,7 @@
},
"dependencies": {
"@fontsource/inter": "4.5.7",
- "@prisma/client": "4.1.1",
- "bcryptjs": "^2.4.3",
+ "@prisma/client": "4.2.1",
"chalk": "^4.1.1",
"chart.js": "^2.9.4",
"classnames": "^2.3.1",
@@ -67,21 +67,25 @@
"cross-spawn": "^7.0.3",
"date-fns": "^2.23.0",
"date-fns-tz": "^1.1.4",
+ "dateformat": "^5.0.3",
+ "debug": "^4.3.4",
"del": "^6.0.0",
"detect-browser": "^5.2.0",
"dotenv": "^10.0.0",
"formik": "^2.2.9",
"fs-extra": "^10.0.1",
"immer": "^9.0.12",
+ "ioredis": "^5.2.3",
"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",
+ "kafkajs": "^2.1.0",
"maxmind": "^4.3.6",
"moment-timezone": "^0.5.33",
- "next": "^12.2.4",
+ "next": "^12.2.5",
+ "next-basics": "^0.6.0",
"node-fetch": "^3.2.8",
"npm-run-all": "^4.1.5",
"prop-types": "^15.7.2",
@@ -94,7 +98,7 @@
"react-tooltip": "^4.2.21",
"react-use-measure": "^2.0.4",
"react-window": "^1.8.6",
- "request-ip": "^2.1.3",
+ "request-ip": "^3.3.0",
"semver": "^7.3.6",
"thenby": "^1.3.4",
"timezone-support": "^2.0.2",
@@ -110,6 +114,8 @@
"eslint": "^7.32.0",
"eslint-config-next": "^12.2.4",
"eslint-config-prettier": "^8.5.0",
+ "eslint-import-resolver-alias": "^1.1.2",
+ "eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.0.0",
"extract-react-intl-messages": "^4.1.1",
"husky": "^7.0.0",
@@ -120,7 +126,7 @@
"postcss-preset-env": "7.4.3",
"postcss-rtlcss": "^3.6.1",
"prettier": "^2.6.2",
- "prisma": "4.1.1",
+ "prisma": "4.2.1",
"prompts": "2.4.2",
"rollup": "^2.70.1",
"rollup-plugin-terser": "^7.0.2",
diff --git a/pages/api/account/[id].js b/pages/api/account/[id].js
index 51279f4b..31c4b2dc 100644
--- a/pages/api/account/[id].js
+++ b/pages/api/account/[id].js
@@ -1,6 +1,6 @@
import { getAccountById, deleteAccount } from 'queries';
import { useAuth } from 'lib/middleware';
-import { methodNotAllowed, ok, unauthorized } from 'lib/response';
+import { methodNotAllowed, ok, unauthorized } from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/account/index.js b/pages/api/account/index.js
index a7cb3795..fe9cafe1 100644
--- a/pages/api/account/index.js
+++ b/pages/api/account/index.js
@@ -1,7 +1,6 @@
+import { ok, unauthorized, methodNotAllowed, badRequest, hashPassword } from 'next-basics';
import { getAccountById, getAccountByUsername, updateAccount, createAccount } from 'queries';
import { useAuth } from 'lib/middleware';
-import { hashPassword } from 'lib/crypto';
-import { ok, unauthorized, methodNotAllowed, badRequest } from 'lib/response';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/account/password.js b/pages/api/account/password.js
index 432ba34c..da3a643c 100644
--- a/pages/api/account/password.js
+++ b/pages/api/account/password.js
@@ -1,7 +1,13 @@
import { getAccountById, updateAccount } from 'queries';
import { useAuth } from 'lib/middleware';
-import { badRequest, methodNotAllowed, ok, unauthorized } from 'lib/response';
-import { checkPassword, hashPassword } from 'lib/crypto';
+import {
+ badRequest,
+ methodNotAllowed,
+ ok,
+ unauthorized,
+ checkPassword,
+ hashPassword,
+} from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/accounts/index.js b/pages/api/accounts/index.js
index 29edf828..42b96a11 100644
--- a/pages/api/accounts/index.js
+++ b/pages/api/accounts/index.js
@@ -1,6 +1,6 @@
import { getAccounts } from 'queries';
import { useAuth } from 'lib/middleware';
-import { ok, unauthorized, methodNotAllowed } from 'lib/response';
+import { ok, unauthorized, methodNotAllowed } from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/auth/login.js b/pages/api/auth/login.js
index 9a4aed9e..f1d99100 100644
--- a/pages/api/auth/login.js
+++ b/pages/api/auth/login.js
@@ -1,6 +1,6 @@
-import { checkPassword, createSecureToken } from 'lib/crypto';
+import { ok, unauthorized, badRequest, checkPassword, createSecureToken } from 'next-basics';
import { getAccountByUsername } from 'queries/admin/account/getAccountByUsername';
-import { ok, unauthorized, badRequest } from 'lib/response';
+import { secret } from 'lib/crypto';
export default async (req, res) => {
const { username, password } = req.body;
@@ -11,10 +11,10 @@ export default async (req, res) => {
const account = await getAccountByUsername(username);
- if (account && (await checkPassword(password, account.password))) {
+ if (account && checkPassword(password, account.password)) {
const { user_id, username, is_admin } = account;
const user = { user_id, username, is_admin };
- const token = await createSecureToken(user);
+ const token = createSecureToken(user, secret());
return ok(res, { token, user });
}
diff --git a/pages/api/auth/verify.js b/pages/api/auth/verify.js
index d9a2bb01..303a38ec 100644
--- a/pages/api/auth/verify.js
+++ b/pages/api/auth/verify.js
@@ -1,5 +1,5 @@
import { useAuth } from 'lib/middleware';
-import { ok, unauthorized } from 'lib/response';
+import { ok, unauthorized } from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/collect.js b/pages/api/collect.js
index 92451016..7fd7ffdf 100644
--- a/pages/api/collect.js
+++ b/pages/api/collect.js
@@ -1,18 +1,17 @@
const { Resolver } = require('dns').promises;
import isbot from 'isbot';
import ipaddr from 'ipaddr.js';
+import { createToken, unauthorized, send, badRequest, forbidden } from 'next-basics';
import { savePageView, saveEvent } from 'queries';
import { useCors, useSession } from 'lib/middleware';
import { getJsonBody, getIpAddress } from 'lib/request';
-import { ok, send, badRequest, forbidden } from 'lib/response';
-import { createToken } from 'lib/crypto';
-import { removeTrailingSlash } from 'lib/url';
+import { secret, uuid } from 'lib/crypto';
export default async (req, res) => {
await useCors(req, res);
- if (isbot(req.headers['user-agent'])) {
- return ok(res);
+ if (isbot(req.headers['user-agent']) && !process.env.DISABLE_BOT_CHECK) {
+ return unauthorized(res);
}
const ignoreIps = process.env.IGNORE_IP;
@@ -68,18 +67,27 @@ export default async (req, res) => {
let { url, referrer, event_name, event_data } = payload;
if (process.env.REMOVE_TRAILING_SLASH) {
- url = removeTrailingSlash(url);
+ url = url.replace(/\/$/, '');
}
+ const event_uuid = uuid();
+
if (type === 'pageview') {
await savePageView(website_id, { session_id, session_uuid, url, referrer });
} else if (type === 'event') {
- await saveEvent(website_id, { session_id, session_uuid, url, event_name, event_data });
+ await saveEvent(website_id, {
+ event_uuid,
+ session_id,
+ session_uuid,
+ url,
+ event_name,
+ event_data,
+ });
} else {
return badRequest(res);
}
- const token = await createToken({ website_id, session_id });
+ const token = createToken({ website_id, session_id, session_uuid }, secret());
return send(res, token);
};
diff --git a/pages/api/config.js b/pages/api/config.js
index a72eb0ba..27a04eaa 100644
--- a/pages/api/config.js
+++ b/pages/api/config.js
@@ -1,4 +1,4 @@
-import { ok, methodNotAllowed } from 'lib/response';
+import { ok, methodNotAllowed } from 'next-basics';
export default async (req, res) => {
if (req.method === 'GET') {
diff --git a/pages/api/heartbeat.js b/pages/api/heartbeat.js
new file mode 100644
index 00000000..dd1be1eb
--- /dev/null
+++ b/pages/api/heartbeat.js
@@ -0,0 +1,5 @@
+import { ok } from 'next-basics';
+
+export default async (req, res) => {
+ return ok(res, 'nice');
+};
diff --git a/pages/api/realtime/init.js b/pages/api/realtime/init.js
index 69c70a82..ee8f4ee2 100644
--- a/pages/api/realtime/init.js
+++ b/pages/api/realtime/init.js
@@ -1,8 +1,8 @@
import { subMinutes } from 'date-fns';
+import { ok, methodNotAllowed, createToken } from 'next-basics';
import { useAuth } from 'lib/middleware';
-import { ok, methodNotAllowed } from 'lib/response';
import { getUserWebsites, getRealtimeData } from 'queries';
-import { createToken } from 'lib/crypto';
+import { secret } from 'lib/crypto';
export default async (req, res) => {
await useAuth(req, res);
@@ -12,7 +12,7 @@ export default async (req, res) => {
const websites = await getUserWebsites(user_id);
const ids = websites.map(({ website_id }) => website_id);
- const token = await createToken({ websites: ids });
+ const token = createToken({ websites: ids }, secret());
const data = await getRealtimeData(ids, subMinutes(new Date(), 30));
return ok(res, {
diff --git a/pages/api/realtime/update.js b/pages/api/realtime/update.js
index 4fa0ea3b..9b91663d 100644
--- a/pages/api/realtime/update.js
+++ b/pages/api/realtime/update.js
@@ -1,8 +1,8 @@
+import { ok, methodNotAllowed, badRequest, parseToken } from 'next-basics';
import { useAuth } from 'lib/middleware';
-import { ok, methodNotAllowed, badRequest } from 'lib/response';
import { getRealtimeData } from 'queries';
-import { parseToken } from 'lib/crypto';
import { SHARE_TOKEN_HEADER } from 'lib/constants';
+import { secret } from 'lib/crypto';
export default async (req, res) => {
await useAuth(req, res);
@@ -16,7 +16,7 @@ export default async (req, res) => {
return badRequest(res);
}
- const { websites } = await parseToken(token);
+ const { websites } = parseToken(token, secret());
const data = await getRealtimeData(websites, new Date(+start_at));
diff --git a/pages/api/share/[id].js b/pages/api/share/[id].js
index 698f1ba0..e6dcb4a3 100644
--- a/pages/api/share/[id].js
+++ b/pages/api/share/[id].js
@@ -1,6 +1,6 @@
import { getWebsiteByShareId } from 'queries';
-import { ok, notFound, methodNotAllowed } from 'lib/response';
-import { createToken } from 'lib/crypto';
+import { ok, notFound, methodNotAllowed, createToken } from 'next-basics';
+import { secret } from 'lib/crypto';
export default async (req, res) => {
const { id } = req.query;
@@ -10,7 +10,7 @@ export default async (req, res) => {
if (website) {
const websiteId = website.website_id;
- const token = await createToken({ website_id: websiteId });
+ const token = createToken({ website_id: websiteId }, secret());
return ok(res, { websiteId, token });
}
diff --git a/pages/api/website/[id]/active.js b/pages/api/website/[id]/active.js
index 4acc97f1..20550427 100644
--- a/pages/api/website/[id]/active.js
+++ b/pages/api/website/[id]/active.js
@@ -1,4 +1,4 @@
-import { methodNotAllowed, ok, unauthorized } from 'lib/response';
+import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
import { getActiveVisitors } from 'queries';
diff --git a/pages/api/website/[id]/events.js b/pages/api/website/[id]/events.js
index ab4ddc7d..c633a585 100644
--- a/pages/api/website/[id]/events.js
+++ b/pages/api/website/[id]/events.js
@@ -1,6 +1,6 @@
import moment from 'moment-timezone';
import { getEventMetrics } from 'queries';
-import { ok, badRequest, methodNotAllowed, unauthorized } from 'lib/response';
+import { ok, badRequest, methodNotAllowed, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
diff --git a/pages/api/website/[id]/index.js b/pages/api/website/[id]/index.js
index 048b5ff1..aaebb3d4 100644
--- a/pages/api/website/[id]/index.js
+++ b/pages/api/website/[id]/index.js
@@ -1,5 +1,5 @@
+import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { deleteWebsite, getWebsiteById } from 'queries';
-import { methodNotAllowed, ok, unauthorized } from 'lib/response';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
diff --git a/pages/api/website/[id]/metrics.js b/pages/api/website/[id]/metrics.js
index b6e701e7..378d8c73 100644
--- a/pages/api/website/[id]/metrics.js
+++ b/pages/api/website/[id]/metrics.js
@@ -1,5 +1,5 @@
import { getPageviewMetrics, getSessionMetrics, getWebsiteById } from 'queries';
-import { ok, methodNotAllowed, unauthorized, badRequest } from 'lib/response';
+import { ok, methodNotAllowed, unauthorized, badRequest } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
import { FILTER_IGNORED } from 'lib/constants';
diff --git a/pages/api/website/[id]/pageviews.js b/pages/api/website/[id]/pageviews.js
index 3bd572d9..9a713761 100644
--- a/pages/api/website/[id]/pageviews.js
+++ b/pages/api/website/[id]/pageviews.js
@@ -1,6 +1,6 @@
import moment from 'moment-timezone';
import { getPageviewStats } from 'queries';
-import { ok, badRequest, methodNotAllowed, unauthorized } from 'lib/response';
+import { ok, badRequest, methodNotAllowed, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
diff --git a/pages/api/website/[id]/reset.js b/pages/api/website/[id]/reset.js
index 10fc5cb7..2f5d05b4 100644
--- a/pages/api/website/[id]/reset.js
+++ b/pages/api/website/[id]/reset.js
@@ -1,5 +1,5 @@
import { resetWebsite } from 'queries';
-import { methodNotAllowed, ok, unauthorized } from 'lib/response';
+import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
export default async (req, res) => {
diff --git a/pages/api/website/[id]/stats.js b/pages/api/website/[id]/stats.js
index bd32c79d..d652c048 100644
--- a/pages/api/website/[id]/stats.js
+++ b/pages/api/website/[id]/stats.js
@@ -1,5 +1,5 @@
import { getWebsiteStats } from 'queries';
-import { methodNotAllowed, ok, unauthorized } from 'lib/response';
+import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useCors } from 'lib/middleware';
diff --git a/pages/api/website/index.js b/pages/api/website/index.js
index 59d0a5f1..ee67a6b0 100644
--- a/pages/api/website/index.js
+++ b/pages/api/website/index.js
@@ -1,7 +1,7 @@
+import { ok, unauthorized, methodNotAllowed, getRandomChars } from 'next-basics';
import { updateWebsite, createWebsite, getWebsiteById } from 'queries';
import { useAuth } from 'lib/middleware';
-import { uuid, getRandomChars } from 'lib/crypto';
-import { ok, unauthorized, methodNotAllowed } from 'lib/response';
+import { uuid } from 'lib/crypto';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/api/websites/index.js b/pages/api/websites/index.js
index b70272d8..8b03a9e9 100644
--- a/pages/api/websites/index.js
+++ b/pages/api/websites/index.js
@@ -1,6 +1,6 @@
import { getAllWebsites, getUserWebsites } from 'queries';
import { useAuth } from 'lib/middleware';
-import { ok, methodNotAllowed, unauthorized } from 'lib/response';
+import { ok, methodNotAllowed, unauthorized } from 'next-basics';
export default async (req, res) => {
await useAuth(req, res);
diff --git a/pages/logout.js b/pages/logout.js
index 7692fb03..bcc99a10 100644
--- a/pages/logout.js
+++ b/pages/logout.js
@@ -1,6 +1,6 @@
import { useEffect } from 'react';
import { useRouter } from 'next/router';
-import { removeItem } from 'lib/web';
+import { removeItem } from 'next-basics';
import { AUTH_TOKEN } from 'lib/constants';
import { setUser } from 'store/app';
diff --git a/public/intl/messages/ca-ES.json b/public/intl/messages/ca-ES.json
index af1fbd6d..9b6013e7 100644
--- a/public/intl/messages/ca-ES.json
+++ b/public/intl/messages/ca-ES.json
@@ -397,6 +397,12 @@
"value": "Llocs web"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Ahir"
+ }
+ ],
"message.active-users": [
{
"type": 1,
diff --git a/public/intl/messages/de-DE.json b/public/intl/messages/de-DE.json
index 0bc273b6..ee999544 100644
--- a/public/intl/messages/de-DE.json
+++ b/public/intl/messages/de-DE.json
@@ -397,6 +397,12 @@
"value": "Webseiten"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Gestern"
+ }
+ ],
"message.active-users": [
{
"type": 1,
@@ -474,7 +480,7 @@
"message.edit-dashboard": [
{
"type": 0,
- "value": "Edit dashboard"
+ "value": "Dashboard bearbeiten"
}
],
"message.failure": [
@@ -770,7 +776,7 @@
"metrics.query-parameters": [
{
"type": 0,
- "value": "Query parameters"
+ "value": "Abfrageparameter"
}
],
"metrics.referrers": [
diff --git a/public/intl/messages/en-GB.json b/public/intl/messages/en-GB.json
index 721c765a..ecb654d1 100644
--- a/public/intl/messages/en-GB.json
+++ b/public/intl/messages/en-GB.json
@@ -397,6 +397,12 @@
"value": "Websites"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Yesterday"
+ }
+ ],
"message.active-users": [
{
"type": 1,
diff --git a/public/intl/messages/en-US.json b/public/intl/messages/en-US.json
index 721c765a..ecb654d1 100644
--- a/public/intl/messages/en-US.json
+++ b/public/intl/messages/en-US.json
@@ -397,6 +397,12 @@
"value": "Websites"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Yesterday"
+ }
+ ],
"message.active-users": [
{
"type": 1,
diff --git a/public/intl/messages/es-MX.json b/public/intl/messages/es-MX.json
index 761018ba..d70fb6e7 100644
--- a/public/intl/messages/es-MX.json
+++ b/public/intl/messages/es-MX.json
@@ -397,6 +397,12 @@
"value": "Sitios"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Ayer"
+ }
+ ],
"message.active-users": [
{
"type": 1,
diff --git a/public/intl/messages/fr-FR.json b/public/intl/messages/fr-FR.json
index 6ea8623b..06a3abdb 100644
--- a/public/intl/messages/fr-FR.json
+++ b/public/intl/messages/fr-FR.json
@@ -38,7 +38,7 @@
"label.all-websites": [
{
"type": 0,
- "value": "Tous les sites web"
+ "value": "Tous les sites"
}
],
"label.back": [
@@ -170,7 +170,7 @@
"label.language": [
{
"type": 0,
- "value": "Langage"
+ "value": "Langue"
}
],
"label.last-days": [
@@ -332,7 +332,7 @@
"label.this-month": [
{
"type": 0,
- "value": "Ce mois ci"
+ "value": "Ce mois"
}
],
"label.this-week": [
@@ -389,6 +389,12 @@
"value": "Sites"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Hier"
+ }
+ ],
"message.active-users": [
{
"type": 1,
@@ -444,7 +450,7 @@
"message.confirm-reset": [
{
"type": 0,
- "value": "Êtes-vous sûr de vouloir réinistialiser les statistiques de "
+ "value": "Êtes-vous sûr de vouloir réinitialiser les statistiques de "
},
{
"type": 1,
@@ -470,7 +476,7 @@
"message.edit-dashboard": [
{
"type": 0,
- "value": "Edit dashboard"
+ "value": "Modifier le tableau de bord"
}
],
"message.failure": [
@@ -560,7 +566,7 @@
"message.no-websites-configured": [
{
"type": 0,
- "value": "Vous n'avez configuré aucun site Web."
+ "value": "Vous n'avez configuré aucun site."
}
],
"message.page-not-found": [
@@ -582,7 +588,7 @@
"message.reset-warning": [
{
"type": 0,
- "value": "Toutes les statistiques pour ce site seront supprimés, mais votre code de suivi restera intact."
+ "value": "Toutes les statistiques pour ce site seront supprimées, mais votre code de suivi restera intact."
}
],
"message.save-success": [
@@ -630,7 +636,7 @@
},
{
"type": 0,
- "value": " de votre site Web."
+ "value": " de votre site."
}
],
"message.type-delete": [
@@ -742,7 +748,7 @@
"metrics.languages": [
{
"type": 0,
- "value": "Langages"
+ "value": "Langues"
}
],
"metrics.operating-systems": [
@@ -766,7 +772,7 @@
"metrics.query-parameters": [
{
"type": 0,
- "value": "Query parameters"
+ "value": "Paramètres d'URL"
}
],
"metrics.referrers": [
@@ -778,7 +784,7 @@
"metrics.screens": [
{
"type": 0,
- "value": "Tailles d'écran"
+ "value": "Résolutions d'écran"
}
],
"metrics.unique-visitors": [
diff --git a/public/intl/messages/it-IT.json b/public/intl/messages/it-IT.json
index 5ff6beee..6e061095 100644
--- a/public/intl/messages/it-IT.json
+++ b/public/intl/messages/it-IT.json
@@ -397,6 +397,12 @@
"value": "Siti web"
}
],
+ "label.yesterday": [
+ {
+ "type": 0,
+ "value": "Ieri"
+ }
+ ],
"message.active-users": [
{
"type": 1,
diff --git a/public/intl/messages/zh-CN.json b/public/intl/messages/zh-CN.json
index 0ad13b3b..5773f835 100644
--- a/public/intl/messages/zh-CN.json
+++ b/public/intl/messages/zh-CN.json
@@ -454,7 +454,7 @@
"message.edit-dashboard": [
{
"type": 0,
- "value": "Edit dashboard"
+ "value": "编辑仪表板"
}
],
"message.failure": [
@@ -758,7 +758,7 @@
"metrics.query-parameters": [
{
"type": 0,
- "value": "Query parameters"
+ "value": "查询参数"
}
],
"metrics.referrers": [
diff --git a/public/intl/messages/zh-TW.json b/public/intl/messages/zh-TW.json
index 019829ea..7d14f4af 100644
--- a/public/intl/messages/zh-TW.json
+++ b/public/intl/messages/zh-TW.json
@@ -170,7 +170,7 @@
"label.language": [
{
"type": 0,
- "value": "Language"
+ "value": "語言"
}
],
"label.last-days": [
@@ -454,7 +454,7 @@
"message.edit-dashboard": [
{
"type": 0,
- "value": "Edit dashboard"
+ "value": "編輯管理面板"
}
],
"message.failure": [
@@ -754,7 +754,7 @@
"metrics.query-parameters": [
{
"type": 0,
- "value": "Query parameters"
+ "value": "查詢參數"
}
],
"metrics.referrers": [
diff --git a/queries/admin/account/createAccount.js b/queries/admin/account/createAccount.js
index 193ed719..2c4e1a40 100644
--- a/queries/admin/account/createAccount.js
+++ b/queries/admin/account/createAccount.js
@@ -1,9 +1,7 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function createAccount(data) {
- return runQuery(
- prisma.account.create({
- data,
- }),
- );
+ return prisma.client.account.create({
+ data,
+ });
}
diff --git a/queries/admin/account/deleteAccount.js b/queries/admin/account/deleteAccount.js
index 402b4111..4e204e73 100644
--- a/queries/admin/account/deleteAccount.js
+++ b/queries/admin/account/deleteAccount.js
@@ -1,11 +1,50 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import redis, { DELETED } from 'lib/redis';
export async function deleteAccount(user_id) {
- return runQuery(
- prisma.account.delete({
- where: {
- user_id,
- },
- }),
- );
+ const { client } = prisma;
+
+ const websites = await client.website.findMany({
+ where: { user_id },
+ select: { website_uuid: true },
+ });
+
+ let websiteUuids = [];
+
+ if (websites.length > 0) {
+ websiteUuids = websites.map(a => a.website_uuid);
+ }
+
+ return client
+ .$transaction([
+ client.pageview.deleteMany({
+ where: { session: { website: { user_id } } },
+ }),
+ client.event_data.deleteMany({
+ where: { event: { session: { website: { user_id } } } },
+ }),
+ client.event.deleteMany({
+ where: { session: { website: { user_id } } },
+ }),
+ client.session.deleteMany({
+ where: { website: { user_id } },
+ }),
+ client.website.deleteMany({
+ where: { user_id },
+ }),
+ client.account.delete({
+ where: {
+ user_id,
+ },
+ }),
+ ])
+ .then(async res => {
+ if (redis.client) {
+ for (let i = 0; i < websiteUuids.length; i++) {
+ await redis.client.set(`website:${websiteUuids[i]}`, DELETED);
+ }
+ }
+
+ return res;
+ });
}
diff --git a/queries/admin/account/getAccountById.js b/queries/admin/account/getAccountById.js
index de2605e1..74c4a4a9 100644
--- a/queries/admin/account/getAccountById.js
+++ b/queries/admin/account/getAccountById.js
@@ -1,11 +1,9 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getAccountById(user_id) {
- return runQuery(
- prisma.account.findUnique({
- where: {
- user_id,
- },
- }),
- );
+ return prisma.client.account.findUnique({
+ where: {
+ user_id,
+ },
+ });
}
diff --git a/queries/admin/account/getAccountByUsername.js b/queries/admin/account/getAccountByUsername.js
index d476c38e..ff64c8ce 100644
--- a/queries/admin/account/getAccountByUsername.js
+++ b/queries/admin/account/getAccountByUsername.js
@@ -1,11 +1,9 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getAccountByUsername(username) {
- return runQuery(
- prisma.account.findUnique({
- where: {
- username,
- },
- }),
- );
+ return prisma.client.account.findUnique({
+ where: {
+ username,
+ },
+ });
}
diff --git a/queries/admin/account/getAccounts.js b/queries/admin/account/getAccounts.js
index e6ebedf2..154626d1 100644
--- a/queries/admin/account/getAccounts.js
+++ b/queries/admin/account/getAccounts.js
@@ -1,21 +1,19 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getAccounts() {
- return runQuery(
- prisma.account.findMany({
- orderBy: [
- { is_admin: 'desc' },
- {
- username: 'asc',
- },
- ],
- select: {
- user_id: true,
- username: true,
- is_admin: true,
- created_at: true,
- updated_at: true,
+ return prisma.client.account.findMany({
+ orderBy: [
+ { is_admin: 'desc' },
+ {
+ username: 'asc',
},
- }),
- );
+ ],
+ select: {
+ user_id: true,
+ username: true,
+ is_admin: true,
+ created_at: true,
+ updated_at: true,
+ },
+ });
}
diff --git a/queries/admin/account/updateAccount.js b/queries/admin/account/updateAccount.js
index b8d718f4..80509dec 100644
--- a/queries/admin/account/updateAccount.js
+++ b/queries/admin/account/updateAccount.js
@@ -1,12 +1,10 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function updateAccount(user_id, data) {
- return runQuery(
- prisma.account.update({
- where: {
- user_id,
- },
- data,
- }),
- );
+ return prisma.client.account.update({
+ where: {
+ user_id,
+ },
+ data,
+ });
}
diff --git a/queries/admin/website/createWebsite.js b/queries/admin/website/createWebsite.js
index 3cb6887f..679fdaa3 100644
--- a/queries/admin/website/createWebsite.js
+++ b/queries/admin/website/createWebsite.js
@@ -1,8 +1,9 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import redis from 'lib/redis';
export async function createWebsite(user_id, data) {
- return runQuery(
- prisma.website.create({
+ return prisma.client.website
+ .create({
data: {
account: {
connect: {
@@ -11,6 +12,12 @@ export async function createWebsite(user_id, data) {
},
...data,
},
- }),
- );
+ })
+ .then(async res => {
+ if (redis.client && res) {
+ await redis.client.set(`website:${res.website_uuid}`, res.website_id);
+ }
+
+ return res;
+ });
}
diff --git a/queries/admin/website/deleteWebsite.js b/queries/admin/website/deleteWebsite.js
index 81cef845..4c8518dc 100644
--- a/queries/admin/website/deleteWebsite.js
+++ b/queries/admin/website/deleteWebsite.js
@@ -1,11 +1,33 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import redis, { DELETED } from 'lib/redis';
+import { getWebsiteById } from 'queries';
export async function deleteWebsite(website_id) {
- return runQuery(
- prisma.website.delete({
- where: {
- website_id,
- },
+ const { client, transaction } = prisma;
+
+ const { website_uuid } = await getWebsiteById(website_id);
+
+ return transaction([
+ client.pageview.deleteMany({
+ where: { session: { website: { website_id } } },
}),
- );
+ client.event_data.deleteMany({
+ where: { event: { session: { website: { website_id } } } },
+ }),
+ client.event.deleteMany({
+ where: { session: { website: { website_id } } },
+ }),
+ client.session.deleteMany({
+ where: { website: { website_id } },
+ }),
+ client.website.delete({
+ where: { website_id },
+ }),
+ ]).then(async res => {
+ if (redis.client) {
+ await redis.client.set(`website:${website_uuid}`, DELETED);
+ }
+
+ return res;
+ });
}
diff --git a/queries/admin/website/getAllWebsites.js b/queries/admin/website/getAllWebsites.js
index 7e413fe8..23afd813 100644
--- a/queries/admin/website/getAllWebsites.js
+++ b/queries/admin/website/getAllWebsites.js
@@ -1,24 +1,23 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getAllWebsites() {
- let data = await runQuery(
- prisma.website.findMany({
- orderBy: [
- {
- user_id: 'asc',
- },
- {
- name: 'asc',
- },
- ],
- include: {
- account: {
- select: {
- username: true,
- },
+ let data = await prisma.client.website.findMany({
+ orderBy: [
+ {
+ user_id: 'asc',
+ },
+ {
+ name: 'asc',
+ },
+ ],
+ include: {
+ account: {
+ select: {
+ username: true,
},
},
- }),
- );
+ },
+ });
+
return data.map(i => ({ ...i, account: i.account.username }));
}
diff --git a/queries/admin/website/getUserWebsites.js b/queries/admin/website/getUserWebsites.js
index 4cd75997..5a9662c0 100644
--- a/queries/admin/website/getUserWebsites.js
+++ b/queries/admin/website/getUserWebsites.js
@@ -1,14 +1,12 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getUserWebsites(user_id) {
- return runQuery(
- prisma.website.findMany({
- where: {
- user_id,
- },
- orderBy: {
- name: 'asc',
- },
- }),
- );
+ return prisma.client.website.findMany({
+ where: {
+ user_id,
+ },
+ orderBy: {
+ name: 'asc',
+ },
+ });
}
diff --git a/queries/admin/website/getWebsiteById.js b/queries/admin/website/getWebsiteById.js
index 8cf0f50f..9b8cfe93 100644
--- a/queries/admin/website/getWebsiteById.js
+++ b/queries/admin/website/getWebsiteById.js
@@ -1,11 +1,9 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getWebsiteById(website_id) {
- return runQuery(
- prisma.website.findUnique({
- where: {
- website_id,
- },
- }),
- );
+ return prisma.client.website.findUnique({
+ where: {
+ website_id,
+ },
+ });
}
diff --git a/queries/admin/website/getWebsiteByShareId.js b/queries/admin/website/getWebsiteByShareId.js
index 9fcc1ab3..fbdeebc9 100644
--- a/queries/admin/website/getWebsiteByShareId.js
+++ b/queries/admin/website/getWebsiteByShareId.js
@@ -1,11 +1,9 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function getWebsiteByShareId(share_id) {
- return runQuery(
- prisma.website.findUnique({
- where: {
- share_id,
- },
- }),
- );
+ return prisma.client.website.findUnique({
+ where: {
+ share_id,
+ },
+ });
}
diff --git a/queries/admin/website/getWebsiteByUuid.js b/queries/admin/website/getWebsiteByUuid.js
index 36c41e67..900e4539 100644
--- a/queries/admin/website/getWebsiteByUuid.js
+++ b/queries/admin/website/getWebsiteByUuid.js
@@ -1,11 +1,18 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import redis from 'lib/redis';
export async function getWebsiteByUuid(website_uuid) {
- return runQuery(
- prisma.website.findUnique({
+ return prisma.client.website
+ .findUnique({
where: {
website_uuid,
},
- }),
- );
+ })
+ .then(async res => {
+ if (redis.client && res) {
+ await redis.client.set(`website:${res.website_uuid}`, 1);
+ }
+
+ return res;
+ });
}
diff --git a/queries/admin/website/resetWebsite.js b/queries/admin/website/resetWebsite.js
index 18f249b8..6941c2af 100644
--- a/queries/admin/website/resetWebsite.js
+++ b/queries/admin/website/resetWebsite.js
@@ -1,5 +1,20 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function resetWebsite(website_id) {
- return runQuery(prisma.$queryRaw`delete from session where website_id=${website_id}`);
+ const { client, transaction } = prisma;
+
+ return transaction([
+ client.pageview.deleteMany({
+ where: { session: { website: { website_id } } },
+ }),
+ client.event_data.deleteMany({
+ where: { event: { session: { website: { website_id } } } },
+ }),
+ client.event.deleteMany({
+ where: { session: { website: { website_id } } },
+ }),
+ client.session.deleteMany({
+ where: { website: { website_id } },
+ }),
+ ]);
}
diff --git a/queries/admin/website/updateWebsite.js b/queries/admin/website/updateWebsite.js
index e2a16925..54f01f66 100644
--- a/queries/admin/website/updateWebsite.js
+++ b/queries/admin/website/updateWebsite.js
@@ -1,12 +1,10 @@
-import { prisma, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
export async function updateWebsite(website_id, data) {
- return runQuery(
- prisma.website.update({
- where: {
- website_id,
- },
- data,
- }),
- );
+ return prisma.client.website.update({
+ where: {
+ website_id,
+ },
+ data,
+ });
}
diff --git a/queries/analytics/event/getEventMetrics.js b/queries/analytics/event/getEventMetrics.js
index 1dbe10f4..4a828e15 100644
--- a/queries/analytics/event/getEventMetrics.js
+++ b/queries/analytics/event/getEventMetrics.js
@@ -1,17 +1,10 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getBetweenDatesClickhouse,
- getDateQuery,
- getDateQueryClickhouse,
- getFilterQuery,
- rawQuery,
- rawQueryClickhouse,
- runAnalyticsQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getEventMetrics(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
@@ -24,11 +17,11 @@ async function relationalQuery(
unit = 'day',
filters = {},
) {
+ const { rawQuery, getDateQuery, getFilterQuery } = prisma;
const params = [website_id, start_at, end_at];
return rawQuery(
- `
- select
+ `select
event_name x,
${getDateQuery('created_at', unit, timezone)} t,
count(*) y
@@ -37,8 +30,7 @@ async function relationalQuery(
and created_at between $2 and $3
${getFilterQuery('event', filters, params)}
group by 1, 2
- order by 2
- `,
+ order by 2`,
params,
);
}
@@ -51,21 +43,20 @@ async function clickhouseQuery(
unit = 'day',
filters = {},
) {
+ const { rawQuery, getDateQuery, getBetweenDates, getFilterQuery } = clickhouse;
const params = [website_id];
- return rawQueryClickhouse(
- `
- select
- event_value x,
- ${getDateQueryClickhouse('created_at', unit, timezone)} t,
+ return rawQuery(
+ `select
+ event_name x,
+ ${getDateQuery('created_at', unit, timezone)} t,
count(*) y
from event
where website_id= $1
- and ${getBetweenDatesClickhouse('created_at', start_at, end_at)}
+ and ${getBetweenDates('created_at', start_at, end_at)}
${getFilterQuery('event', filters, params)}
group by x, t
- order by t
- `,
+ order by t`,
params,
);
}
diff --git a/queries/analytics/event/getEvents.js b/queries/analytics/event/getEvents.js
index 7969877a..317a8f2e 100644
--- a/queries/analytics/event/getEvents.js
+++ b/queries/analytics/event/getEvents.js
@@ -1,40 +1,34 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- rawQueryClickhouse,
- getDateFormatClickhouse,
- prisma,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export function getEvents(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
function relationalQuery(websites, start_at) {
- return runQuery(
- prisma.event.findMany({
- where: {
- website: {
- website_id: {
- in: websites,
- },
- },
- created_at: {
- gte: start_at,
+ return prisma.client.event.findMany({
+ where: {
+ website: {
+ website_id: {
+ in: websites,
},
},
- }),
- );
+ created_at: {
+ gte: start_at,
+ },
+ },
+ });
}
function clickhouseQuery(websites, start_at) {
- return rawQueryClickhouse(
- `
- select
+ const { rawQuery, getDateFormat } = clickhouse;
+
+ return rawQuery(
+ `select
event_id,
website_id,
session_id,
@@ -43,7 +37,6 @@ function clickhouseQuery(websites, start_at) {
event_name
from event
where website_id in (${websites.join[',']}
- and created_at >= ${getDateFormatClickhouse(start_at)})
- `,
+ and created_at >= ${getDateFormat(start_at)})`,
);
}
diff --git a/queries/analytics/event/saveEvent.js b/queries/analytics/event/saveEvent.js
index af1c78ed..2c09f05d 100644
--- a/queries/analytics/event/saveEvent.js
+++ b/queries/analytics/event/saveEvent.js
@@ -1,15 +1,11 @@
-import { CLICKHOUSE, RELATIONAL, URL_LENGTH } from 'lib/constants';
-import {
- getDateFormatClickhouse,
- prisma,
- rawQueryClickhouse,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
+import { EVENT_NAME_LENGTH, URL_LENGTH } from 'lib/constants';
+import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db';
+import kafka from 'lib/kafka';
+import prisma from 'lib/prisma';
export async function saveEvent(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
@@ -18,8 +14,8 @@ async function relationalQuery(website_id, { session_id, url, event_name, event_
const data = {
website_id,
session_id,
- url: url?.substr(0, URL_LENGTH),
- event_name: event_name?.substr(0, 50),
+ url: url?.substring(0, URL_LENGTH),
+ event_name: event_name?.substring(0, EVENT_NAME_LENGTH),
};
if (event_data) {
@@ -30,20 +26,25 @@ async function relationalQuery(website_id, { session_id, url, event_name, event_
};
}
- return runQuery(
- prisma.event.create({
- data,
- }),
- );
+ return prisma.client.event.create({
+ data,
+ });
}
-async function clickhouseQuery(website_id, { session_uuid, url, event_name }) {
- const params = [website_id, session_uuid, url?.substr(0, URL_LENGTH), event_name?.substr(0, 50)];
+async function clickhouseQuery(
+ website_id,
+ { event_uuid, session_uuid, url, event_name, event_data },
+) {
+ const { getDateFormat, sendMessage } = kafka;
+ const params = {
+ event_uuid,
+ website_id,
+ session_uuid,
+ created_at: getDateFormat(new Date()),
+ url: url?.substring(0, URL_LENGTH),
+ event_name: event_name?.substring(0, EVENT_NAME_LENGTH),
+ event_data: JSON.stringify(event_data),
+ };
- return rawQueryClickhouse(
- `
- insert into umami_dev.event (created_at, website_id, session_uuid, url, event_name)
- values (${getDateFormatClickhouse(new Date())}, $1, $2, $3, $4);`,
- params,
- );
+ await sendMessage(params, 'event');
}
diff --git a/queries/analytics/pageview/getPageviewMetrics.js b/queries/analytics/pageview/getPageviewMetrics.js
index 9d3eabaa..d34f4c17 100644
--- a/queries/analytics/pageview/getPageviewMetrics.js
+++ b/queries/analytics/pageview/getPageviewMetrics.js
@@ -1,20 +1,16 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- rawQueryClickhouse,
- runAnalyticsQuery,
- parseFilters,
- rawQuery,
- getBetweenDatesClickhouse,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getPageviewMetrics(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, start_at, end_at, column, table, filters = {}) {
+ const { rawQuery, parseFilters } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
table,
@@ -24,8 +20,7 @@ async function relationalQuery(website_id, start_at, end_at, column, table, filt
);
return rawQuery(
- `
- select ${column} x, count(*) y
+ `select ${column} x, count(*) y
from ${table}
${joinSession}
where ${table}.website_id=$1
@@ -34,13 +29,13 @@ async function relationalQuery(website_id, start_at, end_at, column, table, filt
${joinSession && sessionQuery}
${eventQuery}
group by 1
- order by 2 desc
- `,
+ order by 2 desc`,
params,
);
}
async function clickhouseQuery(website_id, start_at, end_at, column, table, filters = {}) {
+ const { rawQuery, parseFilters, getBetweenDates } = clickhouse;
const params = [website_id];
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
table,
@@ -50,19 +45,17 @@ async function clickhouseQuery(website_id, start_at, end_at, column, table, filt
'session_uuid',
);
- return rawQueryClickhouse(
- `
- select ${column} x, count(*) y
+ return rawQuery(
+ `select ${column} x, count(*) y
from ${table}
${joinSession}
where ${table}.website_id= $1
- and ${getBetweenDatesClickhouse(table + '.created_at', start_at, end_at)}
+ and ${getBetweenDates(table + '.created_at', start_at, end_at)}
${pageviewQuery}
${joinSession && sessionQuery}
${eventQuery}
group by x
- order by y desc
- `,
+ order by y desc`,
params,
);
}
diff --git a/queries/analytics/pageview/getPageviewParams.js b/queries/analytics/pageview/getPageviewParams.js
index 549ff11c..fa445da5 100644
--- a/queries/analytics/pageview/getPageviewParams.js
+++ b/queries/analytics/pageview/getPageviewParams.js
@@ -1,14 +1,15 @@
-import { parseFilters, rawQuery, runAnalyticsQuery } from 'lib/db';
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
+import prisma from 'lib/prisma';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getPageviewParams(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, start_at, end_at, column, table, filters = {}) {
+ const { parseFilters, rawQuery } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters(
table,
@@ -18,8 +19,7 @@ async function relationalQuery(website_id, start_at, end_at, column, table, filt
);
return rawQuery(
- `
- select url x,
+ `select url x,
count(*) y
from ${table}
${joinSession}
@@ -30,8 +30,7 @@ async function relationalQuery(website_id, start_at, end_at, column, table, filt
${joinSession && sessionQuery}
${eventQuery}
group by 1
- order by 2 desc
- `,
+ order by 2 desc`,
params,
);
}
diff --git a/queries/analytics/pageview/getPageviewStats.js b/queries/analytics/pageview/getPageviewStats.js
index 00ff857a..da25ab0c 100644
--- a/queries/analytics/pageview/getPageviewStats.js
+++ b/queries/analytics/pageview/getPageviewStats.js
@@ -1,18 +1,10 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getBetweenDatesClickhouse,
- getDateQuery,
- getDateQueryClickhouse,
- getDateStringQueryClickhouse,
- parseFilters,
- rawQuery,
- rawQueryClickhouse,
- runAnalyticsQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getPageviewStats(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
@@ -27,6 +19,7 @@ async function relationalQuery(
filters = {},
sessionKey = 'session_id',
) {
+ const { getDateQuery, parseFilters, rawQuery } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -36,8 +29,7 @@ async function relationalQuery(
);
return rawQuery(
- `
- select ${getDateQuery('pageview.created_at', unit, timezone)} t,
+ `select ${getDateQuery('pageview.created_at', unit, timezone)} t,
count(${count !== '*' ? `${count}${sessionKey}` : count}) y
from pageview
${joinSession}
@@ -45,8 +37,7 @@ async function relationalQuery(
and pageview.created_at between $2 and $3
${pageviewQuery}
${sessionQuery}
- group by 1
- `,
+ group by 1`,
params,
);
}
@@ -61,6 +52,7 @@ async function clickhouseQuery(
filters = {},
sessionKey = 'session_uuid',
) {
+ const { parseFilters, rawQuery, getDateStringQuery, getDateQuery, getBetweenDates } = clickhouse;
const params = [website_id];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -70,24 +62,22 @@ async function clickhouseQuery(
sessionKey,
);
- return rawQueryClickhouse(
- `
- select
- ${getDateStringQueryClickhouse('g.t', unit)} as t,
+ return rawQuery(
+ `select
+ ${getDateStringQuery('g.t', unit)} as t,
g.y as y
from
(select
- ${getDateQueryClickhouse('created_at', unit, timezone)} t,
+ ${getDateQuery('created_at', unit, timezone)} t,
count(${count !== '*' ? `${count}${sessionKey}` : count}) y
from pageview
${joinSession}
where pageview.website_id= $1
- and ${getBetweenDatesClickhouse('pageview.created_at', start_at, end_at)}
+ and ${getBetweenDates('pageview.created_at', start_at, end_at)}
${pageviewQuery}
${sessionQuery}
group by t) g
- order by t
- `,
+ order by t`,
params,
);
}
diff --git a/queries/analytics/pageview/getPageviews.js b/queries/analytics/pageview/getPageviews.js
index 45463ec8..8ce704d8 100644
--- a/queries/analytics/pageview/getPageviews.js
+++ b/queries/analytics/pageview/getPageviews.js
@@ -1,40 +1,32 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- rawQueryClickhouse,
- getDateFormatClickhouse,
- prisma,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getPageviews(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(websites, start_at) {
- return runQuery(
- prisma.pageview.findMany({
- where: {
- website: {
- website_id: {
- in: websites,
- },
- },
- created_at: {
- gte: start_at,
+ return prisma.client.pageview.findMany({
+ where: {
+ website: {
+ website_id: {
+ in: websites,
},
},
- }),
- );
+ created_at: {
+ gte: start_at,
+ },
+ },
+ });
}
async function clickhouseQuery(websites, start_at) {
- return rawQueryClickhouse(
- `
- select
+ return clickhouse.rawQuery(
+ `select
view_id,
website_id,
session_id,
@@ -42,7 +34,6 @@ async function clickhouseQuery(websites, start_at) {
url
from pageview
where website_id in (${websites.join[',']}
- and created_at >= ${getDateFormatClickhouse(start_at)})
- `,
+ and created_at >= ${clickhouse.getDateFormat(start_at)})`,
);
}
diff --git a/queries/analytics/pageview/savePageView.js b/queries/analytics/pageview/savePageView.js
index c165b56d..3739ff43 100644
--- a/queries/analytics/pageview/savePageView.js
+++ b/queries/analytics/pageview/savePageView.js
@@ -1,44 +1,35 @@
-import { CLICKHOUSE, RELATIONAL, URL_LENGTH } from 'lib/constants';
-import {
- getDateFormatClickhouse,
- prisma,
- rawQueryClickhouse,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
+import { URL_LENGTH } from 'lib/constants';
+import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db';
+import kafka from 'lib/kafka';
+import prisma from 'lib/prisma';
export async function savePageView(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, { session_id, url, referrer }) {
- return runQuery(
- prisma.pageview.create({
- data: {
- website_id,
- session_id,
- url: url?.substr(0, URL_LENGTH),
- referrer: referrer?.substr(0, URL_LENGTH),
- },
- }),
- );
+ return prisma.client.pageview.create({
+ data: {
+ website_id,
+ session_id,
+ url: url?.substring(0, URL_LENGTH),
+ referrer: referrer?.substring(0, URL_LENGTH),
+ },
+ });
}
async function clickhouseQuery(website_id, { session_uuid, url, referrer }) {
- const params = [
- website_id,
- session_uuid,
- url?.substr(0, URL_LENGTH),
- referrer?.substr(0, URL_LENGTH),
- ];
+ const { getDateFormat, sendMessage } = kafka;
+ const params = {
+ website_id: website_id,
+ session_uuid: session_uuid,
+ created_at: getDateFormat(new Date()),
+ url: url?.substring(0, URL_LENGTH),
+ referrer: referrer?.substring(0, URL_LENGTH),
+ };
- return rawQueryClickhouse(
- `
- insert into umami_dev.pageview (created_at, website_id, session_uuid, url, referrer)
- values (${getDateFormatClickhouse(new Date())}, $1, $2, $3, $4);`,
- params,
- );
+ await sendMessage(params, 'pageview');
}
diff --git a/queries/analytics/session/createSession.js b/queries/analytics/session/createSession.js
index 1af95fe6..8153b8f4 100644
--- a/queries/analytics/session/createSession.js
+++ b/queries/analytics/session/createSession.js
@@ -1,23 +1,18 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getDateFormatClickhouse,
- prisma,
- rawQueryClickhouse,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
-import { getSessionByUuid } from 'queries';
+import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db';
+import kafka from 'lib/kafka';
+import prisma from 'lib/prisma';
+import redis from 'lib/redis';
export async function createSession(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, data) {
- return runQuery(
- prisma.session.create({
+ return prisma.client.session
+ .create({
data: {
website_id,
...data,
@@ -25,31 +20,37 @@ async function relationalQuery(website_id, data) {
select: {
session_id: true,
},
- }),
- );
+ })
+ .then(async res => {
+ if (redis.client && res) {
+ await redis.client.set(`session:${res.session_uuid}`, 1);
+ }
+
+ return res;
+ });
}
async function clickhouseQuery(
website_id,
{ session_uuid, hostname, browser, os, screen, language, country, device },
) {
- const params = [
- session_uuid,
- website_id,
- hostname,
- browser,
- os,
- device,
- screen,
- language,
- country ? country : null,
- ];
+ const { getDateFormat, sendMessage } = kafka;
+ const params = {
+ session_uuid: session_uuid,
+ website_id: website_id,
+ created_at: getDateFormat(new Date()),
+ hostname: hostname,
+ browser: browser,
+ os: os,
+ device: device,
+ screen: screen,
+ language: language,
+ country: country ? country : null,
+ };
- await rawQueryClickhouse(
- `insert into umami_dev.session (created_at, session_uuid, website_id, hostname, browser, os, device, screen, language, country)
- values (${getDateFormatClickhouse(new Date())}, $1, $2, $3, $4, $5, $6, $7, $8, $9);`,
- params,
- );
+ await sendMessage(params, 'session');
- return getSessionByUuid(session_uuid);
+ if (redis.client) {
+ await redis.client.set(`session:${session_uuid}`, 1);
+ }
}
diff --git a/queries/analytics/session/getSessionByUuid.js b/queries/analytics/session/getSessionByUuid.js
index 2b9acc1e..6412ca8c 100644
--- a/queries/analytics/session/getSessionByUuid.js
+++ b/queries/analytics/session/getSessionByUuid.js
@@ -1,29 +1,37 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import { rawQueryClickhouse, findUnique, prisma, runAnalyticsQuery, runQuery } from 'lib/db';
+import clickhouse from 'lib/clickhouse';
+import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import redis from 'lib/redis';
export async function getSessionByUuid(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(session_uuid) {
- return runQuery(
- prisma.session.findUnique({
+ return prisma.client.session
+ .findUnique({
where: {
session_uuid,
},
- }),
- );
+ })
+ .then(async res => {
+ if (redis.client && res) {
+ await redis.client.set(`session:${res.session_uuid}`, 1);
+ }
+
+ return res;
+ });
}
async function clickhouseQuery(session_uuid) {
+ const { rawQuery, findFirst } = clickhouse;
const params = [session_uuid];
- return rawQueryClickhouse(
- `
- select
+ return rawQuery(
+ `select
session_uuid,
website_id,
created_at,
@@ -32,11 +40,18 @@ async function clickhouseQuery(session_uuid) {
os,
device,
screen,
- "language",
+ language,
country
from session
- where session_uuid = $1
- `,
+ where session_uuid = $1`,
params,
- ).then(data => findUnique(data));
+ )
+ .then(result => findFirst(result))
+ .then(async res => {
+ if (redis.client && res) {
+ await redis.client.set(`session:${res.session_uuid}`, 1);
+ }
+
+ return res;
+ });
}
diff --git a/queries/analytics/session/getSessionMetrics.js b/queries/analytics/session/getSessionMetrics.js
index 7da60bda..36eb7568 100644
--- a/queries/analytics/session/getSessionMetrics.js
+++ b/queries/analytics/session/getSessionMetrics.js
@@ -1,20 +1,16 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getBetweenDatesClickhouse,
- parseFilters,
- rawQuery,
- rawQueryClickhouse,
- runAnalyticsQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getSessionMetrics(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, start_at, end_at, field, filters = {}) {
+ const { parseFilters, rawQuery } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -24,8 +20,7 @@ async function relationalQuery(website_id, start_at, end_at, field, filters = {}
);
return rawQuery(
- `
- select ${field} x, count(*) y
+ `select ${field} x, count(*) y
from session as x
where x.session_id in (
select pageview.session_id
@@ -37,13 +32,13 @@ async function relationalQuery(website_id, start_at, end_at, field, filters = {}
${sessionQuery}
)
group by 1
- order by 2 desc
- `,
+ order by 2 desc`,
params,
);
}
async function clickhouseQuery(website_id, start_at, end_at, field, filters = {}) {
+ const { parseFilters, getBetweenDates, rawQuery } = clickhouse;
const params = [website_id];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -53,22 +48,20 @@ async function clickhouseQuery(website_id, start_at, end_at, field, filters = {}
'session_uuid',
);
- return rawQueryClickhouse(
- `
- select ${field} x, count(*) y
+ return rawQuery(
+ `select ${field} x, count(*) y
from session as x
where x.session_uuid in (
select pageview.session_uuid
from pageview
${joinSession}
where pageview.website_id=$1
- and ${getBetweenDatesClickhouse('pageview.created_at', start_at, end_at)}
+ and ${getBetweenDates('pageview.created_at', start_at, end_at)}
${pageviewQuery}
${sessionQuery}
)
group by x
- order by y desc
- `,
+ order by y desc`,
params,
);
}
diff --git a/queries/analytics/session/getSessions.js b/queries/analytics/session/getSessions.js
index bc48db1c..36095d0e 100644
--- a/queries/analytics/session/getSessions.js
+++ b/queries/analytics/session/getSessions.js
@@ -1,41 +1,38 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getDateFormatClickhouse,
- prisma,
- rawQueryClickhouse,
- runAnalyticsQuery,
- runQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, PRISMA, CLICKHOUSE } from 'lib/db';
export async function getSessions(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(websites, start_at) {
- return runQuery(
- prisma.session.findMany({
- where: {
- website: {
- website_id: {
- in: websites,
- },
- },
- created_at: {
- gte: start_at,
- },
+ return prisma.client.session.findMany({
+ where: {
+ ...(websites && websites.length > 0
+ ? {
+ website: {
+ website_id: {
+ in: websites,
+ },
+ },
+ }
+ : {}),
+ created_at: {
+ gte: start_at,
},
- }),
- );
+ },
+ });
}
async function clickhouseQuery(websites, start_at) {
- return rawQueryClickhouse(
- `
- select
- session_id,
+ const { rawQuery, getDateFormat } = clickhouse;
+
+ return rawQuery(
+ `select
session_uuid,
website_id,
created_at,
@@ -44,11 +41,10 @@ async function clickhouseQuery(websites, start_at) {
os,
device,
screen,
- "language",
+ language,
country
from session
- where website_id in (${websites.join[',']}
- and created_at >= ${getDateFormatClickhouse(start_at)})
- `,
+ where ${websites && websites.length > 0 ? `(website_id in (${websites.join[',']})` : '0 = 0'}
+ and created_at >= ${getDateFormat(start_at)}`,
);
}
diff --git a/queries/analytics/stats/getActiveVisitors.js b/queries/analytics/stats/getActiveVisitors.js
index aac99085..023c00a4 100644
--- a/queries/analytics/stats/getActiveVisitors.js
+++ b/queries/analytics/stats/getActiveVisitors.js
@@ -1,10 +1,11 @@
import { subMinutes } from 'date-fns';
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import { getDateFormatClickhouse, rawQuery, rawQueryClickhouse, runAnalyticsQuery } from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getActiveVisitors(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
@@ -13,27 +14,24 @@ async function relationalQuery(website_id) {
const date = subMinutes(new Date(), 5);
const params = [website_id, date];
- return rawQuery(
- `
- select count(distinct session_id) x
+ return prisma.rawQuery(
+ `select count(distinct session_id) x
from pageview
where website_id = $1
- and created_at >= $2
- `,
+ and created_at >= $2`,
params,
);
}
async function clickhouseQuery(website_id) {
+ const { rawQuery, getDateFormat } = clickhouse;
const params = [website_id];
- return rawQueryClickhouse(
- `
- select count(distinct session_uuid) x
+ return rawQuery(
+ `select count(distinct session_uuid) x
from pageview
where website_id = $1
- and created_at >= ${getDateFormatClickhouse(subMinutes(new Date(), 5))}
- `,
+ and created_at >= ${getDateFormat(subMinutes(new Date(), 5))}`,
params,
);
}
diff --git a/queries/analytics/stats/getWebsiteStats.js b/queries/analytics/stats/getWebsiteStats.js
index dc0380e0..5d280563 100644
--- a/queries/analytics/stats/getWebsiteStats.js
+++ b/queries/analytics/stats/getWebsiteStats.js
@@ -1,23 +1,16 @@
-import { CLICKHOUSE, RELATIONAL } from 'lib/constants';
-import {
- getDateQuery,
- getBetweenDatesClickhouse,
- getDateQueryClickhouse,
- getTimestampInterval,
- parseFilters,
- rawQuery,
- rawQueryClickhouse,
- runAnalyticsQuery,
-} from 'lib/db';
+import prisma from 'lib/prisma';
+import clickhouse from 'lib/clickhouse';
+import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
export async function getWebsiteStats(...args) {
- return runAnalyticsQuery({
- [RELATIONAL]: () => relationalQuery(...args),
+ return runQuery({
+ [PRISMA]: () => relationalQuery(...args),
[CLICKHOUSE]: () => clickhouseQuery(...args),
});
}
async function relationalQuery(website_id, start_at, end_at, filters = {}) {
+ const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
const params = [website_id, start_at, end_at];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -27,30 +20,29 @@ async function relationalQuery(website_id, start_at, end_at, filters = {}) {
);
return rawQuery(
- `
- select sum(t.c) as "pageviews",
+ `select sum(t.c) as "pageviews",
count(distinct t.session_id) as "uniques",
sum(case when t.c = 1 then 1 else 0 end) as "bounces",
sum(t.time) as "totaltime"
from (
- select pageview.session_id,
- ${getDateQuery('pageview.created_at', 'hour')},
- count(*) c,
- ${getTimestampInterval('pageview.created_at')} as "time"
- from pageview
- ${joinSession}
- where pageview.website_id=$1
- and pageview.created_at between $2 and $3
- ${pageviewQuery}
- ${sessionQuery}
- group by 1, 2
- ) t
- `,
+ select pageview.session_id,
+ ${getDateQuery('pageview.created_at', 'hour')},
+ count(*) c,
+ ${getTimestampInterval('pageview.created_at')} as "time"
+ from pageview
+ ${joinSession}
+ where pageview.website_id=$1
+ and pageview.created_at between $2 and $3
+ ${pageviewQuery}
+ ${sessionQuery}
+ group by 1, 2
+ ) t`,
params,
);
}
async function clickhouseQuery(website_id, start_at, end_at, filters = {}) {
+ const { rawQuery, getDateQuery, getBetweenDates, parseFilters } = clickhouse;
const params = [website_id];
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
'pageview',
@@ -60,28 +52,26 @@ async function clickhouseQuery(website_id, start_at, end_at, filters = {}) {
'session_uuid',
);
- return rawQueryClickhouse(
- `
- select
- sum(t.c) as "pageviews",
- count(distinct t.session_uuid) as "uniques",
- sum(if(t.c = 1, 1, 0)) as "bounces",
- sum(if(max_time < min_time + interval 1 hour, max_time-min_time, 0)) as "totaltime"
- from (
- select pageview.session_uuid,
- ${getDateQueryClickhouse('pageview.created_at', 'day')} time_series,
- count(*) c,
- min(created_at) min_time,
- max(created_at) max_time
- from pageview
- ${joinSession}
- where pageview.website_id = $1
- and ${getBetweenDatesClickhouse('pageview.created_at', start_at, end_at)}
- ${pageviewQuery}
- ${sessionQuery}
- group by pageview.session_uuid, time_series
- ) t;
- `,
+ return rawQuery(
+ `select
+ sum(t.c) as "pageviews",
+ count(distinct t.session_uuid) as "uniques",
+ sum(if(t.c = 1, 1, 0)) as "bounces",
+ sum(if(max_time < min_time + interval 1 hour, max_time-min_time, 0)) as "totaltime"
+ from (
+ select pageview.session_uuid,
+ ${getDateQuery('pageview.created_at', 'day')} time_series,
+ count(*) c,
+ min(created_at) min_time,
+ max(created_at) max_time
+ from pageview
+ ${joinSession}
+ where pageview.website_id = $1
+ and ${getBetweenDates('pageview.created_at', start_at, end_at)}
+ ${pageviewQuery}
+ ${sessionQuery}
+ group by pageview.session_uuid, time_series
+ ) t;`,
params,
);
}
diff --git a/scripts/change-password.js b/scripts/change-password.js
index 5e3de42f..a9b63c12 100644
--- a/scripts/change-password.js
+++ b/scripts/change-password.js
@@ -1,11 +1,11 @@
+/* eslint-disable no-console */
require('dotenv').config();
-const bcrypt = require('bcryptjs');
+const { hashPassword } = require('next-basics');
const chalk = require('chalk');
const prompts = require('prompts');
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
-const SALT_ROUNDS = 10;
const runQuery = async query => {
return query.catch(e => {
@@ -24,10 +24,6 @@ const updateAccountByUsername = (username, data) => {
);
};
-const hashPassword = password => {
- return bcrypt.hashSync(password, SALT_ROUNDS);
-};
-
const changePassword = async (username, newPassword) => {
const password = hashPassword(newPassword);
return updateAccountByUsername(username, { password });
diff --git a/scripts/check-db.js b/scripts/check-db.js
index 821e7f74..4de18a89 100644
--- a/scripts/check-db.js
+++ b/scripts/check-db.js
@@ -4,6 +4,11 @@ const chalk = require('chalk');
const spawn = require('cross-spawn');
const { execSync } = require('child_process');
+if (process.env.SKIP_DB_CHECK) {
+ console.log('Skipping database check.');
+ process.exit(0);
+}
+
const prisma = new PrismaClient();
function success(msg) {
diff --git a/scripts/copy-db-files.js b/scripts/copy-db-files.js
index a7897fca..3e902d45 100644
--- a/scripts/copy-db-files.js
+++ b/scripts/copy-db-files.js
@@ -3,10 +3,8 @@ const fse = require('fs-extra');
const path = require('path');
const del = require('del');
-function getDatabaseType() {
- const type =
- process.env.DATABASE_TYPE ||
- (process.env.DATABASE_URL && process.env.DATABASE_URL.split(':')[0]);
+function getDatabaseType(url = process.env.DATABASE_URL) {
+ const type = process.env.DATABASE_TYPE || (url && url.split(':')[0]);
if (type === 'postgres') {
return 'postgresql';
diff --git a/store/app.js b/store/app.js
index dc5f527d..f03eb57c 100644
--- a/store/app.js
+++ b/store/app.js
@@ -1,6 +1,6 @@
import create from 'zustand';
import { DEFAULT_LOCALE, DEFAULT_THEME, LOCALE_CONFIG, THEME_CONFIG } from 'lib/constants';
-import { getItem } from 'lib/web';
+import { getItem } from 'next-basics';
const initialState = {
locale: getItem(LOCALE_CONFIG) || DEFAULT_LOCALE,
diff --git a/store/dashboard.js b/store/dashboard.js
index 35f4f2ff..7c512228 100644
--- a/store/dashboard.js
+++ b/store/dashboard.js
@@ -1,6 +1,6 @@
import create from 'zustand';
import { DASHBOARD_CONFIG, DEFAULT_WEBSITE_LIMIT } from 'lib/constants';
-import { getItem, setItem } from 'lib/web';
+import { getItem, setItem } from 'next-basics';
export const initialState = {
showCharts: true,
diff --git a/store/version.js b/store/version.js
index ef8f3e48..cb5208fa 100644
--- a/store/version.js
+++ b/store/version.js
@@ -2,7 +2,7 @@ import create from 'zustand';
import produce from 'immer';
import semver from 'semver';
import { CURRENT_VERSION, VERSION_CHECK, UPDATES_URL } from 'lib/constants';
-import { getItem } from 'lib/web';
+import { getItem } from 'next-basics';
const initialState = {
current: CURRENT_VERSION,
diff --git a/tracker/index.js b/tracker/index.js
index 17ee467d..1eb54d63 100644
--- a/tracker/index.js
+++ b/tracker/index.js
@@ -1,6 +1,3 @@
-import { doNotTrack, hook } from '../lib/web';
-import { removeTrailingSlash } from '../lib/url';
-
(window => {
const {
screen: { width, height },
@@ -15,6 +12,41 @@ import { removeTrailingSlash } from '../lib/url';
if (!currentScript) return;
+ const assign = (a, b) => {
+ Object.keys(b).forEach(key => {
+ if (b[key] !== undefined) a[key] = b[key];
+ });
+ return a;
+ };
+
+ const hook = (_this, method, callback) => {
+ const orig = _this[method];
+
+ return (...args) => {
+ callback.apply(null, args);
+
+ return orig.apply(_this, args);
+ };
+ };
+
+ const doNotTrack = () => {
+ const { doNotTrack, navigator, external } = window;
+
+ const msTrackProtection = 'msTrackingProtectionEnabled';
+ const msTracking = () => {
+ return external && msTrackProtection in external && external[msTrackProtection]();
+ };
+
+ const dnt = doNotTrack || navigator.doNotTrack || navigator.msDoNotTrack || msTracking();
+
+ return dnt == '1' || dnt === 'yes';
+ };
+
+ const trackingDisabled = () =>
+ (localStorage && localStorage.getItem('umami.disabled')) ||
+ (dnt && doNotTrack()) ||
+ (domain && !domains.includes(hostname));
+
const _data = 'data-';
const _false = 'false';
const attr = currentScript.getAttribute.bind(currentScript);
@@ -25,21 +57,15 @@ import { removeTrailingSlash } from '../lib/url';
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 trackingDisabled = () =>
- (localStorage && localStorage.getItem('umami.disabled')) ||
- (dnt && doNotTrack()) ||
- (domain && !domains.includes(hostname));
-
const root = hostUrl
- ? removeTrailingSlash(hostUrl)
+ ? hostUrl.replace(/\/$/, '')
: currentScript.src.split('/').slice(0, -1).join('/');
const endpoint = `${root}/api/collect`;
const screen = `${width}x${height}`;
- const listeners = {};
+ const eventClass = /^umami--([a-z]+)--([\w]+[\w-]*)$/;
+ const eventSelect = "[class*='umami--']";
+
+ let listeners = {};
let currentUrl = `${pathname}${search}`;
let currentRef = document.referrer;
let cache;
@@ -54,13 +80,6 @@ import { removeTrailingSlash } from '../lib/url';
url: currentUrl,
});
- const assign = (a, b) => {
- Object.keys(b).forEach(key => {
- if (b[key] !== undefined) a[key] = b[key];
- });
- return a;
- };
-
const collect = (type, payload) => {
if (trackingDisabled()) return;
diff --git a/yarn.lock b/yarn.lock
index 9776bd32..b14f94f3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,11 +3,12 @@
"@ampproject/remapping@^2.1.0":
- version "2.1.2"
- resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz"
- integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.0"
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@babel/code-frame@7.12.11":
version "7.12.11"
@@ -16,26 +17,47 @@
dependencies:
"@babel/highlight" "^7.10.4"
-"@babel/code-frame@^7.0.0":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7":
+"@babel/code-frame@^7.10.4":
version "7.16.7"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz"
integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
dependencies:
"@babel/highlight" "^7.16.7"
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0":
- version "7.17.0"
- resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz"
- integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483"
+ integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==
-"@babel/core@^7.15.5", "@babel/core@^7.9.0":
+"@babel/core@^7.18.5":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac"
+ integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==
+ dependencies:
+ "@ampproject/remapping" "^2.1.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.18.13"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-module-transforms" "^7.18.9"
+ "@babel/helpers" "^7.18.9"
+ "@babel/parser" "^7.18.13"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.18.13"
+ "@babel/types" "^7.18.13"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.1"
+ semver "^6.3.0"
+
+"@babel/core@^7.9.0":
version "7.17.5"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz"
integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==
@@ -56,221 +78,215 @@
json5 "^2.1.2"
semver "^6.3.0"
-"@babel/generator@^7.17.3":
- version "7.17.3"
- resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz"
- integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==
+"@babel/generator@^7.17.3", "@babel/generator@^7.18.13":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212"
+ integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==
dependencies:
- "@babel/types" "^7.17.0"
+ "@babel/types" "^7.18.13"
+ "@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
- source-map "^0.5.0"
-"@babel/helper-annotate-as-pure@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz"
- integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+"@babel/helper-annotate-as-pure@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
+ integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz"
- integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
+ integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/helper-explode-assignable-expression" "^7.18.6"
+ "@babel/types" "^7.18.9"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz"
- integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf"
+ integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==
dependencies:
- "@babel/compat-data" "^7.16.4"
- "@babel/helper-validator-option" "^7.16.7"
- browserslist "^4.17.5"
+ "@babel/compat-data" "^7.18.8"
+ "@babel/helper-validator-option" "^7.18.6"
+ browserslist "^4.20.2"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6":
- version "7.17.6"
- resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz"
- integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz#63e771187bd06d234f95fdf8bd5f8b6429de6298"
+ integrity sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-member-expression-to-functions" "^7.16.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
-"@babel/helper-create-regexp-features-plugin@^7.16.7":
- version "7.17.0"
- resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz"
- integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+"@babel/helper-create-regexp-features-plugin@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c"
+ integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- regexpu-core "^5.0.1"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ regexpu-core "^5.1.0"
-"@babel/helper-define-polyfill-provider@^0.3.1":
- version "0.3.1"
- resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz"
- integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
+"@babel/helper-define-polyfill-provider@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073"
+ integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==
dependencies:
- "@babel/helper-compilation-targets" "^7.13.0"
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/traverse" "^7.13.0"
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
semver "^6.1.2"
-"@babel/helper-environment-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz"
- integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
- dependencies:
- "@babel/types" "^7.16.7"
+"@babel/helper-environment-visitor@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
+ integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
-"@babel/helper-explode-assignable-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz"
- integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-function-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz"
- integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
- dependencies:
- "@babel/helper-get-function-arity" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/types" "^7.16.7"
-
-"@babel/helper-get-function-arity@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz"
- integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-hoist-variables@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz"
- integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-member-expression-to-functions@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz"
- integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
+"@babel/helper-explode-assignable-expression@^7.18.6":
version "7.18.6"
- resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
+ integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
+ integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
+ dependencies:
+ "@babel/template" "^7.18.6"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-hoist-variables@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
+ integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-member-expression-to-functions@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815"
+ integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.16.7":
- version "7.17.6"
- resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz"
- integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==
+"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712"
+ integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==
dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-simple-access" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/helper-validator-identifier" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.3"
- "@babel/types" "^7.17.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.18.6"
+ "@babel/template" "^7.18.6"
+ "@babel/traverse" "^7.18.9"
+ "@babel/types" "^7.18.9"
-"@babel/helper-optimise-call-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz"
- integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
- resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz"
- integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==
-
-"@babel/helper-remap-async-to-generator@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz"
- integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
+ integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-wrap-function" "^7.16.8"
- "@babel/types" "^7.16.8"
+ "@babel/types" "^7.18.6"
-"@babel/helper-replace-supers@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz"
- integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
- dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-member-expression-to-functions" "^7.16.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/traverse" "^7.16.7"
- "@babel/types" "^7.16.7"
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
+ integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
-"@babel/helper-simple-access@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz"
- integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
+"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
+ integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
-"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
- version "7.16.0"
- resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz"
- integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
+"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6"
+ integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==
dependencies:
- "@babel/types" "^7.16.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/traverse" "^7.18.9"
+ "@babel/types" "^7.18.9"
-"@babel/helper-split-export-declaration@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz"
- integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+"@babel/helper-simple-access@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
+ integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818"
+ integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-split-export-declaration@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
+ integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-string-parser@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
+ integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6":
version "7.18.6"
- resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
-"@babel/helper-validator-option@^7.16.7":
+"@babel/helper-validator-option@^7.18.6":
version "7.18.6"
- resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
-"@babel/helper-wrap-function@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz"
- integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
+"@babel/helper-wrap-function@^7.18.9":
+ version "7.18.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb"
+ integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==
dependencies:
- "@babel/helper-function-name" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.16.8"
- "@babel/types" "^7.16.8"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.18.11"
+ "@babel/types" "^7.18.10"
-"@babel/helpers@^7.17.2":
- version "7.17.2"
- resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz"
- integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
+"@babel/helpers@^7.17.2", "@babel/helpers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9"
+ integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==
dependencies:
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.0"
- "@babel/types" "^7.17.0"
+ "@babel/template" "^7.18.6"
+ "@babel/traverse" "^7.18.9"
+ "@babel/types" "^7.18.9"
"@babel/highlight@^7.10.4":
version "7.16.10"
@@ -290,7 +306,7 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3":
+"@babel/parser@^7.1.0":
version "7.17.3"
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz"
integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==
@@ -300,592 +316,608 @@
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz"
integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz"
- integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+"@babel/parser@^7.17.3", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4"
+ integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz"
- integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
+ version "7.18.6"
+ 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.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
+ integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
- "@babel/plugin-proposal-optional-chaining" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-async-generator-functions@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz"
- integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50"
+ integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+
+"@babel/plugin-proposal-async-generator-functions@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952"
+ integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz"
- integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
+"@babel/plugin-proposal-class-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
+ integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-class-static-block@^7.16.7":
- version "7.17.6"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz"
- integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==
+"@babel/plugin-proposal-class-static-block@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020"
+ integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.17.6"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-dynamic-import@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz"
- integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
+"@babel/plugin-proposal-dynamic-import@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
+ integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-proposal-export-namespace-from@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz"
- integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-proposal-json-strings@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz"
- integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==
+"@babel/plugin-proposal-json-strings@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
+ integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz"
- integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==
+"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23"
+ integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz"
- integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
+ integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-proposal-numeric-separator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz"
- integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
+"@babel/plugin-proposal-numeric-separator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
+ integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-object-rest-spread@^7.16.7":
- version "7.17.3"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz"
- integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==
+"@babel/plugin-proposal-object-rest-spread@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7"
+ integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==
dependencies:
- "@babel/compat-data" "^7.17.0"
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/compat-data" "^7.18.8"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.16.7"
+ "@babel/plugin-transform-parameters" "^7.18.8"
-"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz"
- integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
+"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
+ integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-proposal-optional-chaining@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz"
- integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
+"@babel/plugin-proposal-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
+ integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-proposal-private-methods@^7.16.11":
- version "7.16.11"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz"
- integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==
+"@babel/plugin-proposal-private-methods@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
+ integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.16.10"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-private-property-in-object@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz"
- integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==
+"@babel/plugin-proposal-private-property-in-object@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503"
+ integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-create-class-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz"
- integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==
+"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
+ integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-class-properties@^7.12.13":
version "7.12.13"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
dependencies:
"@babel/helper-plugin-utils" "^7.12.13"
"@babel/plugin-syntax-class-static-block@^7.14.5":
version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
+"@babel/plugin-syntax-import-assertions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4"
+ integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
"@babel/plugin-syntax-json-strings@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz"
- integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
+"@babel/plugin-syntax-jsx@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
+ integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-numeric-separator@^7.10.4":
version "7.10.4"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-optional-chaining@^7.8.3":
version "7.8.3"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-private-property-in-object@^7.14.5":
version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-top-level-await@^7.14.5":
version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-typescript@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz"
- integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==
+"@babel/plugin-syntax-typescript@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285"
+ integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-arrow-functions@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz"
- integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
+"@babel/plugin-transform-arrow-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe"
+ integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-async-to-generator@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz"
- integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==
+"@babel/plugin-transform-async-to-generator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615"
+ integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==
dependencies:
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-remap-async-to-generator" "^7.18.6"
-"@babel/plugin-transform-block-scoped-functions@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz"
- integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
+"@babel/plugin-transform-block-scoped-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
+ integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-block-scoping@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz"
- integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
+"@babel/plugin-transform-block-scoping@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d"
+ integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-classes@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz"
- integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
+"@babel/plugin-transform-classes@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da"
+ integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz"
- integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
+"@babel/plugin-transform-computed-properties@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e"
+ integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-destructuring@^7.16.7":
- version "7.17.3"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz"
- integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==
+"@babel/plugin-transform-destructuring@^7.18.9":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5"
+ integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz"
- integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==
+"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
+ integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-duplicate-keys@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz"
- integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==
+"@babel/plugin-transform-duplicate-keys@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
+ integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-exponentiation-operator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz"
- integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
+"@babel/plugin-transform-exponentiation-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
+ integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-for-of@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz"
- integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
+"@babel/plugin-transform-for-of@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
+ integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-function-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz"
- integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+"@babel/plugin-transform-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
+ integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
dependencies:
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz"
- integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
+"@babel/plugin-transform-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
+ integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-member-expression-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz"
- integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+"@babel/plugin-transform-member-expression-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
+ integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-modules-amd@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz"
- integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==
+"@babel/plugin-transform-modules-amd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21"
+ integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==
dependencies:
- "@babel/helper-module-transforms" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz"
- integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+"@babel/plugin-transform-modules-commonjs@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
+ integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
dependencies:
- "@babel/helper-module-transforms" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-simple-access" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-simple-access" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz"
- integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==
+"@babel/plugin-transform-modules-systemjs@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06"
+ integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==
dependencies:
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-module-transforms" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-module-transforms" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-validator-identifier" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-umd@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz"
- integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==
+"@babel/plugin-transform-modules-umd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
+ integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
dependencies:
- "@babel/helper-module-transforms" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz"
- integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d"
+ integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-new-target@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz"
- integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==
+"@babel/plugin-transform-new-target@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
+ integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-object-super@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz"
- integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
+"@babel/plugin-transform-object-super@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
+ integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.6"
-"@babel/plugin-transform-parameters@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz"
- integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
+"@babel/plugin-transform-parameters@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a"
+ integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-property-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz"
- integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
+"@babel/plugin-transform-property-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
+ integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-constant-elements@^7.14.5":
- version "7.17.6"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz"
- integrity sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==
+"@babel/plugin-transform-react-constant-elements@^7.17.12":
+ version "7.18.12"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443"
+ integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-react-display-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz"
- integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
+"@babel/plugin-transform-react-display-name@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
+ integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-jsx-development@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz"
- integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==
+"@babel/plugin-transform-react-jsx-development@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5"
+ integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==
dependencies:
- "@babel/plugin-transform-react-jsx" "^7.16.7"
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
-"@babel/plugin-transform-react-jsx@^7.16.7":
- version "7.17.3"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz"
- integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==
+"@babel/plugin-transform-react-jsx@^7.18.6":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1"
+ integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/plugin-syntax-jsx" "^7.16.7"
- "@babel/types" "^7.17.0"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.18.10"
-"@babel/plugin-transform-react-pure-annotations@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz"
- integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==
+"@babel/plugin-transform-react-pure-annotations@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844"
+ integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-regenerator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz"
- integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
+"@babel/plugin-transform-regenerator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73"
+ integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==
dependencies:
- regenerator-transform "^0.14.2"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ regenerator-transform "^0.15.0"
-"@babel/plugin-transform-reserved-words@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz"
- integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==
+"@babel/plugin-transform-reserved-words@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
+ integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-shorthand-properties@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz"
- integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
+"@babel/plugin-transform-shorthand-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
+ integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-spread@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz"
- integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
+"@babel/plugin-transform-spread@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664"
+ integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
-"@babel/plugin-transform-sticky-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz"
- integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
+"@babel/plugin-transform-sticky-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
+ integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-template-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz"
- integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
+"@babel/plugin-transform-template-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
+ integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-typeof-symbol@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz"
- integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==
+"@babel/plugin-transform-typeof-symbol@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
+ integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-typescript@^7.16.7":
- version "7.16.8"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz"
- integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==
+"@babel/plugin-transform-typescript@^7.18.6":
+ version "7.18.12"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz#712e9a71b9e00fde9f8c0238e0cceee86ab2f8fd"
+ integrity sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/plugin-syntax-typescript" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-typescript" "^7.18.6"
-"@babel/plugin-transform-unicode-escapes@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz"
- integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==
+"@babel/plugin-transform-unicode-escapes@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
+ integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-unicode-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz"
- integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
+"@babel/plugin-transform-unicode-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
+ integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/preset-env@^7.15.6":
- version "7.16.11"
- resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz"
- integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==
+"@babel/preset-env@^7.18.2":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4"
+ integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==
dependencies:
- "@babel/compat-data" "^7.16.8"
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7"
- "@babel/plugin-proposal-async-generator-functions" "^7.16.8"
- "@babel/plugin-proposal-class-properties" "^7.16.7"
- "@babel/plugin-proposal-class-static-block" "^7.16.7"
- "@babel/plugin-proposal-dynamic-import" "^7.16.7"
- "@babel/plugin-proposal-export-namespace-from" "^7.16.7"
- "@babel/plugin-proposal-json-strings" "^7.16.7"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7"
- "@babel/plugin-proposal-numeric-separator" "^7.16.7"
- "@babel/plugin-proposal-object-rest-spread" "^7.16.7"
- "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
- "@babel/plugin-proposal-optional-chaining" "^7.16.7"
- "@babel/plugin-proposal-private-methods" "^7.16.11"
- "@babel/plugin-proposal-private-property-in-object" "^7.16.7"
- "@babel/plugin-proposal-unicode-property-regex" "^7.16.7"
+ "@babel/compat-data" "^7.18.8"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-async-generator-functions" "^7.18.10"
+ "@babel/plugin-proposal-class-properties" "^7.18.6"
+ "@babel/plugin-proposal-class-static-block" "^7.18.6"
+ "@babel/plugin-proposal-dynamic-import" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-proposal-json-strings" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
+ "@babel/plugin-proposal-numeric-separator" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.18.9"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-import-assertions" "^7.18.6"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
@@ -895,49 +927,49 @@
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
- "@babel/plugin-transform-arrow-functions" "^7.16.7"
- "@babel/plugin-transform-async-to-generator" "^7.16.8"
- "@babel/plugin-transform-block-scoped-functions" "^7.16.7"
- "@babel/plugin-transform-block-scoping" "^7.16.7"
- "@babel/plugin-transform-classes" "^7.16.7"
- "@babel/plugin-transform-computed-properties" "^7.16.7"
- "@babel/plugin-transform-destructuring" "^7.16.7"
- "@babel/plugin-transform-dotall-regex" "^7.16.7"
- "@babel/plugin-transform-duplicate-keys" "^7.16.7"
- "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
- "@babel/plugin-transform-for-of" "^7.16.7"
- "@babel/plugin-transform-function-name" "^7.16.7"
- "@babel/plugin-transform-literals" "^7.16.7"
- "@babel/plugin-transform-member-expression-literals" "^7.16.7"
- "@babel/plugin-transform-modules-amd" "^7.16.7"
- "@babel/plugin-transform-modules-commonjs" "^7.16.8"
- "@babel/plugin-transform-modules-systemjs" "^7.16.7"
- "@babel/plugin-transform-modules-umd" "^7.16.7"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8"
- "@babel/plugin-transform-new-target" "^7.16.7"
- "@babel/plugin-transform-object-super" "^7.16.7"
- "@babel/plugin-transform-parameters" "^7.16.7"
- "@babel/plugin-transform-property-literals" "^7.16.7"
- "@babel/plugin-transform-regenerator" "^7.16.7"
- "@babel/plugin-transform-reserved-words" "^7.16.7"
- "@babel/plugin-transform-shorthand-properties" "^7.16.7"
- "@babel/plugin-transform-spread" "^7.16.7"
- "@babel/plugin-transform-sticky-regex" "^7.16.7"
- "@babel/plugin-transform-template-literals" "^7.16.7"
- "@babel/plugin-transform-typeof-symbol" "^7.16.7"
- "@babel/plugin-transform-unicode-escapes" "^7.16.7"
- "@babel/plugin-transform-unicode-regex" "^7.16.7"
+ "@babel/plugin-transform-arrow-functions" "^7.18.6"
+ "@babel/plugin-transform-async-to-generator" "^7.18.6"
+ "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.18.9"
+ "@babel/plugin-transform-classes" "^7.18.9"
+ "@babel/plugin-transform-computed-properties" "^7.18.9"
+ "@babel/plugin-transform-destructuring" "^7.18.9"
+ "@babel/plugin-transform-dotall-regex" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.18.8"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.18.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.18.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.18.9"
+ "@babel/plugin-transform-modules-umd" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6"
+ "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-object-super" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.18.8"
+ "@babel/plugin-transform-property-literals" "^7.18.6"
+ "@babel/plugin-transform-regenerator" "^7.18.6"
+ "@babel/plugin-transform-reserved-words" "^7.18.6"
+ "@babel/plugin-transform-shorthand-properties" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.18.9"
+ "@babel/plugin-transform-sticky-regex" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.18.10"
+ "@babel/plugin-transform-unicode-regex" "^7.18.6"
"@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.16.8"
- babel-plugin-polyfill-corejs2 "^0.3.0"
- babel-plugin-polyfill-corejs3 "^0.5.0"
- babel-plugin-polyfill-regenerator "^0.3.0"
- core-js-compat "^3.20.2"
+ "@babel/types" "^7.18.10"
+ babel-plugin-polyfill-corejs2 "^0.3.2"
+ babel-plugin-polyfill-corejs3 "^0.5.3"
+ babel-plugin-polyfill-regenerator "^0.4.0"
+ core-js-compat "^3.22.1"
semver "^6.3.0"
"@babel/preset-modules@^0.1.5":
version "0.1.5"
- resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -946,89 +978,68 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/preset-react@^7.14.5":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz"
- integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==
+"@babel/preset-react@^7.17.12":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d"
+ integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-transform-react-display-name" "^7.16.7"
- "@babel/plugin-transform-react-jsx" "^7.16.7"
- "@babel/plugin-transform-react-jsx-development" "^7.16.7"
- "@babel/plugin-transform-react-pure-annotations" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-react-display-name" "^7.18.6"
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
+ "@babel/plugin-transform-react-jsx-development" "^7.18.6"
+ "@babel/plugin-transform-react-pure-annotations" "^7.18.6"
-"@babel/preset-typescript@^7.15.0":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz"
- integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==
+"@babel/preset-typescript@^7.17.12":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399"
+ integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-transform-typescript" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-typescript" "^7.18.6"
"@babel/runtime-corejs3@^7.10.2":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.6.tgz#6f02c5536911f4b445946a2179554b95c8838635"
- integrity sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae"
+ integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==
dependencies:
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.0.0":
- version "7.18.3"
- resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz"
- integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
- dependencies:
- regenerator-runtime "^0.13.4"
-
-"@babel/runtime@^7.10.2", "@babel/runtime@^7.18.3":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580"
- integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==
- dependencies:
- regenerator-runtime "^0.13.4"
-
-"@babel/runtime@^7.15.4", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz"
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.8.4":
- version "7.17.2"
- resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz"
- integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+"@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
+ integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
dependencies:
- regenerator-runtime "^0.13.4"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.18.10"
+ "@babel/types" "^7.18.10"
-"@babel/template@^7.16.7":
- version "7.16.7"
- resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz"
- integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+"@babel/traverse@^7.17.3", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68"
+ integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==
dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/parser" "^7.16.7"
- "@babel/types" "^7.16.7"
-
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3":
- version "7.17.3"
- resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz"
- integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.3"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.17.3"
- "@babel/types" "^7.17.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.18.13"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.18.13"
+ "@babel/types" "^7.18.13"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.6", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.9.5":
+"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.9.5":
version "7.18.7"
resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz"
integrity sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==
@@ -1036,6 +1047,15 @@
"@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0"
+"@babel/types@^7.17.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a"
+ integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==
+ dependencies:
+ "@babel/helper-string-parser" "^7.18.10"
+ "@babel/helper-validator-identifier" "^7.18.6"
+ to-fast-properties "^2.0.0"
+
"@csstools/postcss-color-function@^1.0.3":
version "1.1.0"
resolved "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz"
@@ -1101,7 +1121,7 @@
resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.0.tgz"
integrity sha512-rZ6vufeY/UjAgtyiJ4WvfF6XP6HizIyOfbZOg0RnecIwjrvH8Am3nN1BpKnnPZunYAkUcPPXDhwbxOtGop8cfQ==
-"@csstools/selector-specificity@^2.0.1":
+"@csstools/selector-specificity@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36"
integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==
@@ -1274,7 +1294,20 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
-"@jridgewell/gen-mapping@^0.3.0":
+"@ioredis/commands@^1.1.1":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11"
+ integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==
+
+"@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
@@ -1288,14 +1321,14 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-"@jridgewell/set-array@^1.0.1":
+"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
"@jridgewell/source-map@^0.3.2":
version "0.3.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb"
+ resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz"
integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==
dependencies:
"@jridgewell/gen-mapping" "^0.3.0"
@@ -1306,98 +1339,90 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-"@jridgewell/trace-mapping@^0.3.0":
- version "0.3.4"
- resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz"
- integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
"@jridgewell/trace-mapping@^0.3.9":
version "0.3.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed"
+ resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz"
integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
-"@next/env@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.4.tgz#5ba9bed9970be4113773233148b4539691bfc4fe"
- integrity sha512-/gApFXWk5CCLFQJL5IYJXxPQuG5tz5nPX4l27A9Zm/+wJxiwFrRSP54AopDxIv4JRp/rGwcgk/lZS/0Clw8jYA==
+"@next/env@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.5.tgz#d908c57b35262b94db3e431e869b72ac3e1ad3e3"
+ integrity sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw==
-"@next/eslint-plugin-next@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.4.tgz#b7496cf11050577cfa815612c541195c1b4871eb"
- integrity sha512-ChDkUIkJeYWKRx+FdF+EhUgvKtK1wF+Xew4Os7ef3iAjMch5GGBiezw2zGXTa/C0E6potz4j11EpX89mngffug==
+"@next/eslint-plugin-next@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.5.tgz#4f3acccd2ed4f9300fbf9fd480cc8a0b261889a8"
+ integrity sha512-VBjVbmqEzGiOTBq4+wpeVXt/KgknnGB6ahvC/AxiIGnN93/RCSyXhFRI4uSfftM2Ba3w7ZO7076bfKasZsA0fw==
dependencies:
glob "7.1.7"
-"@next/swc-android-arm-eabi@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.4.tgz#5c7f508f93baec810c96bf60128b7c1f2109bee2"
- integrity sha512-P4YSFNpmXXSnn3P1qsOAqz+MX3On9fHrlc8ovb/CFJJoU+YLCR53iCEwfw39e0IZEgDA7ttgr108plF8mxaX0g==
+"@next/swc-android-arm-eabi@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz#903a5479ab4c2705d9c08d080907475f7bacf94d"
+ integrity sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA==
-"@next/swc-android-arm64@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.4.tgz#f86411e0513419f027d16b2d4d823a3ca631a634"
- integrity sha512-4o2n14E18O+8xHlf6dgJsWPXN9gmSmfIe2Z0EqKDIPBBkFt/2CyrH0+vwHnL2l7xkDHhOGfZYcYIWVUR5aNu0A==
+"@next/swc-android-arm64@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz#2f9a98ec4166c7860510963b31bda1f57a77c792"
+ integrity sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg==
-"@next/swc-darwin-arm64@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.4.tgz#23db172f02f5cf0ceca5e0934cfde21f30cc7461"
- integrity sha512-DcUO6MGBL9E3jj5o86MUnTOy4WawIJJhyCcFYO4f51sbl7+uPIYIx40eo98A6NwJEXazCqq1hLeqOaNTAIvDiQ==
+"@next/swc-darwin-arm64@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz#31b1c3c659d54be546120c488a1e1bad21c24a1d"
+ integrity sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg==
-"@next/swc-darwin-x64@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.4.tgz#820125d2a4d35cd9c807156a403a447360b5923f"
- integrity sha512-IUlFMqeLjdIzDorrGC2Dt+2Ae3DbKQbRzCzmDq4/CP1+jJGeDXo/2AHnlE+WYnwQAC4KtAz6pbVnd3KstZWsVA==
+"@next/swc-darwin-x64@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz#2e44dd82b2b7fef88238d1bc4d3bead5884cedfd"
+ integrity sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A==
-"@next/swc-freebsd-x64@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.4.tgz#81ccd262c7ea3f7ed2de136c3402fc28cd103ce8"
- integrity sha512-475vwyWcjnyDVDWLgAATP0HI8W1rwByc+uXk1B6KkAVFhkoDgH387LW0uNqxavK+VxCzj3avQXX/58XDvxtSlg==
+"@next/swc-freebsd-x64@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz#e24e75d8c2581bfebc75e4f08f6ddbd116ce9dbd"
+ integrity sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw==
-"@next/swc-linux-arm-gnueabihf@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.4.tgz#5b543e461696adcb60c64b56fc81eaa9e3cfcdd8"
- integrity sha512-qZW+L3iG3XSGtlOPmD5RRWXyk6ZNdscLV0BQjuDvP+exTg+uixqHXOHz0/GVATIJEBQOF0Kew7jAXVXEP+iRTQ==
+"@next/swc-linux-arm-gnueabihf@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz#46d8c514d834d2b5f67086013f0bd5e3081e10b9"
+ integrity sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg==
-"@next/swc-linux-arm64-gnu@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.4.tgz#f83b824d112494db41df69e2c456950a57deacba"
- integrity sha512-fEPRjItWYaKyyG9N+2HIA59OBHIhk7WC+Rh+LwXsh0pQe870Ykpek3KQs0umjsrEGe57NyMomq3f80/N8taDvA==
+"@next/swc-linux-arm64-gnu@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz#91f725ac217d3a1f4f9f53b553615ba582fd3d9f"
+ integrity sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ==
-"@next/swc-linux-arm64-musl@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.4.tgz#a7e575970fcd6166c7b506fd25121927c13349ee"
- integrity sha512-rnCTzXII0EBCcFn9P5s/Dho2kPUMSX/bP0iOAj8wEI/IxUEfEElbin89zJoNW30cycHu19xY8YP4K2+hzciPzQ==
+"@next/swc-linux-arm64-musl@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz#e627e8c867920995810250303cd9b8e963598383"
+ integrity sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg==
-"@next/swc-linux-x64-gnu@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.4.tgz#4dd2ad1c72c160430199265e74b6d7037f2be4f5"
- integrity sha512-PhXX6NSuIuhHInxPY2VkG2Bl7VllsD3Cjx+pQcS1wTym7Zt7UoLvn05PkRrkiyIkvR+UXnqPUM3TYiSbnemXEw==
+"@next/swc-linux-x64-gnu@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz#83a5e224fbc4d119ef2e0f29d0d79c40cc43887e"
+ integrity sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw==
-"@next/swc-linux-x64-musl@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.4.tgz#15415b1e6b92ca19453c4c6113496685167b05d4"
- integrity sha512-GmC/QROiUZpFirHRfPQqMyCXZ+5+ndbBZrMvL74HtQB/CKXB8K1VM+rvy9Gp/5OaU8Rxp48IcX79NOfI2LiXlA==
+"@next/swc-linux-x64-musl@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz#be700d48471baac1ec2e9539396625584a317e95"
+ integrity sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g==
-"@next/swc-win32-arm64-msvc@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.4.tgz#48344aded1702e321bef0fdefc3fb9f763c2ba25"
- integrity sha512-9XKoCXbNZuaMRPtcKQz3+hgVpkMosaLlcxHFXT8/j4w61k7/qvEbrkMDS9WHNrD/xVcLycwhPRgXcns2K1BdBQ==
+"@next/swc-win32-arm64-msvc@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz#a93e958133ad3310373fda33a79aa10af2a0aa97"
+ integrity sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw==
-"@next/swc-win32-ia32-msvc@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.4.tgz#e040fbf292205716c2c1d69d51c1c98fa59825ff"
- integrity sha512-hEyRieZKH9iw4AzvXaQ+Fyb98k0G/o9QcRGxA1/O/O/elf1+Qvuwb15phT8GbVtIeNziy66XTPOhKKfdr8KyUg==
+"@next/swc-win32-ia32-msvc@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz#4f5f7ba0a98ff89a883625d4af0125baed8b2e19"
+ integrity sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw==
-"@next/swc-win32-x64-msvc@12.2.4":
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.4.tgz#0134c4cd5df39033347614ce5fc26af485ac9048"
- integrity sha512-5Pl1tdMJWLy4rvzU1ecx0nHWgDPqoYuvYoXE/5X0Clu9si/yOuBIj573F2kOTY7mu0LX2wgCJVSnyK0abHBxIw==
+"@next/swc-win32-x64-msvc@12.2.5":
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz#20fed129b04a0d3f632c6d0de135345bb623b1e4"
+ integrity sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -1420,113 +1445,108 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@panva/asn1.js@^1.0.0":
- version "1.0.0"
- resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz"
- integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==
-
-"@prisma/client@4.1.1":
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.1.1.tgz#dcb1118397deb8247fbe39a1f3eee5606648adf8"
- integrity sha512-2pXuIUYxHv5H9o6QTa1VIsl4yMgsAjKQOitlo8WVTB+vo73rmMJITBPavdGUZSWUc7adMkFzEV3y5rVTUQr77Q==
+"@prisma/client@4.2.1":
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.2.1.tgz#b384587f6066070381ea4c90228a14697a0c271b"
+ integrity sha512-PZBkY60+k5oix+e6IUfl3ub8TbRLNsPLdfWrdy2eh80WcHTaT+/UfvXf/B7gXedH7FRtbPFHZXk1hZenJiJZFQ==
dependencies:
- "@prisma/engines-version" "4.1.0-48.8d8414deb360336e4698a65aa45a1fbaf1ce13d8"
+ "@prisma/engines-version" "4.2.0-33.2920a97877e12e055c1333079b8d19cee7f33826"
-"@prisma/engines-version@4.1.0-48.8d8414deb360336e4698a65aa45a1fbaf1ce13d8":
- version "4.1.0-48.8d8414deb360336e4698a65aa45a1fbaf1ce13d8"
- resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.1.0-48.8d8414deb360336e4698a65aa45a1fbaf1ce13d8.tgz#ce00e6377126e491a8b1e0e2039c97e2924bd6d9"
- integrity sha512-cRRJwpHFGFJZvtHbY3GZjMffNBEjjZk68ztn+S2hDgPCGB4H66IK26roK94GJxBodSehwRJ0wGyebC2GoIH1JQ==
+"@prisma/engines-version@4.2.0-33.2920a97877e12e055c1333079b8d19cee7f33826":
+ version "4.2.0-33.2920a97877e12e055c1333079b8d19cee7f33826"
+ resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.2.0-33.2920a97877e12e055c1333079b8d19cee7f33826.tgz#63917e579b9f15460f102eaf08a4411a7e0666e7"
+ integrity sha512-tktkqdiwqE4QhmE088boPt+FwPj1Jub/zk+5F6sEfcRHzO5yz9jyMD5HFVtiwxZPLx/8Xg9ElnuTi8E5lWVQFQ==
-"@prisma/engines@4.1.1":
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.1.1.tgz#a6a75870618bbd19ff734c51af7dbe9f362c3265"
- integrity sha512-DCw8L/SS0IXqmj5IW/fMxOXiifnsfjBzDfRhf0j3NFWqvMCh9OtfjmXQZxVgI2mwvJLc/5jzXhkiWT39qS09dA==
+"@prisma/engines@4.2.1":
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.2.1.tgz#60c7d0acc1c0c5b70ece712e2cbe13f46a345d6e"
+ integrity sha512-0KqBwREUOjBiHwITsQzw2DWfLHjntvbqzGRawj4sBMnIiL5CXwyDUKeHOwXzKMtNr1rEjxEsypM14g0CzLRK3g==
-"@react-spring/animated@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.5.0.tgz#bedc9301ec81a29331327aa25e37125a94080f48"
- integrity sha512-FgotFIRQsgxFTgNZhsqi19GUO8isFAeUF/Ica6TeBkR87LQelHGWOg+wW5S3kaX9pzUgC4LOfzj0fRoMFaQKmA==
+"@react-spring/animated@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.5.2.tgz#42785b4f369d9715e9ee32c04b78483e7bb85489"
+ integrity sha512-oRlX+MmYLbK8IuUZR7SQUnRjXxJ4PMIZeBkBd1SUWVgVJAHMTfJzPltzm+I6p59qX+qLlklYHfnWaonQKDqLuQ==
dependencies:
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/core@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.5.0.tgz#0f3ba069237ce08752e319aac71c621adc37500b"
- integrity sha512-/5uopqj3NztZ8g2tD7jhtpSlUFSCr+WbLs0sb6ylwjuOJB050LCpYTJ8iurPf/wuhkYd7Q2xLK0Kr5PO0v53eQ==
+"@react-spring/core@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.5.2.tgz#c8450783ce87a82d3f9ab21e2650e42922398ff7"
+ integrity sha512-UMRtFH6EfebMp/NMDGCUY5+hZFXsg9iT9hzt/iPzJSz2WMXKBjLoFZHJXcmiVOrIhzHmg1O0pFECn1Wp6pZ5Gw==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/rafz" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/rafz" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/konva@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.5.0.tgz#7d794794379abcab8a0c2932cf04f395958f362c"
- integrity sha512-b2J/DnnzgQcLNo5y/idXGAUbVKCC6BUhtNjRhna1+mNsrjuBrUxJ/n4zBpHwqVHNK4/2IXmvNIkitPe/LraE3g==
+"@react-spring/konva@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.5.2.tgz#cbc7c75c55c7946481f86c7392a6656bb5b1bf4a"
+ integrity sha512-FN8LpbGQtm2pllU9mOyYjYwvLtA9EiIPWk2NVuhhX+5lJZrdCWuEY7EyFpK8PtgZXBdVj8bj7eIu1LlTnARW/A==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/core" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/native@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.5.0.tgz#5b89911e78b8f83fd1c46370b687aedf6dda728c"
- integrity sha512-gznPcy18OVTS7qblgq8eal2vDOcatyBg2J/WXYejYVUUFJJI4ZF+nYoPFIxf2pz/Q0iYPjqES1Ae7JiizCvl8w==
+"@react-spring/native@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.5.2.tgz#218fa228a746cb2f535ea59b317d2e99cdfed02d"
+ integrity sha512-G9BCAKVADLweLR43uyMnTrOnYDb4BboYvqKY+0X1fLs45PNrfbBXnSLot4g+5x3HjblypJgNq7CjHlqZKI980g==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/core" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/rafz@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.5.0.tgz#25ee5ad7dbac2b7486b3a0dd23aa0a6880793d9f"
- integrity sha512-jvelJ/YNeVTkPIRnVu6mD/lopZqixiAY5omCgQM8kT1kAnRPeyuGfHAb73HTnqOzcIL8vOluNfTfUM/xcPm3RQ==
+"@react-spring/rafz@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.5.2.tgz#1264d5df09717cf46d55055da2c55ff84f59073f"
+ integrity sha512-xHSRXKKBI/wDUkZGrspkOm4VlgN6lZi8Tw9Jzibp9QKf3neoof+U2mDNgklvnLaasymtUwAq9o4ZfFvQIVNgPQ==
-"@react-spring/shared@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.5.0.tgz#d80df5a6496fe4d414e608a7bcef448598e4ffee"
- integrity sha512-XuRFgWiiV6LRd3JMQAVhsMnDIBF+M1Z3MeNI6Y+5oIf6mINQHLNPWjYt/lcLZ4cuKYi+OOce4G9zJx003b9w4g==
+"@react-spring/shared@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.5.2.tgz#e0a252e06daa3927964460fef05d8092e7d78ffc"
+ integrity sha512-/OSf2sjwY4BUnjZL6xMC+H3WxOOhMUCk+yZwgdj40XuyUpk6E6tYyiPeD9Yq5GLsZHodkvE1syVMRVReL4ndAg==
dependencies:
- "@react-spring/rafz" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/rafz" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/three@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.5.0.tgz#74c919c93c26b7255ded8c69f3a02f5730cb198c"
- integrity sha512-tr5qgW4jvWrodAVc5gL0vu7+yDD9cnqut7tEIQELgrk4ffTlt+biPh2p2sW/KTVAu51ZO+aK/8caqt26DzqpFQ==
+"@react-spring/three@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.5.2.tgz#965ff4e729929ebbb9a1f8e84f3f4acb6acec4f9"
+ integrity sha512-3H7Lv8BJZ3dajh0yJA3m9rEbqz5ZNrTCAkhVOeLqgvBlcWU5qVs4luYA1Z7H4vZnLqVtzv+kHAyg3XIpuTOXhQ==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/core" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/types@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.5.0.tgz#5ef3af4edc4a5d667f202b9581ac0dfc20889cfb"
- integrity sha512-qrLwe77qa1LdS/tjCZKljzoXDSg9WPAgrfAkl8x1w8y9E8jHnCr2Z8UkM/sXvFlCZvMfsGes4XnE4oUNdjNuNQ==
+"@react-spring/types@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.5.2.tgz#cce1b03afbafb23edfb9cd8c517cc7462abffb65"
+ integrity sha512-n/wBRSHPqTmEd4BFWY6TeR1o/UY+3ujoqMxLjqy90CcY/ozJzDRuREL3c+pxMeTF2+B7dX33dTPCtFMX51nbxg==
-"@react-spring/web@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.5.0.tgz#a47dbf9bf2942a29c22339711eb580c61631d3b3"
- integrity sha512-fq33Og23zCLxH7HELdOyAk0pWtwbSsk8MzPenN2JZMYI1dElB208r4CedM78TPY99YWIY2XRJ45VxbikxVeWLQ==
+"@react-spring/web@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.5.2.tgz#762ee6b3c8fea40281e1298f5cf1c0515ad6a794"
+ integrity sha512-cusTjbOGTgtbsnpBDjb6Ia+B0lQLE0Fk5rGDog6Sww7hWnLIQ521PMiOBnAWtkntB9eXDUfj7L91nwJviEC0lw==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/core" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
-"@react-spring/zdog@~9.5.0":
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.5.0.tgz#5f1a612a97040dca4a253ef32849827d373f54f1"
- integrity sha512-d+rfOC4PC4L78a0ep2YIqpcaqoQdlWLI52Gy32cOHFPT4WgOrX+r6kZWjQli6P2LmcGoY6A9kh051MQpRVnI3g==
+"@react-spring/zdog@~9.5.2":
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.5.2.tgz#a3e451378c23caa4381b5821d3d52c3017740c55"
+ integrity sha512-zUX8RzX8gM51g8NJ5Qaf15KNKQgN3qN/8m5FvqmiqZ5ZGqjoHkbCoMD3o2MICTUN1l+d4eUu9TYrmiO2bgJo/g==
dependencies:
- "@react-spring/animated" "~9.5.0"
- "@react-spring/core" "~9.5.0"
- "@react-spring/shared" "~9.5.0"
- "@react-spring/types" "~9.5.0"
+ "@react-spring/animated" "~9.5.2"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/shared" "~9.5.2"
+ "@react-spring/types" "~9.5.2"
"@rollup/plugin-buble@^0.21.3":
version "0.21.3"
@@ -1559,120 +1579,120 @@
resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz#0c8b74c50f29ee44f423f7416829c0bf8bb5eb27"
integrity sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==
-"@svgr/babel-plugin-add-jsx-attribute@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz"
- integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==
+"@svgr/babel-plugin-add-jsx-attribute@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz#b9a5d84902be75a05ede92e70b338d28ab63fa74"
+ integrity sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w==
-"@svgr/babel-plugin-remove-jsx-attribute@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz"
- integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==
+"@svgr/babel-plugin-remove-jsx-attribute@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz#4877995452efc997b36777abe1fde9705ef78e8b"
+ integrity sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ==
-"@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz"
- integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==
+"@svgr/babel-plugin-remove-jsx-empty-expression@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz#2d67a0e92904c9be149a5b22d3a3797ce4d7b514"
+ integrity sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A==
-"@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz"
- integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==
+"@svgr/babel-plugin-replace-jsx-attribute-value@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz#306f5247139c53af70d1778f2719647c747998ee"
+ integrity sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA==
-"@svgr/babel-plugin-svg-dynamic-title@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz"
- integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==
+"@svgr/babel-plugin-svg-dynamic-title@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz#6ce26d34cbc93eb81737ef528528907c292e7aa2"
+ integrity sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA==
-"@svgr/babel-plugin-svg-em-dimensions@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz"
- integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==
+"@svgr/babel-plugin-svg-em-dimensions@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz#5ade2a724b290873c30529d1d8cd23523856287a"
+ integrity sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw==
-"@svgr/babel-plugin-transform-react-native-svg@^6.0.0":
- version "6.0.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz"
- integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==
+"@svgr/babel-plugin-transform-react-native-svg@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz#d654f509d692c3a09dfb475757a44bd9f6ad7ddf"
+ integrity sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw==
-"@svgr/babel-plugin-transform-svg-component@^6.2.0":
- version "6.2.0"
- resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz"
- integrity sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==
+"@svgr/babel-plugin-transform-svg-component@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz#21a285dbffdce9567c437ebf0d081bf9210807e6"
+ integrity sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw==
-"@svgr/babel-preset@^6.2.0":
- version "6.2.0"
- resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz"
- integrity sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==
+"@svgr/babel-preset@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz#8bd1ead79637d395e9362b01dd37cfd59702e152"
+ integrity sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g==
dependencies:
- "@svgr/babel-plugin-add-jsx-attribute" "^6.0.0"
- "@svgr/babel-plugin-remove-jsx-attribute" "^6.0.0"
- "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.0.0"
- "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.0.0"
- "@svgr/babel-plugin-svg-dynamic-title" "^6.0.0"
- "@svgr/babel-plugin-svg-em-dimensions" "^6.0.0"
- "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0"
- "@svgr/babel-plugin-transform-svg-component" "^6.2.0"
+ "@svgr/babel-plugin-add-jsx-attribute" "^6.3.1"
+ "@svgr/babel-plugin-remove-jsx-attribute" "^6.3.1"
+ "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.3.1"
+ "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.3.1"
+ "@svgr/babel-plugin-svg-dynamic-title" "^6.3.1"
+ "@svgr/babel-plugin-svg-em-dimensions" "^6.3.1"
+ "@svgr/babel-plugin-transform-react-native-svg" "^6.3.1"
+ "@svgr/babel-plugin-transform-svg-component" "^6.3.1"
-"@svgr/core@^6.2.1":
- version "6.2.1"
- resolved "https://registry.npmjs.org/@svgr/core/-/core-6.2.1.tgz"
- integrity sha512-NWufjGI2WUyrg46mKuySfviEJ6IxHUOm/8a3Ph38VCWSp+83HBraCQrpEM3F3dB6LBs5x8OElS8h3C0oOJaJAA==
+"@svgr/core@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.3.1.tgz#752adf49d8d5473b15d76ca741961de093f715bd"
+ integrity sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA==
dependencies:
- "@svgr/plugin-jsx" "^6.2.1"
+ "@svgr/plugin-jsx" "^6.3.1"
camelcase "^6.2.0"
cosmiconfig "^7.0.1"
-"@svgr/hast-util-to-babel-ast@^6.2.1":
- version "6.2.1"
- resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz"
- integrity sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ==
+"@svgr/hast-util-to-babel-ast@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz#59614e24d2a4a28010e02089213b3448d905769d"
+ integrity sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ==
dependencies:
- "@babel/types" "^7.15.6"
- entities "^3.0.1"
+ "@babel/types" "^7.18.4"
+ entities "^4.3.0"
-"@svgr/plugin-jsx@^6.2.1":
- version "6.2.1"
- resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz"
- integrity sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g==
+"@svgr/plugin-jsx@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz#de7b2de824296b836d6b874d498377896e367f50"
+ integrity sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw==
dependencies:
- "@babel/core" "^7.15.5"
- "@svgr/babel-preset" "^6.2.0"
- "@svgr/hast-util-to-babel-ast" "^6.2.1"
- svg-parser "^2.0.2"
+ "@babel/core" "^7.18.5"
+ "@svgr/babel-preset" "^6.3.1"
+ "@svgr/hast-util-to-babel-ast" "^6.3.1"
+ svg-parser "^2.0.4"
-"@svgr/plugin-svgo@^6.2.0":
- version "6.2.0"
- resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz"
- integrity sha512-oDdMQONKOJEbuKwuy4Np6VdV6qoaLLvoY86hjvQEgU82Vx1MSWRyYms6Sl0f+NtqxLI/rDVufATbP/ev996k3Q==
+"@svgr/plugin-svgo@^6.3.1":
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz#3c1ff2efaed10e5c5d35a6cae7bacaedc18b5d4a"
+ integrity sha512-yJIjTDKPYqzFVjmsbH5EdIwEsmKxjxdXSGJVLeUgwZOZPAkNQmD1v7LDbOdOKbR44FG8465Du+zWPdbYGnbMbw==
dependencies:
cosmiconfig "^7.0.1"
deepmerge "^4.2.2"
- svgo "^2.5.0"
+ svgo "^2.8.0"
"@svgr/webpack@^6.2.1":
- version "6.2.1"
- resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.2.1.tgz"
- integrity sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw==
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.3.1.tgz#001d03236ebb03bf47c0a4b92d5423e05095ebe6"
+ integrity sha512-eODxwIUShLxSMaRjzJtrj9wg89D75JLczvWg9SaB5W+OtVTkiC1vdGd8+t+pf5fTlBOy4RRXAq7x1E3DUl3D0A==
dependencies:
- "@babel/core" "^7.15.5"
- "@babel/plugin-transform-react-constant-elements" "^7.14.5"
- "@babel/preset-env" "^7.15.6"
- "@babel/preset-react" "^7.14.5"
- "@babel/preset-typescript" "^7.15.0"
- "@svgr/core" "^6.2.1"
- "@svgr/plugin-jsx" "^6.2.1"
- "@svgr/plugin-svgo" "^6.2.0"
+ "@babel/core" "^7.18.5"
+ "@babel/plugin-transform-react-constant-elements" "^7.17.12"
+ "@babel/preset-env" "^7.18.2"
+ "@babel/preset-react" "^7.17.12"
+ "@babel/preset-typescript" "^7.17.12"
+ "@svgr/core" "^6.3.1"
+ "@svgr/plugin-jsx" "^6.3.1"
+ "@svgr/plugin-svgo" "^6.3.1"
"@swc/helpers@0.4.3":
version "0.4.3"
- resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.3.tgz#16593dfc248c53b699d4b5026040f88ddb497012"
+ resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz"
integrity sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==
dependencies:
tslib "^2.4.0"
"@trysound/sax@0.2.0":
version "0.2.0"
- resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
"@types/babel__core@^7.1.7":
@@ -1787,7 +1807,7 @@
"@types/react-redux@^7.1.20":
version "7.1.24"
- resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0"
+ resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz"
integrity sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==
dependencies:
"@types/hoist-non-react-statics" "^3.3.0"
@@ -1817,47 +1837,47 @@
schema-utils "*"
"@typescript-eslint/parser@^5.21.0":
- version "5.30.6"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.30.6.tgz#add440db038fa9d777e4ebdaf66da9e7fb7abe92"
- integrity sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==
+ version "5.35.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.35.1.tgz#bf2ee2ebeaa0a0567213748243fb4eec2857f04f"
+ integrity sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==
dependencies:
- "@typescript-eslint/scope-manager" "5.30.6"
- "@typescript-eslint/types" "5.30.6"
- "@typescript-eslint/typescript-estree" "5.30.6"
+ "@typescript-eslint/scope-manager" "5.35.1"
+ "@typescript-eslint/types" "5.35.1"
+ "@typescript-eslint/typescript-estree" "5.35.1"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@5.30.6":
- version "5.30.6"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.30.6.tgz#ce1b49ff5ce47f55518d63dbe8fc9181ddbd1a33"
- integrity sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==
+"@typescript-eslint/scope-manager@5.35.1":
+ version "5.35.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz#ccb69d54b7fd0f2d0226a11a75a8f311f525ff9e"
+ integrity sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==
dependencies:
- "@typescript-eslint/types" "5.30.6"
- "@typescript-eslint/visitor-keys" "5.30.6"
+ "@typescript-eslint/types" "5.35.1"
+ "@typescript-eslint/visitor-keys" "5.35.1"
-"@typescript-eslint/types@5.30.6":
- version "5.30.6"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.30.6.tgz#86369d0a7af8c67024115ac1da3e8fb2d38907e1"
- integrity sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==
+"@typescript-eslint/types@5.35.1":
+ version "5.35.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.35.1.tgz#af355fe52a0cc88301e889bc4ada72f279b63d61"
+ integrity sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==
-"@typescript-eslint/typescript-estree@5.30.6":
- version "5.30.6"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.6.tgz#a84a0d6a486f9b54042da1de3d671a2c9f14484e"
- integrity sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==
+"@typescript-eslint/typescript-estree@5.35.1":
+ version "5.35.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz#db878a39a0dbdc9bb133f11cdad451770bfba211"
+ integrity sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==
dependencies:
- "@typescript-eslint/types" "5.30.6"
- "@typescript-eslint/visitor-keys" "5.30.6"
+ "@typescript-eslint/types" "5.35.1"
+ "@typescript-eslint/visitor-keys" "5.35.1"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/visitor-keys@5.30.6":
- version "5.30.6"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.6.tgz#94dd10bb481c8083378d24de1742a14b38a2678c"
- integrity sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==
+"@typescript-eslint/visitor-keys@5.35.1":
+ version "5.35.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz#285e9e34aed7c876f16ff646a3984010035898e6"
+ integrity sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==
dependencies:
- "@typescript-eslint/types" "5.30.6"
+ "@typescript-eslint/types" "5.35.1"
eslint-visitor-keys "^3.3.0"
"@vue/compiler-core@3.2.36", "@vue/compiler-core@^3.2.23":
@@ -1980,7 +2000,7 @@ acorn@^7.4.0:
acorn@^8.5.0:
version "8.7.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
aggregate-error@^3.0.0:
@@ -2012,7 +2032,7 @@ ajv-keywords@^5.0.0:
ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:
version "6.12.6"
- resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^3.1.1"
@@ -2186,7 +2206,7 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-axe-core@^4.4.2:
+axe-core@^4.4.3:
version "4.4.3"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
@@ -2198,34 +2218,34 @@ axobject-query@^2.2.0:
babel-plugin-dynamic-import-node@^2.3.3:
version "2.3.3"
- resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
object.assign "^4.1.0"
-babel-plugin-polyfill-corejs2@^0.3.0:
- version "0.3.1"
- resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz"
- integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+babel-plugin-polyfill-corejs2@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d"
+ integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==
dependencies:
- "@babel/compat-data" "^7.13.11"
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.2"
semver "^6.1.1"
-babel-plugin-polyfill-corejs3@^0.5.0:
- version "0.5.2"
- resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz"
- integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
+babel-plugin-polyfill-corejs3@^0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7"
+ integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/helper-define-polyfill-provider" "^0.3.2"
core-js-compat "^3.21.0"
-babel-plugin-polyfill-regenerator@^0.3.0:
- version "0.3.1"
- resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz"
- integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+babel-plugin-polyfill-regenerator@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe"
+ integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
+ "@babel/helper-define-polyfill-provider" "^0.3.2"
babel-plugin-react-intl@^7.0.0:
version "7.9.4"
@@ -2267,8 +2287,8 @@ bcryptjs@^2.4.3:
boolbase@^1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
- integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
brace-expansion@^1.1.7:
version "1.1.11"
@@ -2285,38 +2305,15 @@ braces@^3.0.2:
dependencies:
fill-range "^7.0.1"
-browserslist@^4.17.5:
- version "4.20.0"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz"
- integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
+browserslist@^4.20.2, browserslist@^4.21.3:
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
+ integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
dependencies:
- caniuse-lite "^1.0.30001313"
- electron-to-chromium "^1.4.76"
- escalade "^3.1.1"
- node-releases "^2.0.2"
- picocolors "^1.0.0"
-
-browserslist@^4.19.1:
- version "4.20.2"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz"
- 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"
-
-browserslist@^4.20.2:
- version "4.20.4"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz"
- integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==
- dependencies:
- caniuse-lite "^1.0.30001349"
- electron-to-chromium "^1.4.147"
- escalade "^3.1.1"
- node-releases "^2.0.5"
- picocolors "^1.0.0"
+ caniuse-lite "^1.0.30001370"
+ electron-to-chromium "^1.4.202"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.5"
browserslist@^4.20.3:
version "4.20.3"
@@ -2342,6 +2339,11 @@ buble@^0.20.0:
minimist "^1.2.5"
regexpu-core "4.5.4"
+buffer-equal-constant-time@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+ integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
@@ -2376,14 +2378,19 @@ camelcase@^5.0.0, camelcase@^5.3.1:
camelcase@^6.2.0:
version "6.3.0"
- resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001313, caniuse-lite@^1.0.30001317, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001349:
+caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335:
version "1.0.30001356"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001356.tgz"
integrity sha512-/30854bktMLhxtjieIxsrJBfs2gTM1pel6MXKF3K+RdIVJZcsn2A2QdhsuR4/p9+R204fZw0zCBBhktX8xWuyQ==
+caniuse-lite@^1.0.30001370:
+ version "1.0.30001383"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz#aecf317ccd940690725ae3ae4f28293c5fb8050e"
+ integrity sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -2465,9 +2472,9 @@ cli-truncate@2.1.0, cli-truncate@^2.1.0:
string-width "^4.2.0"
clickhouse@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/clickhouse/-/clickhouse-2.5.0.tgz#29cece9aeb2e4f449ffb75933f32725a8f7798b3"
- integrity sha512-3eszr5FUDnApZDCQOnpHVmNk6opTnzDNdZyG8n3MF1kf/dts47e7o2DbKC2xEG22orGMski1Flvf1J6nkUhvZA==
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/clickhouse/-/clickhouse-2.6.0.tgz#6218e3978fd5f343bdff395d988c5cd44e8b9a03"
+ integrity sha512-HC5OV99GJOup4qZsTuWWPpXlj+847Z0OeygDU2x22rNYost0V/vWapzFWYZdV/5iRbGMrhFQPOyQEzmGvoaWRQ==
dependencies:
JSONStream "1.3.4"
lodash "4.17.21"
@@ -2478,12 +2485,10 @@ clickhouse@^2.5.0:
tsv "0.2.0"
uuid "3.4.0"
-clone-regexp@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f"
- integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==
- dependencies:
- is-regexp "^2.0.0"
+cluster-key-slot@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
+ integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==
color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
@@ -2509,10 +2514,10 @@ color-name@^1.0.0, color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-colord@^2.9.2:
- version "2.9.2"
- resolved "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz"
- integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
+colord@^2.9.2, colord@^2.9.3:
+ version "2.9.3"
+ resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
+ integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
colorette@^1.4.0:
version "1.4.0"
@@ -2548,7 +2553,7 @@ commander@8, commander@^8.2.0:
commander@^7.2.0:
version "7.2.0"
- resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
concat-map@0.0.1:
@@ -2558,23 +2563,23 @@ concat-map@0.0.1:
convert-source-map@^1.7.0:
version "1.8.0"
- resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
dependencies:
safe-buffer "~5.1.1"
-core-js-compat@^3.20.2, core-js-compat@^3.21.0:
- version "3.21.1"
- resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz"
- integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==
+core-js-compat@^3.21.0, core-js-compat@^3.22.1:
+ version "3.25.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.0.tgz#489affbfbf9cb3fa56192fe2dd9ebaee985a66c5"
+ integrity sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==
dependencies:
- browserslist "^4.19.1"
+ browserslist "^4.21.3"
semver "7.0.0"
core-js-pure@^3.20.2:
- version "3.23.4"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.23.4.tgz#aba5c7fb297063444f6bf93afb0362151679a012"
- integrity sha512-lizxkcgj3XDmi7TUBFe+bQ1vNpD5E4t76BrBWI3HdUxdw/Mq1VF4CkiHzIKyieECKtcODK2asJttoofEeUKICQ==
+ version "3.25.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.0.tgz#f8d1f176ff29abbfeb610110de891d5ae5a361d4"
+ integrity sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==
core-util-is@1.0.2:
version "1.0.2"
@@ -2636,7 +2641,7 @@ css-blank-pseudo@^3.0.3:
css-box-model@^1.2.0:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1"
+ resolved "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz"
integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==
dependencies:
tiny-invariant "^1.0.6"
@@ -2659,28 +2664,28 @@ css-prefers-color-scheme@^6.0.3:
integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
css-select@^4.1.3:
- version "4.2.1"
- resolved "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz"
- integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
dependencies:
boolbase "^1.0.0"
- css-what "^5.1.0"
- domhandler "^4.3.0"
+ css-what "^6.0.1"
+ domhandler "^4.3.1"
domutils "^2.8.0"
nth-check "^2.0.1"
css-tree@^1.1.2, css-tree@^1.1.3:
version "1.1.3"
- resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
dependencies:
mdn-data "2.0.14"
source-map "^0.6.1"
-css-what@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz"
- integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
+css-what@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
cssdb@^6.5.0:
version "6.6.3"
@@ -2694,7 +2699,7 @@ cssesc@^3.0.0:
csso@^4.2.0:
version "4.2.0"
- resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
dependencies:
css-tree "^1.1.2"
@@ -2806,18 +2811,23 @@ dashdash@^1.12.0:
data-uri-to-buffer@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b"
+ resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz"
integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==
date-fns-tz@^1.1.4:
version "1.3.6"
- resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.6.tgz#4195a58a2f86eda55ea69fb477f3ed8a6e2188ac"
+ resolved "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.6.tgz"
integrity sha512-C8q7mErvG4INw1ZwAFmPlGjEo5Sv4udjKVbTc03zpP9cu6cp5AemFzKhz0V68LGcWEtX5mJudzzg3G04emIxLA==
date-fns@^2.23.0:
- version "2.28.0"
- resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz"
- integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
+ version "2.29.2"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931"
+ integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==
+
+dateformat@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz"
+ integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==
debounce@^1.2.1:
version "1.2.1"
@@ -2838,16 +2848,16 @@ debug@^3.2.7:
dependencies:
ms "^2.1.1"
-debug@^4.0.1, debug@^4.1.0:
+debug@^4.0.1:
version "4.3.3"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz"
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
dependencies:
ms "2.1.2"
-debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
- resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
@@ -2877,7 +2887,7 @@ deepmerge@^2.1.1:
deepmerge@^4.2.2:
version "4.2.2"
- resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
define-properties@^1.1.3, define-properties@^1.1.4:
@@ -2907,6 +2917,11 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+denque@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
+ integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
+
detect-browser@^5.2.0:
version "5.3.0"
resolved "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz"
@@ -2939,29 +2954,29 @@ doctrine@^3.0.0:
esutils "^2.0.2"
dom-serializer@^1.0.1:
- version "1.3.2"
- resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz"
- integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.2.0"
entities "^2.0.0"
domelementtype@^2.0.1, domelementtype@^2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz"
- integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
-domhandler@^4.2.0, domhandler@^4.3.0:
- version "4.3.0"
- resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz"
- integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
+domhandler@^4.2.0, domhandler@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
dependencies:
domelementtype "^2.2.0"
domutils@^2.8.0:
version "2.8.0"
- resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
dom-serializer "^1.0.1"
@@ -2981,20 +2996,22 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-electron-to-chromium@^1.4.118, electron-to-chromium@^1.4.84:
+ecdsa-sig-formatter@1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+ integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
+ dependencies:
+ safe-buffer "^5.0.1"
+
+electron-to-chromium@^1.4.118:
version "1.4.143"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.143.tgz"
integrity sha512-2hIgvu0+pDfXIqmVmV5X6iwMjQ2KxDsWKwM+oI1fABEOy/Dqmll0QJRmIQ3rm+XaoUa/qKrmy5h7LSTFQ6Ldzg==
-electron-to-chromium@^1.4.147:
- version "1.4.151"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.151.tgz"
- integrity sha512-XaG2LpZi9fdiWYOqJh0dJy4SlVywCvpgYXhzOlZTp4JqSKqxn5URqOjbm9OMYB3aInA2GuHQiem1QUOc1yT0Pw==
-
-electron-to-chromium@^1.4.76:
- version "1.4.94"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.94.tgz"
- integrity sha512-CoOKsuACoa0PAG3hQXxbh/XDiFcjGuSyGKUi09cjMHOt6RCi7/EXgXhaFF3I+aC89Omudqmkzd0YOQKxwtf/Bg==
+electron-to-chromium@^1.4.202:
+ version "1.4.233"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz#aa142e45468bda111b88abc9cc59d573b75d6a60"
+ integrity sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw==
emoji-regex@^8.0.0:
version "8.0.0"
@@ -3015,13 +3032,13 @@ enquirer@^2.3.5, enquirer@^2.3.6:
entities@^2.0.0:
version "2.2.0"
- resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-entities@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz"
- integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
+entities@^4.3.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4"
+ integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==
error-ex@^1.3.1:
version "1.3.2"
@@ -3077,7 +3094,7 @@ es-to-primitive@^1.2.1:
escalade@^3.1.1:
version "3.1.1"
- resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
escape-string-regexp@^1.0.5:
@@ -3091,11 +3108,11 @@ escape-string-regexp@^4.0.0:
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-config-next@^12.2.4:
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.2.4.tgz#5f12f2eff1fabc3f1fb7527ceb8a4ad00235b011"
- integrity sha512-r3keSLY1Z+rN+ASN8nmWwZ+AsMl6IrPGRWgbQhKHcop4/fk1hJGxE9Xf/mYMkV07+1Q/catchw25lu525HFy5Q==
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.2.5.tgz#76ce83f18cc02f6f42ed407a127f83db54fabd3c"
+ integrity sha512-SOowilkqPzW6DxKp3a3SYlrfPi5Ajs9MIzp9gVfUDxxH9QFM5ElkR1hX5m/iICJuvCbWgQqFBiA3mCMozluniw==
dependencies:
- "@next/eslint-plugin-next" "12.2.4"
+ "@next/eslint-plugin-next" "12.2.5"
"@rushstack/eslint-patch" "^1.1.3"
"@typescript-eslint/parser" "^5.21.0"
eslint-import-resolver-node "^0.3.6"
@@ -3110,6 +3127,11 @@ eslint-config-prettier@^8.5.0:
resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz"
integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==
+eslint-import-resolver-alias@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz#297062890e31e4d6651eb5eba9534e1f6e68fc97"
+ integrity sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==
+
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"
@@ -3130,12 +3152,11 @@ eslint-import-resolver-typescript@^2.7.1:
tsconfig-paths "^3.14.1"
eslint-module-utils@^2.7.3:
- 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==
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974"
+ integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
dependencies:
debug "^3.2.7"
- find-up "^2.1.0"
eslint-plugin-import@^2.26.0:
version "2.26.0"
@@ -3157,27 +3178,27 @@ eslint-plugin-import@^2.26.0:
tsconfig-paths "^3.14.1"
eslint-plugin-jsx-a11y@^6.5.1:
- version "6.6.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz#2c5ac12e013eb98337b9aa261c3b355275cc6415"
- integrity sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff"
+ integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==
dependencies:
- "@babel/runtime" "^7.18.3"
+ "@babel/runtime" "^7.18.9"
aria-query "^4.2.2"
array-includes "^3.1.5"
ast-types-flow "^0.0.7"
- axe-core "^4.4.2"
+ axe-core "^4.4.3"
axobject-query "^2.2.0"
damerau-levenshtein "^1.0.8"
emoji-regex "^9.2.2"
has "^1.0.3"
- jsx-ast-utils "^3.3.1"
+ jsx-ast-utils "^3.3.2"
language-tags "^1.0.5"
minimatch "^3.1.2"
semver "^6.3.0"
eslint-plugin-prettier@^4.0.0:
version "4.2.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
+ resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
dependencies:
prettier-linter-helpers "^1.0.0"
@@ -3188,9 +3209,9 @@ eslint-plugin-react-hooks@^4.5.0:
integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
eslint-plugin-react@^7.29.4:
- version "7.30.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22"
- integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==
+ version "7.31.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz#d29793ed27743f3ed8a473c347b1bf5a0a8fb9af"
+ integrity sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==
dependencies:
array-includes "^3.1.5"
array.prototype.flatmap "^1.3.0"
@@ -3351,13 +3372,6 @@ execa@^5.1.1:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
-execall@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45"
- integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==
- dependencies:
- clone-regexp "^2.1.0"
-
extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
@@ -3396,12 +3410,12 @@ extsprintf@^1.2.0:
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-diff@^1.1.2:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
+ resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9:
@@ -3417,7 +3431,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9:
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
- resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@^2.0.6:
@@ -3425,10 +3439,10 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-fastest-levenshtein@^1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
- integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+fastest-levenshtein@^1.0.16:
+ version "1.0.16"
+ resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
+ integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
fastq@^1.6.0:
version "1.13.0"
@@ -3439,7 +3453,7 @@ fastq@^1.6.0:
fetch-blob@^3.1.2, fetch-blob@^3.1.4:
version "3.2.0"
- resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
+ resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz"
integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
dependencies:
node-domexception "^1.0.0"
@@ -3459,13 +3473,6 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-find-up@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
- dependencies:
- locate-path "^2.0.0"
-
find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
@@ -3476,7 +3483,7 @@ find-up@^4.1.0:
find-up@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
@@ -3496,9 +3503,9 @@ flat@^5.0.0:
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^3.1.0:
- version "3.2.6"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2"
- integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
+ integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
forever-agent@~0.6.1:
version "0.6.1"
@@ -3516,7 +3523,7 @@ form-data@~2.3.2:
formdata-polyfill@^4.0.10:
version "4.0.10"
- resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
+ resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz"
integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
dependencies:
fetch-blob "^3.1.2"
@@ -3602,7 +3609,7 @@ functions-have-names@^1.2.2:
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
- resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
@@ -3619,11 +3626,6 @@ get-own-enumerable-property-symbols@^3.0.0:
resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
-get-stdin@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
- integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
-
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
@@ -3693,7 +3695,7 @@ global-prefix@^3.0.0:
globals@^11.1.0:
version "11.12.0"
- resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^13.6.0, globals@^13.9.0:
@@ -3770,7 +3772,7 @@ has-property-descriptors@^1.0.0:
dependencies:
get-intrinsic "^1.1.1"
-has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
+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==
@@ -3844,12 +3846,12 @@ ignore@^5.2.0:
immer@^9.0.12:
version "9.0.15"
- resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc"
+ resolved "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz"
integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
dependencies:
parent-module "^1.0.0"
@@ -3927,6 +3929,21 @@ intl-messageformat@9.13.0:
"@formatjs/icu-messageformat-parser" "2.1.0"
tslib "^2.1.0"
+ioredis@^5.2.3:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.3.tgz#d5b37eb13e643241660d6cee4eeb41a026cda8c0"
+ integrity sha512-gQNcMF23/NpvjCaa1b5YycUyQJ9rBNH2xP94LWinNpodMWVUPP5Ai/xXANn/SM7gfIvI62B5CCvZxhg5pOgyMw==
+ dependencies:
+ "@ioredis/commands" "^1.1.1"
+ cluster-key-slot "^1.1.0"
+ debug "^4.3.4"
+ denque "^2.0.1"
+ lodash.defaults "^4.2.0"
+ lodash.isarguments "^3.1.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
+ standard-as-callback "^2.1.0"
+
ipaddr.js@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz"
@@ -3965,9 +3982,9 @@ is-ci@^3.0.1:
ci-info "^3.2.0"
is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
- integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
+ integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
dependencies:
has "^1.0.3"
@@ -4065,11 +4082,6 @@ is-regexp@^1.0.0:
resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz"
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-is-regexp@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
- integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
-
is-shared-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
@@ -4098,8 +4110,8 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
- resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
- integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
is-weakref@^1.0.2:
version "1.0.2"
@@ -4108,15 +4120,10 @@ is-weakref@^1.0.2:
dependencies:
call-bind "^1.0.2"
-is_js@^0.9.0:
- version "0.9.0"
- resolved "https://registry.npmjs.org/is_js/-/is_js-0.9.0.tgz"
- integrity sha512-8Y5EHSH+TonfUHX2g3pMJljdbGavg55q4jmHzghJCdqYDbdNROC8uw/YFQwIRCRqRJT1EY3pJefz+kglw+o7sg==
-
isbot@^3.4.5:
- version "3.5.0"
- resolved "https://registry.npmjs.org/isbot/-/isbot-3.5.0.tgz"
- integrity sha512-QOFF7IE7hUdzo8pbhCubeiMzKdLZt+W/UwRZWwg+zghmnqXoMwh2V0bi5UT+oIvoD0IWCWjzAtp30ZrrRwJVCg==
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/isbot/-/isbot-3.5.2.tgz#eb33c40c0db53a0dd10d4a24dfb0d67f9978f344"
+ integrity sha512-7iXQPDK1GBKvWS9N71bNnQ2KMcqwlMhdLkPma/EBn+8ZRkCbhun3yqqS1hmRqysTwJLGvJrUTmRIHibLWrXQQA==
isexe@^2.0.0:
version "2.0.0"
@@ -4137,13 +4144,6 @@ jest-worker@^26.2.1:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jose@2.0.5:
- version "2.0.5"
- resolved "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz"
- integrity sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==
- dependencies:
- "@panva/asn1.js" "^1.0.0"
-
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -4164,13 +4164,13 @@ jsbn@~0.1.0:
jsesc@^2.5.1:
version "2.5.2"
- resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
jsesc@~0.5.0:
version "0.5.0"
- resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
- integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
json-parse-better-errors@^1.0.1:
version "1.0.2"
@@ -4184,7 +4184,7 @@ json-parse-even-better-errors@^2.3.0:
json-schema-traverse@^0.4.1:
version "0.4.1"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema-traverse@^1.0.0:
@@ -4221,12 +4221,10 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
-json5@^2.1.2:
- version "2.2.0"
- resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
- integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
- dependencies:
- minimist "^1.2.5"
+json5@^2.1.2, json5@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
+ integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
jsonfile@^6.0.1:
version "6.1.0"
@@ -4247,6 +4245,22 @@ jsonparse@^1.2.0:
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
+jsonwebtoken@^8.5.1:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+ integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+ dependencies:
+ jws "^3.2.2"
+ lodash.includes "^4.3.0"
+ lodash.isboolean "^3.0.3"
+ lodash.isinteger "^4.0.4"
+ lodash.isnumber "^3.0.3"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.once "^4.0.0"
+ ms "^2.1.1"
+ semver "^5.6.0"
+
jsprim@^1.2.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
@@ -4257,21 +4271,35 @@ jsprim@^1.2.2:
json-schema "0.4.0"
verror "1.10.0"
-"jsx-ast-utils@^2.4.1 || ^3.0.0":
- version "3.3.0"
- resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz"
- integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==
- dependencies:
- array-includes "^3.1.4"
- object.assign "^4.1.2"
-
-jsx-ast-utils@^3.3.1:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd"
- integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea"
+ integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==
dependencies:
array-includes "^3.1.5"
- object.assign "^4.1.2"
+ object.assign "^4.1.3"
+
+jwa@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
+ integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
+ dependencies:
+ buffer-equal-constant-time "1.0.1"
+ ecdsa-sig-formatter "1.0.11"
+ safe-buffer "^5.0.1"
+
+jws@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
+ integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
+ dependencies:
+ jwa "^1.4.1"
+ safe-buffer "^5.0.1"
+
+kafkajs@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/kafkajs/-/kafkajs-2.2.0.tgz#43b2d13c82395acee4500f09d6c7d503db8c77ea"
+ integrity sha512-+sdgyLuC0Idw1g9LSBXjtoCr4K+vVaHP+tulzAK+V+HHvO3uW5woNkzLnbBx0MN4WRuEl/5g84M3FSkH0ZDzrA==
kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
@@ -4367,14 +4395,6 @@ load-json-file@^6.2.0:
strip-bom "^4.0.0"
type-fest "^0.6.0"
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
locate-path@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
@@ -4384,7 +4404,7 @@ locate-path@^5.0.0:
locate-path@^6.0.0:
version "6.0.0"
- resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
p-locate "^5.0.0"
@@ -4396,8 +4416,48 @@ lodash-es@^4.17.21:
lodash.debounce@^4.0.8:
version "4.0.8"
- resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
- integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+
+lodash.defaults@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
+ integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
+
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
+
+lodash.isarguments@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+ integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==
+
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==
+
+lodash.isinteger@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+ integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
+
+lodash.isnumber@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+ integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
lodash.merge@^4.6.2:
version "4.6.2"
@@ -4409,6 +4469,11 @@ lodash.mergewith@^4.6.2:
resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz"
integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
+lodash.once@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
+
lodash.pick@^4.4.0:
version "4.4.0"
resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz"
@@ -4421,7 +4486,7 @@ lodash.truncate@^4.4.2:
lodash@4.17.21, lodash@^4.17.21:
version "4.17.21"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-update@^4.0.0:
@@ -4495,7 +4560,7 @@ maxmind@^4.3.6:
mdn-data@2.0.14:
version "2.0.14"
- resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
"memoize-one@>=3.1.1 <6", memoize-one@^5.1.1:
@@ -4601,7 +4666,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2:
minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
version "1.2.6"
- resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
minipass@^3.0.0:
@@ -4630,16 +4695,16 @@ mmdb-lib@2.0.2:
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
moment-timezone@^0.5.33:
- version "0.5.34"
- resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz"
- integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==
+ version "0.5.37"
+ resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.37.tgz#adf97f719c4e458fdb12e2b4e87b8bec9f4eef1e"
+ integrity sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==
dependencies:
moment ">= 2.9.0"
"moment@>= 2.9.0", moment@^2.10.2:
- version "2.29.1"
- resolved "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"
- integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
+ version "2.29.4"
+ resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz"
+ integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
ms@2.0.0:
version "2.0.0"
@@ -4656,7 +4721,7 @@ 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.3.1, nanoid@^3.3.4:
+nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
@@ -4666,31 +4731,39 @@ natural-compare@^1.4.0:
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-next@^12.2.4:
- version "12.2.4"
- resolved "https://registry.yarnpkg.com/next/-/next-12.2.4.tgz#88f7a7a4cd76063704cda28b3b07c4217b8928b0"
- integrity sha512-b1xlxEozmAWokAXzXsi5vlmU/IfJcFNIJA8dpU5UdkFbyDPio8wwb8mAQ/Y7rGtfTgG/t/u49BiyEA+xAgFvow==
+next-basics@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/next-basics/-/next-basics-0.6.0.tgz#bbb3b2dafa69931c3b7aad0cd456332ddcf019c7"
+ integrity sha512-S9deRGhQPj9tN9WSroK8UAcxFuoV38YNFO9B5qEQpt7ZUNCkAUITccW98LGlJ5WfNzkp7dnXVgmL3+yvRWlH4w==
dependencies:
- "@next/env" "12.2.4"
+ bcryptjs "^2.4.3"
+ jsonwebtoken "^8.5.1"
+
+next@^12.2.5:
+ version "12.2.5"
+ resolved "https://registry.yarnpkg.com/next/-/next-12.2.5.tgz#14fb5975e8841fad09553b8ef41fe1393602b717"
+ integrity sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA==
+ dependencies:
+ "@next/env" "12.2.5"
"@swc/helpers" "0.4.3"
caniuse-lite "^1.0.30001332"
postcss "8.4.14"
- styled-jsx "5.0.2"
+ styled-jsx "5.0.4"
use-sync-external-store "1.2.0"
optionalDependencies:
- "@next/swc-android-arm-eabi" "12.2.4"
- "@next/swc-android-arm64" "12.2.4"
- "@next/swc-darwin-arm64" "12.2.4"
- "@next/swc-darwin-x64" "12.2.4"
- "@next/swc-freebsd-x64" "12.2.4"
- "@next/swc-linux-arm-gnueabihf" "12.2.4"
- "@next/swc-linux-arm64-gnu" "12.2.4"
- "@next/swc-linux-arm64-musl" "12.2.4"
- "@next/swc-linux-x64-gnu" "12.2.4"
- "@next/swc-linux-x64-musl" "12.2.4"
- "@next/swc-win32-arm64-msvc" "12.2.4"
- "@next/swc-win32-ia32-msvc" "12.2.4"
- "@next/swc-win32-x64-msvc" "12.2.4"
+ "@next/swc-android-arm-eabi" "12.2.5"
+ "@next/swc-android-arm64" "12.2.5"
+ "@next/swc-darwin-arm64" "12.2.5"
+ "@next/swc-darwin-x64" "12.2.5"
+ "@next/swc-freebsd-x64" "12.2.5"
+ "@next/swc-linux-arm-gnueabihf" "12.2.5"
+ "@next/swc-linux-arm64-gnu" "12.2.5"
+ "@next/swc-linux-arm64-musl" "12.2.5"
+ "@next/swc-linux-x64-gnu" "12.2.5"
+ "@next/swc-linux-x64-musl" "12.2.5"
+ "@next/swc-win32-arm64-msvc" "12.2.5"
+ "@next/swc-win32-ia32-msvc" "12.2.5"
+ "@next/swc-win32-x64-msvc" "12.2.5"
nice-try@^1.0.4:
version "1.0.5"
@@ -4699,23 +4772,28 @@ nice-try@^1.0.4:
node-domexception@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
+ resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz"
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
node-fetch@^3.2.8:
- version "3.2.8"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.8.tgz#0d9516dcf43a758d78d6dbe538adf0b1f6a4944e"
- integrity sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==
+ version "3.2.10"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz"
+ integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==
dependencies:
data-uri-to-buffer "^4.0.0"
fetch-blob "^3.1.4"
formdata-polyfill "^4.0.10"
-node-releases@^2.0.2, node-releases@^2.0.3, node-releases@^2.0.5:
+node-releases@^2.0.3:
version "2.0.5"
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz"
integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
@@ -4769,9 +4847,9 @@ npm-run-path@^4.0.1:
path-key "^3.0.0"
nth-check@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz"
- integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
boolbase "^1.0.0"
@@ -4795,14 +4873,14 @@ object-keys@^1.1.1:
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-object.assign@^4.1.0, object.assign@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
- integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.3:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
+ integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
dependencies:
- call-bind "^1.0.0"
- define-properties "^1.1.3"
- has-symbols "^1.0.1"
+ call-bind "^1.0.2"
+ define-properties "^1.1.4"
+ has-symbols "^1.0.3"
object-keys "^1.1.1"
object.entries@^1.1.5:
@@ -4866,13 +4944,6 @@ optionator@^0.9.1:
type-check "^0.4.0"
word-wrap "^1.2.3"
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -4882,18 +4953,11 @@ p-limit@^2.2.0:
p-limit@^3.0.2:
version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
dependencies:
yocto-queue "^0.1.0"
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
- dependencies:
- p-limit "^1.1.0"
-
p-locate@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
@@ -4903,7 +4967,7 @@ p-locate@^4.1.0:
p-locate@^5.0.0:
version "5.0.0"
- resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
dependencies:
p-limit "^3.0.2"
@@ -4915,11 +4979,6 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
-
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
@@ -4950,11 +5009,6 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
-
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
@@ -5280,9 +5334,9 @@ postcss-resolve-nested-selector@^0.1.1:
integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==
postcss-rtlcss@^3.6.1:
- version "3.6.3"
- resolved "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-3.6.3.tgz"
- integrity sha512-jJlS7gM5JPH8n/hcHqqekK8wusdFEFYi79mBvAK2GWvl3aehOFgj9vEMwFzUTJrrErakYTgiQ+uuGAzdL98g0g==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/postcss-rtlcss/-/postcss-rtlcss-3.7.2.tgz#0a06cbfd74aec36ad1fe6c6fd1ec74069c62ce45"
+ integrity sha512-GurrGedCKvOTe1QrifI+XpDKXA3bJky1v8KiOa/TYYHs1bfJOxI53GIRvVSqLJLly7e1WcNMz8KMESTN01vbZQ==
dependencies:
rtlcss "^3.5.0"
@@ -5311,7 +5365,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@8.4.14, postcss@^8.1.10, postcss@^8.4.12, postcss@^8.4.14:
+postcss@8.4.14, postcss@^8.1.10:
version "8.4.14"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz"
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
@@ -5320,12 +5374,12 @@ postcss@8.4.14, postcss@^8.1.10, postcss@^8.4.12, postcss@^8.4.14:
picocolors "^1.0.0"
source-map-js "^1.0.2"
-postcss@^8.3.11:
- version "8.4.12"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz"
- integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==
+postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.16:
+ version "8.4.16"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
+ integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
dependencies:
- nanoid "^3.3.1"
+ nanoid "^3.3.4"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -5336,22 +5390,22 @@ prelude-ls@^1.2.1:
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"
+ resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
dependencies:
fast-diff "^1.1.2"
prettier@^2.6.2:
version "2.7.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz"
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
-prisma@4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.1.1.tgz#41c2e19896357f484ef21567165d762908376fca"
- integrity sha512-yw50J8If2dKP4wYIi695zthsCASQFHiogGvUHHWd3falx/rpsD6Sb1LMLRV9nO3iGG3lozxNJ2PSINxK7xwdpg==
+prisma@4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.2.1.tgz#3558359f15021aa4767de8c6d0ca1f285cf33d65"
+ integrity sha512-HuYqnTDgH8atjPGtYmY0Ql9XrrJnfW7daG1PtAJRW0E6gJxc50lY3vrIDn0yjMR3TvRlypjTcspQX8DT+xD4Sg==
dependencies:
- "@prisma/engines" "4.1.1"
+ "@prisma/engines" "4.2.1"
progress@^2.0.0:
version "2.0.3"
@@ -5412,7 +5466,7 @@ quick-lru@^4.0.1:
raf-schd@^4.0.2:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a"
+ resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz"
integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==
randombytes@^2.1.0:
@@ -5424,7 +5478,7 @@ randombytes@^2.1.0:
react-beautiful-dnd@^13.1.0:
version "13.1.0"
- resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz#ec97c81093593526454b0de69852ae433783844d"
+ resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz"
integrity sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==
dependencies:
"@babel/runtime" "^7.9.2"
@@ -5472,12 +5526,12 @@ react-is@^16.13.1, react-is@^16.7.0:
react-is@^17.0.2:
version "17.0.2"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
react-redux@^7.2.0:
version "7.2.8"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de"
+ resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz"
integrity sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==
dependencies:
"@babel/runtime" "^7.15.4"
@@ -5498,16 +5552,16 @@ react-simple-maps@^2.3.0:
topojson-client "^3.1.0"
react-spring@^9.4.4:
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.5.0.tgz#59f894332a98da5714c9c6a139bb26ffb5058454"
- integrity sha512-7zdiTrSOQXYB2B/7HT6ehbdBFt5aGCQuSmJzqbbbUyv9LiSH4DIE8PLBS1W0jW1684GwXF7NCdnETE+Ay7jBxQ==
+ version "9.5.2"
+ resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.5.2.tgz#b9929ad2806e56e6408b27189ec9cdf1dc003873"
+ integrity sha512-OGWNgKi2TSjpqsK67NCUspaCgEvWcG7HcpO9KAaDLFzFGNxWdGdN3YTXhhWUqCsLAx9I6LxPzmRuUPsMNqTgrw==
dependencies:
- "@react-spring/core" "~9.5.0"
- "@react-spring/konva" "~9.5.0"
- "@react-spring/native" "~9.5.0"
- "@react-spring/three" "~9.5.0"
- "@react-spring/web" "~9.5.0"
- "@react-spring/zdog" "~9.5.0"
+ "@react-spring/core" "~9.5.2"
+ "@react-spring/konva" "~9.5.2"
+ "@react-spring/native" "~9.5.2"
+ "@react-spring/three" "~9.5.2"
+ "@react-spring/web" "~9.5.2"
+ "@react-spring/zdog" "~9.5.2"
react-tooltip@^4.2.21:
version "4.2.21"
@@ -5591,16 +5645,28 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
+redis-errors@^1.0.0, redis-errors@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad"
+ integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==
+
+redis-parser@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4"
+ integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==
+ dependencies:
+ redis-errors "^1.0.0"
+
redux@^4.0.0, redux@^4.0.4:
version "4.2.0"
- resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13"
+ resolved "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz"
integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==
dependencies:
"@babel/runtime" "^7.9.2"
regenerate-unicode-properties@^10.0.1:
version "10.0.1"
- resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
dependencies:
regenerate "^1.4.2"
@@ -5622,10 +5688,10 @@ regenerator-runtime@^0.13.4:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
-regenerator-transform@^0.14.2:
- version "0.14.5"
- resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz"
- integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+regenerator-transform@^0.15.0:
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
+ integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
dependencies:
"@babel/runtime" "^7.8.4"
@@ -5655,10 +5721,10 @@ regexpu-core@4.5.4:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.1.0"
-regexpu-core@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz"
- integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+regexpu-core@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
+ integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==
dependencies:
regenerate "^1.4.2"
regenerate-unicode-properties "^10.0.1"
@@ -5674,7 +5740,7 @@ regjsgen@^0.5.0:
regjsgen@^0.6.0:
version "0.6.0"
- resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
regjsparser@^0.6.0:
@@ -5686,17 +5752,15 @@ regjsparser@^0.6.0:
regjsparser@^0.8.2:
version "0.8.4"
- resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
dependencies:
jsesc "~0.5.0"
-request-ip@^2.1.3:
- version "2.2.0"
- resolved "https://registry.npmjs.org/request-ip/-/request-ip-2.2.0.tgz"
- integrity sha512-Hn4zUAr+XHbUs2RrfHur62t7+UhvtevqK32ordFewguEfNHUkhSdYgbG7PDGmXZEzqEXll9bei0+VMe6gkmuUQ==
- dependencies:
- is_js "^0.9.0"
+request-ip@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/request-ip/-/request-ip-3.3.0.tgz#863451e8fec03847d44f223e30a5d63e369fa611"
+ integrity sha512-cA6Xh6e0fDBBBwH77SLJaJPBmD3nWVAcF9/XAcsrIHdjhFzFiB5aNQFytdjCGPezU3ROwrR11IddKAM08vohxA==
request@2.88.0:
version "2.88.0"
@@ -5739,7 +5803,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.14.2:
+resolve@^1.1.7:
version "1.22.0"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz"
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
@@ -5748,7 +5812,7 @@ resolve@^1.1.7, resolve@^1.14.2:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0:
+resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
@@ -5802,15 +5866,15 @@ rollup-plugin-terser@^7.0.2:
terser "^5.0.0"
rollup@^2.70.1:
- version "2.77.0"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.0.tgz#749eaa5ac09b6baa52acc076bc46613eddfd53f4"
- integrity sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g==
+ version "2.78.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f"
+ integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==
optionalDependencies:
fsevents "~2.3.2"
rtlcss@^3.5.0:
version "3.5.0"
- resolved "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz"
+ resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3"
integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==
dependencies:
find-up "^5.0.0"
@@ -5834,12 +5898,12 @@ rxjs@^7.5.1:
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
version "5.2.1"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-buffer@~5.1.1:
version "5.1.2"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
@@ -5879,14 +5943,14 @@ semver-compare@^1.0.0:
resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-"semver@2 || 3 || 4 || 5", semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@7.0.0:
version "7.0.0"
- resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
@@ -5995,7 +6059,7 @@ sort-keys@^4.0.0:
source-map-js@^1.0.2:
version "1.0.2"
- resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
source-map-support@~0.5.20:
@@ -6006,14 +6070,9 @@ source-map-support@~0.5.20:
buffer-from "^1.0.0"
source-map "^0.6.0"
-source-map@^0.5.0:
- version "0.5.7"
- resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
source-map@^0.6.0, source-map@^0.6.1:
version "0.6.1"
- resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.4.8:
@@ -6043,9 +6102,9 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
- integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
+ version "3.0.12"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779"
+ integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==
sprintf-js@~1.0.2:
version "1.0.3"
@@ -6069,9 +6128,14 @@ sshpk@^1.7.0:
stable@^0.1.8:
version "0.1.8"
- resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+standard-as-callback@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45"
+ integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==
+
stream2asynciter@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/stream2asynciter/-/stream2asynciter-1.0.3.tgz#7ba9046846c8b1caf36ec30d64a73514f7f44c5a"
@@ -6180,10 +6244,10 @@ style-search@^0.1.0:
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==
-styled-jsx@5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729"
- integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==
+styled-jsx@5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.4.tgz#5b1bd0b9ab44caae3dd1361295559706e044aa53"
+ integrity sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ==
stylelint-config-css-modules@^4.1.0:
version "4.1.0"
@@ -6214,21 +6278,19 @@ stylelint-scss@^4.2.0:
postcss-value-parser "^4.1.0"
stylelint@^14.5.3:
- version "14.9.1"
- resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.9.1.tgz#6494ed38f148b1e75b402d678a3b6a8aae86dfda"
- integrity sha512-RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==
+ version "14.11.0"
+ resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.11.0.tgz#e2ecb28bbacab05e1fbeb84cbba23883b27499cc"
+ integrity sha512-OTLjLPxpvGtojEfpESWM8Ir64Z01E89xsisaBMUP/ngOx1+4VG2DPRcUyCCiin9Rd3kPXPsh/uwHd9eqnvhsYA==
dependencies:
- "@csstools/selector-specificity" "^2.0.1"
+ "@csstools/selector-specificity" "^2.0.2"
balanced-match "^2.0.0"
- colord "^2.9.2"
+ colord "^2.9.3"
cosmiconfig "^7.0.1"
css-functions-list "^3.1.0"
debug "^4.3.4"
- execall "^2.0.0"
fast-glob "^3.2.11"
- fastest-levenshtein "^1.0.12"
+ fastest-levenshtein "^1.0.16"
file-entry-cache "^6.0.1"
- get-stdin "^8.0.0"
global-modules "^2.0.0"
globby "^11.1.0"
globjoin "^0.1.4"
@@ -6243,7 +6305,7 @@ stylelint@^14.5.3:
micromatch "^4.0.5"
normalize-path "^3.0.0"
picocolors "^1.0.0"
- postcss "^8.4.14"
+ postcss "^8.4.16"
postcss-media-query-parser "^0.2.3"
postcss-resolve-nested-selector "^0.1.1"
postcss-safe-parser "^6.0.0"
@@ -6257,7 +6319,7 @@ stylelint@^14.5.3:
svg-tags "^1.0.0"
table "^6.8.0"
v8-compile-cache "^2.3.0"
- write-file-atomic "^4.0.1"
+ write-file-atomic "^4.0.2"
supports-color@8.1.1:
version "8.1.1"
@@ -6293,9 +6355,9 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-svg-parser@^2.0.2:
+svg-parser@^2.0.4:
version "2.0.4"
- resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz"
+ resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
svg-tags@^1.0.0:
@@ -6303,9 +6365,9 @@ svg-tags@^1.0.0:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==
-svgo@^2.5.0:
+svgo@^2.8.0:
version "2.8.0"
- resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
dependencies:
"@trysound/sax" "0.2.0"
@@ -6341,7 +6403,7 @@ tar@^6.1.2:
terser@^5.0.0:
version "5.14.2"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10"
+ resolved "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz"
integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==
dependencies:
"@jridgewell/source-map" "^0.3.2"
@@ -6361,8 +6423,8 @@ thenby@^1.3.4:
through@2.3.8, "through@>=2.2.7 <3", through@^2.3.8:
version "2.3.8"
- resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
timezone-support@^2.0.2:
version "2.0.2"
@@ -6373,7 +6435,7 @@ timezone-support@^2.0.2:
tiny-invariant@^1.0.6:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9"
+ resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz"
integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==
tiny-lru@8.0.2:
@@ -6388,8 +6450,8 @@ tiny-warning@^1.0.2:
to-fast-properties@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
- integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
to-regex-range@^5.0.1:
version "5.0.1"
@@ -6533,7 +6595,7 @@ unicode-canonical-property-names-ecmascript@^1.0.4:
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
unicode-match-property-ecmascript@^1.0.4:
@@ -6546,7 +6608,7 @@ unicode-match-property-ecmascript@^1.0.4:
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
dependencies:
unicode-canonical-property-names-ecmascript "^2.0.0"
@@ -6559,7 +6621,7 @@ unicode-match-property-value-ecmascript@^1.1.0:
unicode-match-property-value-ecmascript@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
unicode-property-aliases-ecmascript@^1.0.4:
@@ -6569,7 +6631,7 @@ unicode-property-aliases-ecmascript@^1.0.4:
unicode-property-aliases-ecmascript@^2.0.0:
version "2.0.0"
- resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
universalify@^2.0.0:
@@ -6577,6 +6639,14 @@ universalify@^2.0.0:
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+update-browserslist-db@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
+ integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -6586,12 +6656,12 @@ uri-js@^4.2.2:
use-memo-one@^1.1.1:
version "1.1.2"
- resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20"
+ resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz"
integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==
use-sync-external-store@1.2.0:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
+ resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
util-deprecate@^1.0.2:
@@ -6654,7 +6724,7 @@ vue@^3.2.23:
web-streams-polyfill@^3.0.3:
version "3.2.1"
- resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
+ resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz"
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
which-boxed-primitive@^1.0.2:
@@ -6720,10 +6790,10 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
-write-file-atomic@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
- integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
dependencies:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
@@ -6742,7 +6812,7 @@ write-json-file@^4.3.0:
yallist@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.10.0:
@@ -6765,7 +6835,7 @@ yargs-parser@^20.2.3:
yocto-queue@^0.1.0:
version "0.1.0"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zustand@^3.7.2: