From ffc05abe1d679e9f2b69d965261765c949fae0fb Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Thu, 28 Oct 2021 21:44:05 +0800 Subject: [PATCH 001/166] chore init --- www/_casestudies/vercel.mdx | 29 ++ www/pages/blog.tsx | 2 +- www/pages/case-studies/index.tsx | 180 +++++++++++ www/public/case-studies-rss.xml | 524 +++++++++++++++++++++++++++++++ 4 files changed, 734 insertions(+), 1 deletion(-) create mode 100644 www/_casestudies/vercel.mdx create mode 100644 www/pages/case-studies/index.tsx create mode 100644 www/public/case-studies-rss.xml diff --git a/www/_casestudies/vercel.mdx b/www/_casestudies/vercel.mdx new file mode 100644 index 00000000000..f9ee4ea55af --- /dev/null +++ b/www/_casestudies/vercel.mdx @@ -0,0 +1,29 @@ +--- +title: Supabase Alpha April 2020 +description: Two months of building +author: paul_copplestone +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +tags: + - supabase +date: '06-01-2020' +--- + +Now in [Supabase](https://app.supabase.io): + +- Set up Postgres in less than 2 minutes +- Auto-generated APIs! (they are a bit flaky, go easy) +- Query your database directly from the dashboard +- Analyze your queries and make them faster :rocket: + + diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index 88534b3f24a..e67b6a67912 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -16,7 +16,7 @@ import BlogListItem from '~/components/Blog/BlogListItem' import BlogHeader from '~/components/Blog/BlogHeader' export async function getStaticProps() { - const allPostsData = getSortedPosts() + const allPostsData = getSortedPosts('_blog') const categories = getAllCategories() const rss = generateRss(allPostsData) diff --git a/www/pages/case-studies/index.tsx b/www/pages/case-studies/index.tsx new file mode 100644 index 00000000000..8cf41e319ba --- /dev/null +++ b/www/pages/case-studies/index.tsx @@ -0,0 +1,180 @@ +import fs from 'fs' +import { useEffect, useState } from 'react' + +import { useRouter } from 'next/router' +import Head from 'next/head' + +import { NextSeo } from 'next-seo' +import { generateRss } from '~/lib/rss' +import { getSortedPosts, getAllCategories } from '~/lib/posts' +import authors from 'lib/authors.json' + +import DefaultLayout from '~/components/Layouts/Default' +import { Typography, Badge, Space, Select } from '@supabase/ui' +import PostTypes from '~/types/post' +import BlogListItem from '~/components/Blog/BlogListItem' +import BlogHeader from '~/components/Blog/BlogHeader' + +export async function getStaticProps() { + const allPostsData = getSortedPosts('_blog') + const categories = getAllCategories() + const rss = generateRss(allPostsData) + + // create a rss feed in public directory + // rss feed is added via component in render return + fs.writeFileSync('./public/case-studies-rss.xml', rss) + + return { + props: { + blogs: allPostsData, + categories, + }, + } +} + +function Blog(props: any) { + const [category, setCategory] = useState('all') + const [blogs, setBlogs] = useState(props.blogs) + + const { basePath } = useRouter() + + useEffect(() => { + // Update the document title using the browser API + setBlogs( + category === 'all' + ? props.blogs + : props.blogs.filter((post: any) => { + const found = post.tags.includes(category) + return found + }) + ) + }, [category]) + + return ( + <> + + + + + + +
+
+
+ Latests posts +
+ {props.blogs.slice(0, 2).map((blog: any, idx: any) => { + return FeaturedThumb(blog) + })} +
+
+
+
+
+
+
+ More posts from the team +
+
+ + Select a category + + +
+
+
+ {/*
    */} + {blogs.map((blog: PostTypes, idx: number) => ( + + ))} + {/*
*/} +
{' '} +
+
+
+
+ + ) +} + +function FeaturedThumb(blog: PostTypes) { + // @ts-ignore + const author = blog.author ? authors[blog.author] : authors['supabase'] + + return ( +
+ + + + +
+ + {blog.date} + • + {blog.readingTime} + + + + + {blog.title} + + + + {blog.tags && + blog.tags.map((tag: string) => ( + + + + {tag} + + + + ))} + + +
+ + {author && ( +
+ + {author.author_image_url && ( + + )} + + {author.author} + + {author.position} + + + +
+ )} + + + +
+ ) +} + +export default Blog diff --git a/www/public/case-studies-rss.xml b/www/public/case-studies-rss.xml new file mode 100644 index 00000000000..99affce0728 --- /dev/null +++ b/www/public/case-studies-rss.xml @@ -0,0 +1,524 @@ + + + + Blog - Supabase + https://supabase.io + Latest news from Supabase + en + Mon, 18 Oct 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/10/19/replenysh-time-to-value-in-less-than-24-hours + Replenysh uses Supabase to implement OTP in less than 24-hours + https://supabase.io/blog/2021/10/19/replenysh-time-to-value-in-less-than-24-hours + Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers and products. + Mon, 18 Oct 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/10/14/hacktoberfest-hackathon-winners-2021 + Hacktoberfest Hackathon Winners 2021 + https://supabase.io/blog/2021/10/14/hacktoberfest-hackathon-winners-2021 + Celebrating many amazing projects submitted to our Hacktoberfest Hackathon. + Wed, 13 Oct 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/10/04/supabase-beta-sept-2021 + Supabase Beta Sept 2021 + https://supabase.io/blog/2021/10/04/supabase-beta-sept-2021 + Hackathon, Aborting request, UI updates, and now Hiring. + Sun, 03 Oct 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/09/28/supabase-hacktoberfest-hackathon-2021 + Supabase Hacktoberfest Hackathon 2021 + https://supabase.io/blog/2021/09/28/supabase-hacktoberfest-hackathon-2021 + We're running another Supabase Hackathon during Hacktoberfest! + Mon, 27 Sep 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/09/10/supabase-beta-august-2021 + Supabase Beta August 2021 + https://supabase.io/blog/2021/09/10/supabase-beta-august-2021 + Fundraising, Realtime Security, custom SMS templates, and deployments in South Korea. + Thu, 09 Sep 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/08/12/supabase-beta-july-2021 + Supabase Beta July 2021 + https://supabase.io/blog/2021/08/12/supabase-beta-july-2021 + Discord Logins, Vercel Integration, Full text search, and OAuth guides. + Wed, 11 Aug 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/08/09/hackathon-winners + Open Source Hackathon Winners + https://supabase.io/blog/2021/08/09/hackathon-winners + Let the medal ceremony begin for the best projects submitted during the Supabase Hackathon. + Sun, 08 Aug 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/30/supabase-swag-store + Supabase Swag Store + https://supabase.io/blog/2021/07/30/supabase-swag-store + Today we are officially launching the Supabase Swag Store. + Thu, 29 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/30/supabase-functions-updates + Updates for Supabase Functions + https://supabase.io/blog/2021/07/30/supabase-functions-updates + The question on everyone's mind - are we launching Supabase Functions? Well, it's complicated. + Thu, 29 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/30/1-the-supabase-hackathon + The Supabase Hackathon + https://supabase.io/blog/2021/07/30/1-the-supabase-hackathon + A whole week of Hacking for Fun and Prizes. + Thu, 29 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/29/supabase-reports-and-metrics + Supabase Reports and Metrics + https://supabase.io/blog/2021/07/29/supabase-reports-and-metrics + We're exposing a full set of metrics in your projects, so that you can build better (and faster) products for your users. + Wed, 28 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/28/supabase-auth-passwordless-sms-login + Supabase Auth v2: Phone Auth now available + https://supabase.io/blog/2021/07/28/supabase-auth-passwordless-sms-login + Phone Auth is available today on all new and existing Supabase projects. + Tue, 27 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users + Mobbin uses Supabase to authenticate 200,000 users + https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users + Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience. + Tue, 27 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/27/storage-beta + Supabase Storage now in Beta + https://supabase.io/blog/2021/07/27/storage-beta + Supabase Storage moves into Beta. + Mon, 26 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/27/spot-flutter-with-postgres + Spot: a video sharing app built with Flutter + https://supabase.io/blog/2021/07/27/spot-flutter-with-postgres + Spot is a geolocation-based video-sharing app with some social networking features. + Mon, 26 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/26/supabase-postgres-13 + Supabase is now on Postgres 13.3 + https://supabase.io/blog/2021/07/26/supabase-postgres-13 + From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3. + Sun, 25 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/26/supabase-community-day + Supabase Community Day + https://supabase.io/blog/2021/07/26/supabase-community-day + Community Day + Sun, 25 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/26/epsilon3-self-hosting + Epsilon3 Self-Host Supabase To Revolutionize Space Operations + https://supabase.io/blog/2021/07/26/epsilon3-self-hosting + Learn how the team at Epsilon3 use Supabase to help teams execute secure and reliable operations in an industry that project spend runs into the billions. + Sun, 25 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/22/supabase-launch-week-sql + Supabase Launch Week II: The SQL + https://supabase.io/blog/2021/07/22/supabase-launch-week-sql + Five days of Supabase. Again. + Wed, 21 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/01/roles-postgres-hooks + Protecting reserved roles with PostgreSQL Hooks + https://supabase.io/blog/2021/07/01/roles-postgres-hooks + Using Postgres Hooks to protect functionality in your Postgres database. + Thu, 01 Jul 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/07/02/supabase-beta-june-2021 + Supabase Beta June 2021 + https://supabase.io/blog/2021/07/02/supabase-beta-june-2021 + Discord Logins, Vercel Integration, Full text search, and OAuth guides. + Tue, 01 Jun 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/06/02/supabase-beta-may-2021 + Supabase Beta May 2021 + https://supabase.io/blog/2021/06/02/supabase-beta-may-2021 + Apple & Twitter Logins, Supabase Grid, Go & Swift Libraries. + Tue, 01 Jun 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/05/03/supabase-beta-april-2021 + Supabase Beta April 2021 + https://supabase.io/blog/2021/05/03/supabase-beta-april-2021 + Supabase "gardening" - stability, security, and community support. + Tue, 04 May 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/04/06/supabase-beta-march-2021 + Supabase Beta March 2021 + https://supabase.io/blog/2021/04/06/supabase-beta-march-2021 + Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. + Mon, 05 Apr 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/04/02/supabase-workflows + Workflows are coming to Supabase + https://supabase.io/blog/2021/04/02/supabase-workflows + Functions are great, but you know what's better? + Thu, 01 Apr 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/04/02/supabase-pgbouncer + PgBouncer is now available in Supabase + https://supabase.io/blog/2021/04/02/supabase-pgbouncer + Better support for Serverless and Postgres. + Thu, 01 Apr 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/04/02/supabase-dot-com + Supabase Dot Com + https://supabase.io/blog/2021/04/02/supabase-dot-com + The Supabase Domain name is changing. + Thu, 01 Apr 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/04/01/supabase-nft-marketplace + Supabase Launches NFT Marketplace + https://supabase.io/blog/2021/04/01/supabase-nft-marketplace + A fully encrypted NFT platform to protect and transact your digital assets + Wed, 31 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/31/supabase-cli + Supabase CLI + https://supabase.io/blog/2021/03/31/supabase-cli + Local development, database migrations, and self-hosting. + Tue, 30 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/30/supabase-storage + Storage is now available in Supabase + https://supabase.io/blog/2021/03/30/supabase-storage + Launching Supabase Storage and how you can use it in your apps + Mon, 29 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/29/pricing + Supabase Beta Pricing + https://supabase.io/blog/2021/03/29/pricing + Supabase launches Beta pricing structure + Sun, 28 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/25/launch-week + Launch week + https://supabase.io/blog/2021/03/25/launch-week + Five days of Supabase. + Wed, 24 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/25/angels-of-supabase + Angels of Supabase + https://supabase.io/blog/2021/03/25/angels-of-supabase + Meet the investors of Supabase. + Wed, 24 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/22/In-The-Loop + Developers stay up to date with intheloop.dev + https://supabase.io/blog/2021/03/22/In-The-Loop + Learn why Kevin is building intheloop.dev with Supabase + Sun, 21 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/11/using-supabase-replit + Using Supabase in Replit + https://supabase.io/blog/2021/03/11/using-supabase-replit + Free hosted relational database from within your node.js repl + Wed, 10 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/08/toad-a-link-shortener-with-simple-apis-for-low-coders + Toad, a link shortener with simple APIs for low-coders + https://supabase.io/blog/2021/03/08/toad-a-link-shortener-with-simple-apis-for-low-coders + An easy-to-use link shortening tool with simple APIs + Sun, 07 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/05/postgres-as-a-cron-server + Postgres as a CRON Server + https://supabase.io/blog/2021/03/05/postgres-as-a-cron-server + Running repetitive tasks with your Postgres database. + Thu, 04 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/03/02/supabase-beta-february-2021 + Supabase Beta February 2021 + https://supabase.io/blog/2021/03/02/supabase-beta-february-2021 + One year of building. + Mon, 01 Mar 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/02/27/cracking-postgres-interview + Cracking PostgreSQL Interview Questions + https://supabase.io/blog/2021/02/27/cracking-postgres-interview + Understand the top PostgreSQL Interview Questions + Fri, 26 Feb 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/02/09/case-study-roboflow + Roboflow.com choose Supabase to power Paint.wtf leaderboard + https://supabase.io/blog/2021/02/09/case-study-roboflow + Learn how Roboflow.com used Supabase to build their Paint.wtf leaderboard + Mon, 08 Feb 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/02/02/supabase-beta-january-2021 + Supabase Beta January 2021 + https://supabase.io/blog/2021/02/02/supabase-beta-january-2021 + Eleven months of building. + Mon, 01 Feb 2021 16:00:00 GMT + + + + https://supabase.io/blog/2021/01/02/supabase-beta-december-2020 + Supabase Beta December 2020 + https://supabase.io/blog/2021/01/02/supabase-beta-december-2020 + Ten months of building. + Fri, 01 Jan 2021 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/13/supabase-dashboard-performance + Making the Supabase Dashboard Supa-fast + https://supabase.io/blog/2020/12/13/supabase-dashboard-performance + Improving the performance of the Supabase dashboard + Sat, 12 Dec 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/02/supabase-striveschool + Supabase Partners With Strive School To Help Teach Open Source + https://supabase.io/blog/2020/12/02/supabase-striveschool + Supabase Partners With Strive School To Help Teach Open Source To The Next Generation Of Developers + Tue, 01 Dec 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/02/case-study-xendit + Xendit Built a Counter-Fraud Watchlist for the Fintech Industry + https://supabase.io/blog/2020/12/02/case-study-xendit + See how Xendit use Supabase to build a full-text search engine. + Tue, 01 Dec 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/02/case-study-tayfa + TAYFA Built a No-Code Website Builder in Seven Days + https://supabase.io/blog/2020/12/02/case-study-tayfa + See how Tayfa went from idea to paying customer in less than 30 days. + Tue, 01 Dec 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/02/case-study-monitoro + Monitoro Built a Web Crawler Handling Millions of API Requests + https://supabase.io/blog/2020/12/02/case-study-monitoro + See how Monitoro built an automated scraping platform using Supabase. + Tue, 01 Dec 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020 + Supabase Alpha November 2020 + https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020 + Nine months of building. + Mon, 30 Nov 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/11/18/postgresql-views + Postgres Views + https://supabase.io/blog/2020/11/18/postgresql-views + Creating and using a view in PostgreSQL. + Tue, 17 Nov 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020 + Supabase Alpha October 2020 + https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020 + Eight months of building. + Sun, 01 Nov 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/10/30/improved-dx + Supabase.js 1.0 + https://supabase.io/blog/2020/10/30/improved-dx + We're releasing a new version of our Supabase client with some awesome new improvements. + Thu, 29 Oct 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020 + Supabase Alpha September 2020 + https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020 + Seven months of building. + Fri, 02 Oct 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020 + Supabase Hacktoberfest 2020 + https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020 + Join us for a celebration of open source software and learn how to contribute to Supabase. + Thu, 10 Sep 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020 + Supabase Alpha August 2020 + https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020 + Six months of building + Wed, 02 Sep 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/08/05/supabase-auth + Supabase Auth + https://supabase.io/blog/2020/08/05/supabase-auth + Authenticate and authorize your users with Supabase Auth + Tue, 04 Aug 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020 + Supabase Alpha July 2020 + https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020 + Five months of building + Sat, 01 Aug 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walg + Continuous PostgreSQL Backups using WAL-G + https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walg + Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G. + Sat, 01 Aug 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/07/10/alpha-launch-postmortem + Alpha Launch Postmortem + https://supabase.io/blog/2020/07/10/alpha-launch-postmortem + Everything that went wrong with Supabase's launch + Thu, 09 Jul 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/07/09/postgresql-templates + What are PostgreSQL Templates? + https://supabase.io/blog/2020/07/09/postgresql-templates + What are PostgreSQL templates and what are they used for? + Wed, 08 Jul 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backups + Physical vs Logical Backups in PostgreSQL + https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backups + What are physical and logical backups in Postgres? + Mon, 06 Jul 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020 + Supabase Alpha June 2020 + https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020 + Four months of building + Tue, 30 Jun 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/06/15/supabase-steve-chavez + Steve Chavez has joined Supabase + https://supabase.io/blog/2020/06/15/supabase-steve-chavez + Steve joins Supabase to help build Auth. + Sun, 14 Jun 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020 + Supabase Alpha May 2020 + https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020 + Three months of building + Sun, 31 May 2020 16:00:00 GMT + + + + https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020 + Supabase Alpha April 2020 + https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020 + Two months of building + Sun, 31 May 2020 16:00:00 GMT + + + + From 20014a1185972b6153cb13034d514c2c1b924c10 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Thu, 28 Oct 2021 22:28:34 +0800 Subject: [PATCH 002/166] chore: start amending blog post lib to also work with case studies --- www/lib/posts.tsx | 21 +- www/pages/blog.tsx | 2 +- .../blog/[year]/[month]/[day]/[slug].tsx | 8 +- www/pages/case-studies/index.tsx | 91 +--- www/public/case-studies-rss.xml | 510 +----------------- 5 files changed, 32 insertions(+), 600 deletions(-) diff --git a/www/lib/posts.tsx b/www/lib/posts.tsx index 5a2068b9314..fc5b4bb025a 100644 --- a/www/lib/posts.tsx +++ b/www/lib/posts.tsx @@ -7,10 +7,10 @@ import { generateReadingTime } from './helpers' // based on YYYY-MM-DD format const FILENAME_SUBSTRING = 11 -//Finding directory named "blog" from the current working directory of Node. -const postDirectory = path.join(process.cwd(), '_blog') +export const getSortedPosts = (directory: string, limit?: number, tags?: any) => { + //Finding directory named "blog" from the current working directory of Node. + const postDirectory = path.join(process.cwd(), directory) -export const getSortedPosts = (limit?: number, tags?: any) => { //Reads all the files in the post directory const fileNames = fs.readdirSync(postDirectory) @@ -67,7 +67,10 @@ export const getSortedPosts = (limit?: number, tags?: any) => { } // Get Slugs -export const getAllPostSlugs = () => { +export const getAllPostSlugs = (directory: string) => { + //Finding directory named "blog" from the current working directory of Node. + const postDirectory = path.join(process.cwd(), directory) + const fileNames = fs.readdirSync(postDirectory) return fileNames.map((filename) => { @@ -81,15 +84,19 @@ export const getAllPostSlugs = () => { } // Get Post based on Slug -export const getPostdata = async (slug: string) => { +export const getPostdata = async (slug: string, directory: string) => { + //Finding directory named "blog" from the current working directory of Node. + const postDirectory = path.join(process.cwd(), directory) + const fullPath = path.join(postDirectory, `${slug}.mdx`) + const postContent = fs.readFileSync(fullPath, 'utf8') return postContent } -export const getAllCategories = () => { - const posts = getSortedPosts() +export const getAllCategories = (directory: string) => { + const posts = getSortedPosts(directory) let categories: any = [] posts.map((post: any) => { diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index e67b6a67912..eebf9a6642b 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -17,7 +17,7 @@ import BlogHeader from '~/components/Blog/BlogHeader' export async function getStaticProps() { const allPostsData = getSortedPosts('_blog') - const categories = getAllCategories() + const categories = getAllCategories('_blog') const rss = generateRss(allPostsData) // create a rss feed in public directory diff --git a/www/pages/blog/[year]/[month]/[day]/[slug].tsx b/www/pages/blog/[year]/[month]/[day]/[slug].tsx index aa29838183b..8bd2265af5c 100644 --- a/www/pages/blog/[year]/[month]/[day]/[slug].tsx +++ b/www/pages/blog/[year]/[month]/[day]/[slug].tsx @@ -35,7 +35,7 @@ const slug = require('rehype-slug') const toc = require('markdown-toc') export async function getStaticPaths() { - const paths = getAllPostSlugs() + const paths = getAllPostSlugs('_blog') return { paths, fallback: false, @@ -44,7 +44,7 @@ export async function getStaticPaths() { export async function getStaticProps({ params }: any) { const filePath = `${params.year}-${params.month}-${params.day}-${params.slug}` - const postContent = await getPostdata(filePath) + const postContent = await getPostdata(filePath, '_blog') const { data, content } = matter(postContent) const mdxSource: any = await renderToString(content, { @@ -56,9 +56,9 @@ export async function getStaticProps({ params }: any) { }, }) - const relatedPosts = getSortedPosts(5, mdxSource.scope.tags) + const relatedPosts = getSortedPosts('_blog', 5, mdxSource.scope.tags) - const allPosts = getSortedPosts() + const allPosts = getSortedPosts('_blog') const currentIndex = allPosts .map(function (e) { diff --git a/www/pages/case-studies/index.tsx b/www/pages/case-studies/index.tsx index 8cf41e319ba..ee5864363be 100644 --- a/www/pages/case-studies/index.tsx +++ b/www/pages/case-studies/index.tsx @@ -16,8 +16,8 @@ import BlogListItem from '~/components/Blog/BlogListItem' import BlogHeader from '~/components/Blog/BlogHeader' export async function getStaticProps() { - const allPostsData = getSortedPosts('_blog') - const categories = getAllCategories() + const allPostsData = getSortedPosts('_casestudies') + const categories = getAllCategories('_casestudies') const rss = generateRss(allPostsData) // create a rss feed in public directory @@ -50,6 +50,13 @@ function Blog(props: any) { ) }, [category]) + const caseStudyThumbs = blogs.map((blog: PostTypes, idx: number) => { + return { + image: '/image/asds', + name: 'dsad ', + } + }) + return ( <> @@ -64,16 +71,6 @@ function Blog(props: any) {
-
-
- Latests posts -
- {props.blogs.slice(0, 2).map((blog: any, idx: any) => { - return FeaturedThumb(blog) - })} -
-
-
@@ -100,13 +97,7 @@ function Blog(props: any) {
-
- {/*
    */} - {blogs.map((blog: PostTypes, idx: number) => ( - - ))} - {/*
*/} -
{' '} +
@@ -115,66 +106,4 @@ function Blog(props: any) { ) } -function FeaturedThumb(blog: PostTypes) { - // @ts-ignore - const author = blog.author ? authors[blog.author] : authors['supabase'] - - return ( -
- - - - - - - {author && ( -
- - {author.author_image_url && ( - - )} - - {author.author} - - {author.position} - - - -
- )} - - - -
- ) -} - export default Blog diff --git a/www/public/case-studies-rss.xml b/www/public/case-studies-rss.xml index 99affce0728..c7db88e5ce1 100644 --- a/www/public/case-studies-rss.xml +++ b/www/public/case-studies-rss.xml @@ -5,517 +5,13 @@ https://supabase.io Latest news from Supabase en - Mon, 18 Oct 2021 16:00:00 GMT + Sun, 31 May 2020 16:00:00 GMT - https://supabase.io/blog/2021/10/19/replenysh-time-to-value-in-less-than-24-hours - Replenysh uses Supabase to implement OTP in less than 24-hours - https://supabase.io/blog/2021/10/19/replenysh-time-to-value-in-less-than-24-hours - Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers and products. - Mon, 18 Oct 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/10/14/hacktoberfest-hackathon-winners-2021 - Hacktoberfest Hackathon Winners 2021 - https://supabase.io/blog/2021/10/14/hacktoberfest-hackathon-winners-2021 - Celebrating many amazing projects submitted to our Hacktoberfest Hackathon. - Wed, 13 Oct 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/10/04/supabase-beta-sept-2021 - Supabase Beta Sept 2021 - https://supabase.io/blog/2021/10/04/supabase-beta-sept-2021 - Hackathon, Aborting request, UI updates, and now Hiring. - Sun, 03 Oct 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/09/28/supabase-hacktoberfest-hackathon-2021 - Supabase Hacktoberfest Hackathon 2021 - https://supabase.io/blog/2021/09/28/supabase-hacktoberfest-hackathon-2021 - We're running another Supabase Hackathon during Hacktoberfest! - Mon, 27 Sep 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/09/10/supabase-beta-august-2021 - Supabase Beta August 2021 - https://supabase.io/blog/2021/09/10/supabase-beta-august-2021 - Fundraising, Realtime Security, custom SMS templates, and deployments in South Korea. - Thu, 09 Sep 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/08/12/supabase-beta-july-2021 - Supabase Beta July 2021 - https://supabase.io/blog/2021/08/12/supabase-beta-july-2021 - Discord Logins, Vercel Integration, Full text search, and OAuth guides. - Wed, 11 Aug 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/08/09/hackathon-winners - Open Source Hackathon Winners - https://supabase.io/blog/2021/08/09/hackathon-winners - Let the medal ceremony begin for the best projects submitted during the Supabase Hackathon. - Sun, 08 Aug 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/30/supabase-swag-store - Supabase Swag Store - https://supabase.io/blog/2021/07/30/supabase-swag-store - Today we are officially launching the Supabase Swag Store. - Thu, 29 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/30/supabase-functions-updates - Updates for Supabase Functions - https://supabase.io/blog/2021/07/30/supabase-functions-updates - The question on everyone's mind - are we launching Supabase Functions? Well, it's complicated. - Thu, 29 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/30/1-the-supabase-hackathon - The Supabase Hackathon - https://supabase.io/blog/2021/07/30/1-the-supabase-hackathon - A whole week of Hacking for Fun and Prizes. - Thu, 29 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/29/supabase-reports-and-metrics - Supabase Reports and Metrics - https://supabase.io/blog/2021/07/29/supabase-reports-and-metrics - We're exposing a full set of metrics in your projects, so that you can build better (and faster) products for your users. - Wed, 28 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/28/supabase-auth-passwordless-sms-login - Supabase Auth v2: Phone Auth now available - https://supabase.io/blog/2021/07/28/supabase-auth-passwordless-sms-login - Phone Auth is available today on all new and existing Supabase projects. - Tue, 27 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users - Mobbin uses Supabase to authenticate 200,000 users - https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users - Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience. - Tue, 27 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/27/storage-beta - Supabase Storage now in Beta - https://supabase.io/blog/2021/07/27/storage-beta - Supabase Storage moves into Beta. - Mon, 26 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/27/spot-flutter-with-postgres - Spot: a video sharing app built with Flutter - https://supabase.io/blog/2021/07/27/spot-flutter-with-postgres - Spot is a geolocation-based video-sharing app with some social networking features. - Mon, 26 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/26/supabase-postgres-13 - Supabase is now on Postgres 13.3 - https://supabase.io/blog/2021/07/26/supabase-postgres-13 - From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3. - Sun, 25 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/26/supabase-community-day - Supabase Community Day - https://supabase.io/blog/2021/07/26/supabase-community-day - Community Day - Sun, 25 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/26/epsilon3-self-hosting - Epsilon3 Self-Host Supabase To Revolutionize Space Operations - https://supabase.io/blog/2021/07/26/epsilon3-self-hosting - Learn how the team at Epsilon3 use Supabase to help teams execute secure and reliable operations in an industry that project spend runs into the billions. - Sun, 25 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/22/supabase-launch-week-sql - Supabase Launch Week II: The SQL - https://supabase.io/blog/2021/07/22/supabase-launch-week-sql - Five days of Supabase. Again. - Wed, 21 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/01/roles-postgres-hooks - Protecting reserved roles with PostgreSQL Hooks - https://supabase.io/blog/2021/07/01/roles-postgres-hooks - Using Postgres Hooks to protect functionality in your Postgres database. - Thu, 01 Jul 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/07/02/supabase-beta-june-2021 - Supabase Beta June 2021 - https://supabase.io/blog/2021/07/02/supabase-beta-june-2021 - Discord Logins, Vercel Integration, Full text search, and OAuth guides. - Tue, 01 Jun 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/06/02/supabase-beta-may-2021 - Supabase Beta May 2021 - https://supabase.io/blog/2021/06/02/supabase-beta-may-2021 - Apple & Twitter Logins, Supabase Grid, Go & Swift Libraries. - Tue, 01 Jun 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/05/03/supabase-beta-april-2021 - Supabase Beta April 2021 - https://supabase.io/blog/2021/05/03/supabase-beta-april-2021 - Supabase "gardening" - stability, security, and community support. - Tue, 04 May 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/04/06/supabase-beta-march-2021 - Supabase Beta March 2021 - https://supabase.io/blog/2021/04/06/supabase-beta-march-2021 - Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. - Mon, 05 Apr 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/04/02/supabase-workflows - Workflows are coming to Supabase - https://supabase.io/blog/2021/04/02/supabase-workflows - Functions are great, but you know what's better? - Thu, 01 Apr 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/04/02/supabase-pgbouncer - PgBouncer is now available in Supabase - https://supabase.io/blog/2021/04/02/supabase-pgbouncer - Better support for Serverless and Postgres. - Thu, 01 Apr 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/04/02/supabase-dot-com - Supabase Dot Com - https://supabase.io/blog/2021/04/02/supabase-dot-com - The Supabase Domain name is changing. - Thu, 01 Apr 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/04/01/supabase-nft-marketplace - Supabase Launches NFT Marketplace - https://supabase.io/blog/2021/04/01/supabase-nft-marketplace - A fully encrypted NFT platform to protect and transact your digital assets - Wed, 31 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/31/supabase-cli - Supabase CLI - https://supabase.io/blog/2021/03/31/supabase-cli - Local development, database migrations, and self-hosting. - Tue, 30 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/30/supabase-storage - Storage is now available in Supabase - https://supabase.io/blog/2021/03/30/supabase-storage - Launching Supabase Storage and how you can use it in your apps - Mon, 29 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/29/pricing - Supabase Beta Pricing - https://supabase.io/blog/2021/03/29/pricing - Supabase launches Beta pricing structure - Sun, 28 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/25/launch-week - Launch week - https://supabase.io/blog/2021/03/25/launch-week - Five days of Supabase. - Wed, 24 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/25/angels-of-supabase - Angels of Supabase - https://supabase.io/blog/2021/03/25/angels-of-supabase - Meet the investors of Supabase. - Wed, 24 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/22/In-The-Loop - Developers stay up to date with intheloop.dev - https://supabase.io/blog/2021/03/22/In-The-Loop - Learn why Kevin is building intheloop.dev with Supabase - Sun, 21 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/11/using-supabase-replit - Using Supabase in Replit - https://supabase.io/blog/2021/03/11/using-supabase-replit - Free hosted relational database from within your node.js repl - Wed, 10 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/08/toad-a-link-shortener-with-simple-apis-for-low-coders - Toad, a link shortener with simple APIs for low-coders - https://supabase.io/blog/2021/03/08/toad-a-link-shortener-with-simple-apis-for-low-coders - An easy-to-use link shortening tool with simple APIs - Sun, 07 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/05/postgres-as-a-cron-server - Postgres as a CRON Server - https://supabase.io/blog/2021/03/05/postgres-as-a-cron-server - Running repetitive tasks with your Postgres database. - Thu, 04 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/03/02/supabase-beta-february-2021 - Supabase Beta February 2021 - https://supabase.io/blog/2021/03/02/supabase-beta-february-2021 - One year of building. - Mon, 01 Mar 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/02/27/cracking-postgres-interview - Cracking PostgreSQL Interview Questions - https://supabase.io/blog/2021/02/27/cracking-postgres-interview - Understand the top PostgreSQL Interview Questions - Fri, 26 Feb 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/02/09/case-study-roboflow - Roboflow.com choose Supabase to power Paint.wtf leaderboard - https://supabase.io/blog/2021/02/09/case-study-roboflow - Learn how Roboflow.com used Supabase to build their Paint.wtf leaderboard - Mon, 08 Feb 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/02/02/supabase-beta-january-2021 - Supabase Beta January 2021 - https://supabase.io/blog/2021/02/02/supabase-beta-january-2021 - Eleven months of building. - Mon, 01 Feb 2021 16:00:00 GMT - - - - https://supabase.io/blog/2021/01/02/supabase-beta-december-2020 - Supabase Beta December 2020 - https://supabase.io/blog/2021/01/02/supabase-beta-december-2020 - Ten months of building. - Fri, 01 Jan 2021 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/13/supabase-dashboard-performance - Making the Supabase Dashboard Supa-fast - https://supabase.io/blog/2020/12/13/supabase-dashboard-performance - Improving the performance of the Supabase dashboard - Sat, 12 Dec 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/02/supabase-striveschool - Supabase Partners With Strive School To Help Teach Open Source - https://supabase.io/blog/2020/12/02/supabase-striveschool - Supabase Partners With Strive School To Help Teach Open Source To The Next Generation Of Developers - Tue, 01 Dec 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/02/case-study-xendit - Xendit Built a Counter-Fraud Watchlist for the Fintech Industry - https://supabase.io/blog/2020/12/02/case-study-xendit - See how Xendit use Supabase to build a full-text search engine. - Tue, 01 Dec 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/02/case-study-tayfa - TAYFA Built a No-Code Website Builder in Seven Days - https://supabase.io/blog/2020/12/02/case-study-tayfa - See how Tayfa went from idea to paying customer in less than 30 days. - Tue, 01 Dec 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/02/case-study-monitoro - Monitoro Built a Web Crawler Handling Millions of API Requests - https://supabase.io/blog/2020/12/02/case-study-monitoro - See how Monitoro built an automated scraping platform using Supabase. - Tue, 01 Dec 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020 - Supabase Alpha November 2020 - https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020 - Nine months of building. - Mon, 30 Nov 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/11/18/postgresql-views - Postgres Views - https://supabase.io/blog/2020/11/18/postgresql-views - Creating and using a view in PostgreSQL. - Tue, 17 Nov 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020 - Supabase Alpha October 2020 - https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020 - Eight months of building. - Sun, 01 Nov 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/10/30/improved-dx - Supabase.js 1.0 - https://supabase.io/blog/2020/10/30/improved-dx - We're releasing a new version of our Supabase client with some awesome new improvements. - Thu, 29 Oct 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020 - Supabase Alpha September 2020 - https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020 - Seven months of building. - Fri, 02 Oct 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020 - Supabase Hacktoberfest 2020 - https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020 - Join us for a celebration of open source software and learn how to contribute to Supabase. - Thu, 10 Sep 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020 - Supabase Alpha August 2020 - https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020 - Six months of building - Wed, 02 Sep 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/08/05/supabase-auth - Supabase Auth - https://supabase.io/blog/2020/08/05/supabase-auth - Authenticate and authorize your users with Supabase Auth - Tue, 04 Aug 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020 - Supabase Alpha July 2020 - https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020 - Five months of building - Sat, 01 Aug 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walg - Continuous PostgreSQL Backups using WAL-G - https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walg - Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G. - Sat, 01 Aug 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/07/10/alpha-launch-postmortem - Alpha Launch Postmortem - https://supabase.io/blog/2020/07/10/alpha-launch-postmortem - Everything that went wrong with Supabase's launch - Thu, 09 Jul 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/07/09/postgresql-templates - What are PostgreSQL Templates? - https://supabase.io/blog/2020/07/09/postgresql-templates - What are PostgreSQL templates and what are they used for? - Wed, 08 Jul 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backups - Physical vs Logical Backups in PostgreSQL - https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backups - What are physical and logical backups in Postgres? - Mon, 06 Jul 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020 - Supabase Alpha June 2020 - https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020 - Four months of building - Tue, 30 Jun 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/06/15/supabase-steve-chavez - Steve Chavez has joined Supabase - https://supabase.io/blog/2020/06/15/supabase-steve-chavez - Steve joins Supabase to help build Auth. - Sun, 14 Jun 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020 - Supabase Alpha May 2020 - https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020 - Three months of building - Sun, 31 May 2020 16:00:00 GMT - - - - https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020 + https://supabase.io/blog/verc/l./dx/ Supabase Alpha April 2020 - https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020 + https://supabase.io/blog/verc/l./dx/ Two months of building Sun, 31 May 2020 16:00:00 GMT From 1839f712e269918e81cc4a65469211863370b9ee Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Thu, 28 Oct 2021 22:29:10 +0800 Subject: [PATCH 003/166] chore: add ImageGrid component --- www/components/ImageGrid.tsx | 78 ++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 www/components/ImageGrid.tsx diff --git a/www/components/ImageGrid.tsx b/www/components/ImageGrid.tsx new file mode 100644 index 00000000000..9283d82a1a1 --- /dev/null +++ b/www/components/ImageGrid.tsx @@ -0,0 +1,78 @@ +import { useRouter } from 'next/router' +import Image from 'next/image' + +interface iImages { + name: string + image: string + alt?: string +} + +type colSizes = 8 | 6 | 4 | 3 + +interface iImageGrid { + images: iImages[] + smCols?: colSizes + mdCols?: colSizes + lgCols?: colSizes +} + +const ImageGrid = ({ images, smCols = 3, mdCols = 6, lgCols = 8 }: iImageGrid) => { + const smBreakpoint = { + 3: 'grid-cols-3', + 4: 'grid-cols-4', + 6: 'grid-cols-6', + 8: 'grid-cols-8', + } + + const mdBreakpoint = { + 3: 'md:grid-cols-3', + 4: 'md:grid-cols-4', + 6: 'md:grid-cols-6', + 8: 'md:grid-cols-8', + } + + const lgBreakpoint = { + 3: 'lg:grid-cols-3', + 4: 'lg:grid-cols-4', + 6: 'lg:grid-cols-6', + 8: 'lg:grid-cols-8', + } + + return ( +
+ {images.map((x, i) => { + return ( +
+
+ {x.alt} +
+
+ ) + })} +
+ ) +} + +export default ImageGrid From 3e8e10f7ee4c510d79cee4432c6793787d02fca2 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Thu, 28 Oct 2021 22:31:49 +0800 Subject: [PATCH 004/166] chore: amend frontmatter --- www/_casestudies/vercel.mdx | 7 ++++--- www/pages/case-studies/index.tsx | 7 ++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/www/_casestudies/vercel.mdx b/www/_casestudies/vercel.mdx index f9ee4ea55af..5bf93d49196 100644 --- a/www/_casestudies/vercel.mdx +++ b/www/_casestudies/vercel.mdx @@ -1,14 +1,15 @@ --- -title: Supabase Alpha April 2020 +title: Vercel description: Two months of building -author: paul_copplestone +author: rory_wilding author_title: Supabase author_url: https://github.com/kiwicopple author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 authorURL: https://github.com/kiwicopple +company_logo: tags: - supabase -date: '06-01-2020' +date: '28-10-2020' --- Now in [Supabase](https://app.supabase.io): diff --git a/www/pages/case-studies/index.tsx b/www/pages/case-studies/index.tsx index ee5864363be..97428c20828 100644 --- a/www/pages/case-studies/index.tsx +++ b/www/pages/case-studies/index.tsx @@ -14,6 +14,7 @@ import { Typography, Badge, Space, Select } from '@supabase/ui' import PostTypes from '~/types/post' import BlogListItem from '~/components/Blog/BlogListItem' import BlogHeader from '~/components/Blog/BlogHeader' +import ImageGrid from '~/components/ImageGrid' export async function getStaticProps() { const allPostsData = getSortedPosts('_casestudies') @@ -57,6 +58,8 @@ function Blog(props: any) { } }) + console.log(caseStudyThumbs) + return ( <> @@ -97,7 +100,9 @@ function Blog(props: any) { -
+
+ +
From b043ed175e9d883c300243160462cd7925efe8d2 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 5 Nov 2021 00:13:46 +0800 Subject: [PATCH 005/166] chore: initial changes to support case study pages --- www/_case-studies/xendit copy 2.mdx | 39 +++ www/_case-studies/xendit copy 3.mdx | 39 +++ www/_case-studies/xendit copy 4.mdx | 39 +++ www/_case-studies/xendit copy 5.mdx | 39 +++ www/_case-studies/xendit copy.mdx | 39 +++ www/_case-studies/xendit.mdx | 39 +++ www/_casestudies/vercel.mdx | 30 -- www/components/ImageGrid.tsx | 77 ++++- www/lib/posts.tsx | 38 ++- .../blog/[year]/[month]/[day]/[slug].tsx | 2 + .../index.tsx => case-studies.tsx} | 49 ++- www/pages/case-studies/[slug].module.css | 46 +++ www/pages/case-studies/[slug].tsx | 299 ++++++++++++++++++ www/public/case-studies-rss.xml | 50 ++- .../images/case-studies/logos/netlify.png | Bin 0 -> 43108 bytes .../images/case-studies/logos/vercel.png | Bin 0 -> 161541 bytes .../images/case-studies/logos/xendit.png | Bin 0 -> 22125 bytes www/types/post.ts | 1 + 18 files changed, 737 insertions(+), 89 deletions(-) create mode 100644 www/_case-studies/xendit copy 2.mdx create mode 100644 www/_case-studies/xendit copy 3.mdx create mode 100644 www/_case-studies/xendit copy 4.mdx create mode 100644 www/_case-studies/xendit copy 5.mdx create mode 100644 www/_case-studies/xendit copy.mdx create mode 100644 www/_case-studies/xendit.mdx delete mode 100644 www/_casestudies/vercel.mdx rename www/pages/{case-studies/index.tsx => case-studies.tsx} (60%) create mode 100644 www/pages/case-studies/[slug].module.css create mode 100644 www/pages/case-studies/[slug].tsx create mode 100644 www/public/images/case-studies/logos/netlify.png create mode 100644 www/public/images/case-studies/logos/vercel.png create mode 100644 www/public/images/case-studies/logos/xendit.png diff --git a/www/_case-studies/xendit copy 2.mdx b/www/_case-studies/xendit copy 2.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit copy 2.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit copy 3.mdx b/www/_case-studies/xendit copy 3.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit copy 3.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit copy 4.mdx b/www/_case-studies/xendit copy 4.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit copy 4.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit copy 5.mdx b/www/_case-studies/xendit copy 5.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit copy 5.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit copy.mdx b/www/_case-studies/xendit copy.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit copy.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit.mdx b/www/_case-studies/xendit.mdx new file mode 100644 index 00000000000..c7d0bbc1354 --- /dev/null +++ b/www/_case-studies/xendit.mdx @@ -0,0 +1,39 @@ +--- +title: Xendit +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/xendit.png +tags: + - supabase +date: '28-10-2020' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +### Challenge + +As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. + +### Why they chose Supabase + +Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. + +### What they built + +Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. + +Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. + +> The full solution was built and in production in less than one week. + +Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_casestudies/vercel.mdx b/www/_casestudies/vercel.mdx deleted file mode 100644 index 5bf93d49196..00000000000 --- a/www/_casestudies/vercel.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Vercel -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -company_logo: -tags: - - supabase -date: '28-10-2020' ---- - -Now in [Supabase](https://app.supabase.io): - -- Set up Postgres in less than 2 minutes -- Auto-generated APIs! (they are a bit flaky, go easy) -- Query your database directly from the dashboard -- Analyze your queries and make them faster :rocket: - - diff --git a/www/components/ImageGrid.tsx b/www/components/ImageGrid.tsx index 9283d82a1a1..ee0604954c4 100644 --- a/www/components/ImageGrid.tsx +++ b/www/components/ImageGrid.tsx @@ -1,22 +1,34 @@ import { useRouter } from 'next/router' import Image from 'next/image' +import Link from 'next/link' interface iImages { name: string image: string alt?: string + link?: string } type colSizes = 8 | 6 | 4 | 3 +type paddingSizes = 6 | 8 | 12 interface iImageGrid { images: iImages[] smCols?: colSizes mdCols?: colSizes lgCols?: colSizes + padding?: paddingSizes + className?: string } -const ImageGrid = ({ images, smCols = 3, mdCols = 6, lgCols = 8 }: iImageGrid) => { +const ImageGrid = ({ + images, + smCols = 3, + mdCols = 6, + lgCols = 8, + padding = 8, + className, +}: iImageGrid) => { const smBreakpoint = { 3: 'grid-cols-3', 4: 'grid-cols-4', @@ -38,6 +50,12 @@ const ImageGrid = ({ images, smCols = 3, mdCols = 6, lgCols = 8 }: iImageGrid) = 8: 'lg:grid-cols-8', } + const imgPadding = { + 6: 'h-6 ', + 8: 'h-8 ', + 12: 'h-12 ', + } + return (
{images.map((x, i) => { + const Container = ({ children, link }: any) => { + if (x.link) { + return ( + +
+ {children} +
+ + ) + } else { + return children + } + } + return ( -
-
- {x.alt} -
-
+ /> +
+ + + ) })} diff --git a/www/lib/posts.tsx b/www/lib/posts.tsx index fc5b4bb025a..27c0a998491 100644 --- a/www/lib/posts.tsx +++ b/www/lib/posts.tsx @@ -7,7 +7,9 @@ import { generateReadingTime } from './helpers' // based on YYYY-MM-DD format const FILENAME_SUBSTRING = 11 -export const getSortedPosts = (directory: string, limit?: number, tags?: any) => { +type Directories = '_blog' | '_case-studies' + +export const getSortedPosts = (directory: Directories, limit?: number, tags?: any) => { //Finding directory named "blog" from the current working directory of Node. const postDirectory = path.join(process.cwd(), directory) @@ -18,8 +20,11 @@ export const getSortedPosts = (directory: string, limit?: number, tags?: any) => let allPostsData = fileNames.map((filename) => { const slug = filename.replace('.mdx', '') + // console.log('slug', slug) const fullPath = path.join(postDirectory, filename) + // console.log('fullPath', fullPath) + //Extracts contents of the MDX file const fileContents = fs.readFileSync(fullPath, 'utf8') const { data, content } = matter(fileContents) @@ -28,11 +33,17 @@ export const getSortedPosts = (directory: string, limit?: number, tags?: any) => const formattedDate = new Date(data.date).toLocaleDateString('en-IN', options) const readingTime = generateReadingTime(content) - const dates = getDatesFromFileName(filename) // construct url to link to blog posts // based on datestamp in file name - const url = `${dates.year}/${dates.month}/${dates.day}/${slug.substring(FILENAME_SUBSTRING)}` + let url = '' + if (directory === '_blog') { + const dates = getDatesFromFileName(filename) + url = `${dates.year}/${dates.month}/${dates.day}/${slug.substring(FILENAME_SUBSTRING)}` + } else { + // console.log(slug.substring(FILENAME_SUBSTRING)) + url = `/${directory.replace('_', '')}/${slug}` + } const frontmatter = { ...data, @@ -67,20 +78,33 @@ export const getSortedPosts = (directory: string, limit?: number, tags?: any) => } // Get Slugs -export const getAllPostSlugs = (directory: string) => { +export const getAllPostSlugs = (directory: Directories) => { //Finding directory named "blog" from the current working directory of Node. const postDirectory = path.join(process.cwd(), directory) const fileNames = fs.readdirSync(postDirectory) - return fileNames.map((filename) => { + const files = fileNames.map((filename) => { + const dates = + directory === '_blog' + ? getDatesFromFileName(filename) + : { + year: '2021', + month: '04', + day: '02', + } + return { params: { - slug: filename.replace('.mdx', '').substring(FILENAME_SUBSTRING), - ...getDatesFromFileName(filename), + ...dates, + slug: filename + .replace('.mdx', '') + .substring(directory === '_blog' ? FILENAME_SUBSTRING : 0), }, } }) + + return files } // Get Post based on Slug diff --git a/www/pages/blog/[year]/[month]/[day]/[slug].tsx b/www/pages/blog/[year]/[month]/[day]/[slug].tsx index 289977cdd61..b2eeeeac618 100644 --- a/www/pages/blog/[year]/[month]/[day]/[slug].tsx +++ b/www/pages/blog/[year]/[month]/[day]/[slug].tsx @@ -44,6 +44,8 @@ export async function getStaticPaths() { } export async function getStaticProps({ params }: any) { + console.log('params', params) + const filePath = `${params.year}-${params.month}-${params.day}-${params.slug}` const postContent = await getPostdata(filePath, '_blog') const { data, content } = matter(postContent) diff --git a/www/pages/case-studies/index.tsx b/www/pages/case-studies.tsx similarity index 60% rename from www/pages/case-studies/index.tsx rename to www/pages/case-studies.tsx index 97428c20828..9ee3204f554 100644 --- a/www/pages/case-studies/index.tsx +++ b/www/pages/case-studies.tsx @@ -17,8 +17,8 @@ import BlogHeader from '~/components/Blog/BlogHeader' import ImageGrid from '~/components/ImageGrid' export async function getStaticProps() { - const allPostsData = getSortedPosts('_casestudies') - const categories = getAllCategories('_casestudies') + const allPostsData = getSortedPosts('_case-studies') + const categories = getAllCategories('_case-studies') const rss = generateRss(allPostsData) // create a rss feed in public directory @@ -51,14 +51,17 @@ function Blog(props: any) { ) }, [category]) + console.log(blogs) + const caseStudyThumbs = blogs.map((blog: PostTypes, idx: number) => { return { - image: '/image/asds', - name: 'dsad ', + image: blog.logo, + name: blog.title, + link: blog.url, } }) - console.log(caseStudyThumbs) + // console.log('caseStudyThumbs', caseStudyThumbs) return ( <> @@ -72,36 +75,20 @@ function Blog(props: any) { - -
+
-
-
- More posts from the team -
-
- - Select a category - - -
+
+ Case studies + +

+ Learn how teams behind everyone’s favorite products use Radix to save time, + boost quality, and set the bar for accessibility. +

+
- +
diff --git a/www/pages/case-studies/[slug].module.css b/www/pages/case-studies/[slug].module.css new file mode 100644 index 00000000000..66da7170e6c --- /dev/null +++ b/www/pages/case-studies/[slug].module.css @@ -0,0 +1,46 @@ +.toc a { + text-decoration: none !important; + font-weight: 400 !important; +} + +.toc > ul > li { + padding-left: 0 !important; +} + +.toc li { + @apply text-sm !important; + padding-left: 1rem !important; +} + +.toc ul > li:before { + content: ''; + position: absolute; + background-color: none; + border-radius: 50%; + width: 0 !important; + height: 0 !important; + top: 0.6875em; + left: 0.25em; +} + +.header:hover svg, +.header svg:hover { + display: inline-block; +} + +.article h1, +.article h2, +.article h3, +.article h4, +.article h5 { + font-weight: 500 !important; +} + +.article { + @apply mb-16; +} + +.article > div > pre { + padding: 0; + background: none; +} diff --git a/www/pages/case-studies/[slug].tsx b/www/pages/case-studies/[slug].tsx new file mode 100644 index 00000000000..1f334466e6f --- /dev/null +++ b/www/pages/case-studies/[slug].tsx @@ -0,0 +1,299 @@ +import { + Badge, + Card, + Divider, + IconFile, + Space, + Typography, + Button, + IconChevronRight, + IconChevronLeft, +} from '@supabase/ui' +import matter from 'gray-matter' +import authors from 'lib/authors.json' +import hydrate from 'next-mdx-remote/hydrate' +import renderToString from 'next-mdx-remote/render-to-string' +import { NextSeo } from 'next-seo' +import Link from 'next/link' +import { useRouter } from 'next/router' +import React from 'react' +import ReactMarkdown from 'react-markdown' +import CodeBlock from '~/components/CodeBlock/CodeBlock' +import CTABanner from '~/components/CTABanner' +import DefaultLayout from '~/components/Layouts/Default' +import Quote from '~/components/Quote' +import ImageGrid from '~/components/ImageGrid' +import { generateReadingTime } from '~/lib/helpers' +import { getAllPostSlugs, getPostdata, getSortedPosts } from '~/lib/posts' +import blogStyles from './[slug].module.css' +import Image from 'next/image' + +// import all components used in blog articles here +// for instance, if you use a button, you must add `Button` in the components object below. +const components = { + CodeBlock, + Quote, + code: (props: any) => { + return + }, + ImageGrid, +} + +// plugins for next-mdx-remote +const gfm = require('remark-gfm') +const slug = require('rehype-slug') + +// table of contents extractor +const toc = require('markdown-toc') + +export async function getStaticPaths() { + const paths = getAllPostSlugs('_case-studies') + console.log('paths', paths) + return { + paths, + fallback: false, + } +} + +export async function getStaticProps({ params }: any) { + console.log('params', params) + + const filePath = `${params.slug}` + const postContent = await getPostdata(filePath, '_case-studies') + const { data, content } = matter(postContent) + + const mdxSource: any = await renderToString(content, { + components, + scope: data, + mdxOptions: { + remarkPlugins: [gfm], + rehypePlugins: [slug], + }, + }) + + const relatedPosts = getSortedPosts('_case-studies', 5, mdxSource.scope.tags) + + const allPosts = getSortedPosts('_case-studies') + + const currentIndex = allPosts + .map(function (e) { + return e.slug + }) + .indexOf(filePath) + + const nextPost = allPosts[currentIndex + 1] + const prevPost = allPosts[currentIndex - 1] + + const payload = { + props: { + prevPost: currentIndex === 0 ? null : prevPost ? prevPost : null, + nextPost: currentIndex === allPosts.length ? null : nextPost ? nextPost : null, + relatedPosts, + blog: { + slug: `${params.year}/${params.month}/${params.day}/${params.slug}`, + content: mdxSource, + ...data, + toc: toc(content, { maxdepth: data.toc_depth ? data.toc_depth : 2 }), + }, + }, + } + + console.log(payload) + return payload +} + +function BlogPostPage(props: any) { + // @ts-ignore + const author = props.blog.author ? authors[props.blog.author] : authors['supabase'] + const content = hydrate(props.blog.content, { components }) + + const { basePath } = useRouter() + + const NextCard = (props: any) => { + const { post, label, className } = props + return ( + +
+ + +
+ {label} +
+
+ {post.title} + {post.date} +
+
+ {post.tags.map((tag: string) => { + return {tag} + })} +
+
+
+
+ + ) + } + + return ( + <> + + +
+
+
+ + + + Back + + +
+
+ {/* Title and description */} +
+ Case study + {props.blog.title} +
+ {/* Quote can go here */} +
+ {/* Content */} +
+
+ {content} +
+
+ {/* Sidebar */} +
+ {/* Logo */} +
+ {`${props.blog.title} +
+ +
+ About + {props.blog.about} +
+ {props.blog.misc.map((x: any) => { + return ( +
+ {x.label} + {x.text} +
+ ) + })} +
+ {props.blog.stats.map((x: any) => { + return ( +
+
+
+ + {x.stat} + + {x.label} +
+
+ ) + })} +
+ +
+ Ready to get started? + +
+ +
+ + Related case stuides + + + {props.relatedPosts.map((post: any) => ( + +
+ + + + + {post.title} + + + + +
+ + ))} + + + + + View all case studies + + + +
+
+
+
+ +
{props.prevPost && }
+
+ {props.nextPost && ( + + )} +
+
+
+ +
+ + ) +} + +// function BlogPostPage() { +// return

blog post

+// } + +export default BlogPostPage diff --git a/www/public/case-studies-rss.xml b/www/public/case-studies-rss.xml index c7db88e5ce1..924d63f25ae 100644 --- a/www/public/case-studies-rss.xml +++ b/www/public/case-studies-rss.xml @@ -5,15 +5,55 @@ https://supabase.io Latest news from Supabase en - Sun, 31 May 2020 16:00:00 GMT + Invalid Date - https://supabase.io/blog/verc/l./dx/ - Supabase Alpha April 2020 - https://supabase.io/blog/verc/l./dx/ + https://supabase.io/blog//case-studies/xendit + Xendit + https://supabase.io/blog//case-studies/xendit Two months of building - Sun, 31 May 2020 16:00:00 GMT + Invalid Date + + + + https://supabase.io/blog//case-studies/xendit copy + Xendit + https://supabase.io/blog//case-studies/xendit copy + Two months of building + Invalid Date + + + + https://supabase.io/blog//case-studies/xendit copy 5 + Xendit + https://supabase.io/blog//case-studies/xendit copy 5 + Two months of building + Invalid Date + + + + https://supabase.io/blog//case-studies/xendit copy 4 + Xendit + https://supabase.io/blog//case-studies/xendit copy 4 + Two months of building + Invalid Date + + + + https://supabase.io/blog//case-studies/xendit copy 3 + Xendit + https://supabase.io/blog//case-studies/xendit copy 3 + Two months of building + Invalid Date + + + + https://supabase.io/blog//case-studies/xendit copy 2 + Xendit + https://supabase.io/blog//case-studies/xendit copy 2 + Two months of building + Invalid Date diff --git a/www/public/images/case-studies/logos/netlify.png b/www/public/images/case-studies/logos/netlify.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6594bfe67ee040bc2b9a3577287205c3754ca1 GIT binary patch literal 43108 zcmbTe2Rzkn_&9LBCm8}yY zWF^`BZ>gT=`+xoZ4j{va-S=V!~o#f}n*UGQb^W<1grrWdAdQ ziapZK+sPB<#xag*$Lab+Pm4iqmZDj=-;-Uw>?lE$lD(O4@3Wb{XZrEyw%eBJIDW$7B{!Q zQy@{QzF--@8S=kujnohDv=>I$BRzb)?d(;30h#Q_tMP;>d)wQfJiPTiJY4@sO7{=R zm&C+`Brox3+1NR`A1{LUKV9rqY*6+JY(Q=zf}$dVVzT;TA}~=2n3xp5hzv|bIiS7ZZbtgQlYYqbbmuTQ(@0|Ify^>|hQa-flKv$xd!Ij`qTy?v8Ai z{xTA#?BVL+4JHQEiU0RGTv=Jy+rz=h6}&(q)UI8Et13&0%1TKIiV2DSB3DZb26soI zY~1ba;VKGjfIUJ^PPbr^c9LS!GB#p@w`6U_1SOU8Os!oY0o zjtxP9&F)wO>~FFCe(dyr%z=|({chWXLH}R$;-neU!vW=I<86P{5pe7Ohvo?b@`aC$ z_GBf(|Mx}ydiNg#|I-|JjpL7h{T2A*ug9}@2X4+A_%ny=Y_A}Y{8hNhRek^LZ#JPW?_}pW=sBXJp?s0ITC-`+>Rvzwc9SVp@z_E{lkahGlAVH*si$Tmdu;qh ze;j%_PK?_7);ca4=8%2r-N<&dv2o997@8cgc)C(wkT`hZIYAbICP55g48aCO=SSNN zt`s+mYkkbb2~XxY`H~#Di&Mm%#wp`|u-KjV zv%2#m1^w)a|GqmlgFYhUN_;9K>tasgYChVh{%2TtaZNWmiwC?B;UcsmZ8t<3|9zFb z`1J~6z5E+=7FS1P+;G<}@#R3JvT3JYk5dh@sEPkf8UVDr2LGG<;e zoM7;GI7GPt+ALBSywJy|6tYzO?Sc_mBBY|W%3u;W!?#}d?~;i}nEaEsZNKPx@rV?c zoc?z``Z>ddz2~j&f8z|HisiMZ{W}te!E_uhrj?HM0d)t&t}BD$FZ1U+=U zxAwnnG4j4e!NeNmX@4Ifv})?FjIutpd4l-+tTJB|N0r#5lFK`6Dfo=A< zk$?Fz=s?T!JSyjo!sWk9L1dXcF5!w_*u4MmaBdFh%1nPIHus91O^q66O;K6IW&=3?j|oZ~5115P+|StX9hl@86Hk@3qTO{zomGPm!k%b!_75 zEVX->O30c-tj+(tMM%dH(?ZgT455bK_U4Iq53?{Nj5Il6`ge1}Qp(E>3Y~E2xLNx4 zUAgjQflxnKIrkbOV*R%w8+ce+2Uv#_g#J9*5DPvEmKV|al(&&w8_v*q!TOq&Jf*yh zx;)VY>4b7aJTDxrUA_MT&jmZTWI|u2YHx z{}x7{v5wR}n;o5S>!PC${=Uur(aOzVdhh)FCeE)Qh3CyVjQfq`Oh<|}hJK$BX0(s( z0Cqwa_p=YKp1jyWlj^m8w)}0jP9KxtjWJwcUBYVgFC#`U#$7&?3#G5n>VYTgM`?w% zpt++$siI=_Vze;Lnc}!|@akZ?c(E92*pLnYTe_u{YClm_WFS1OOeV-Vsp2xYYW-{m( zHY65HST63#rYL-(n;6Ryf^5h>qraV}kdL$|i~x?1H_~nI*g?u`HjiG&KwJxXal&QE z9DZKTG$$v#h_%@ID!EqFYTWH2&h8|B-k}R}Gi05&sl%GZW5sD@?*1s`mp1z2KZIXG z)&%>1YVIYy=)+3Cz@%!}CLy$}KVw;5kxeAoWD658I$U)04SMz4AjO*q>XJ~w92oR*FF5hrzn12Nu@PId;)IfivpD&^g-fSXhT?GPCLZv@?PKg|nX~dm@ZBLZ*UgS1ECF$sA{k=E%I3`ufwG(_I<~ko5Qbec& z-AfN_d(P>ciKZHKN5Sx>**YrGm?{HB6}_RqxjNtFk+B)OLl zvngn{pe_$l`F9IQ@{T(ZBHjq^ z%ExlB5E;H#;$(QT1s#YCwM6k6uFSToCuhEa+AGYIDd$w%_)B&#g?pS>wLTr_>UbIN zKHYmYsg5K=ZngS0(bSC%!;$QOUJk+c<)UEM@78hbZ_uO_Kq4o_`QqFIbkpxN4$!_{$L-6wQ#@iINNnXHOLH^ zOAv?xOLoD4p>R(=Qs{5+We}?>h||6=07pSm3&%)Zh-lxi@Vvb{06=^v=g4ZN)muo~uJh@GR~_Xryrd^jMO z{*Q1ZV^Wvb&P~rZz4yQK3fu2m0+EOB*RKT1OFX6Kbo%1DRa`kDRy9?WtSF%KPUNFU zSb%t}o|iC z?G!VEk9r+{`3?yteu6Aj?wggv1e&VceYRE*OV*tGkeE~iRsg{#O%B`iBVF61m=Pe} z7ip2v!f%-Vibgh_6TTAhi7<>Pz@pMk>9!3~=XY5_rzp^gn_RZLTw3IEi_GiCW`f*7 zA)3csFqW>2IagGt&gNXvJb+we%(;Kq!B(ix7L(f92Gtg4I%A$_lRX*s(&6G$r=Z-E zF0ugzC@9US7z|At$X>3DI-eP(s)1FZMydKd<}_d z6SVW$x(K?|xck@&7J5EvXaSeam!zseWB;Z|_9toXJCPnLw7q!jz%9kq6V6$GjMRQ? zYaur!*33F00z2Itdoqo|{qW2=nR7CnEiz_=tnWm$8MpTz{!)x8Q%)E<+Gp9nON?b( z8+D!`^`wU+g7$Xi3@?6$zMWoYY`|MTqGIfyVf3#)47bAp&uVQ^P{DP2#Gd(3!tXxk zX&o|W2XO2_I9%m{5nf~M!}osmSbTW}tbb{2J>5nTU)2Y{T`Pdl;H*@~ey+SUATUqx zx>uy99b@~HWPa(|uk{nW2Rv?T@NKg9rz+P4{1QBoiL;DAt3+1}P7#nrzE68G#im4R zWAh{cos0Ut_8%PDLd$cE6%KW z;e&DePw1U|g-AovZL%fNWkBAVyX0ve#9XBFCjo5n=CzYm&&~05%HE-2bc8?O3_0VfW@@oRJFz4&_U6mZY`rjc_I|{wB7Wy9$ML8` zozb|b`5-Q%gVP0ba&D<`>sGvA_R!u-982UYeXBsS&AcWYE&PgSk+;9r@ra^FIa%Vy zbEpzgF2}NslRl#~1lheV&^_vn6PJ|9EowJu$@4xoQ^A+S>z@odBZ-mP$&ic6`vHRN zweMu%l0QkN=NmfLNVbybRh^9(f)Dd&q!1m7p%2xWXQQQOeYw|65J@f`_^}Zb%$}i~ z4g|{;AyKSnqU(4;tON$G5mx{o(&~O|GjcQ*bx{4B<+9JL8L14#IEiMCeG#$rM2eQBanw$BmNDjilS&zB{fhJWlr(@U(kkFxk% zMR+x=+{8zn2oa9R(7Sz9t419*P>^!_*^8P$1r~quHGLEth^g5M^AAY3&z3{iIPp^> zD2Dl)cs=^|M^xKB5nf;Tenr>!juRG4r~K(`#vGM*J-GB7_Mt+h7!v=)6&^M35-r^GxJjC1s`X6fL`O+ZWV366f^y1nz|aw<5dUD* zc^X-o5!MXaoJbCAh%e{l8!_g(i~fuvQW6CZk7ec`pZZi3nGO4n&3X4c3=7n#wv{_V z`ruebFk9sG>$22yZJ?Q;^9F))zbp*EcM$o2Pr_HaHkf_gc|-abl5K z9B|<(Msc!K!Wl(;7jD|-5vBW8d7XL*$*`3yB1zjjz2|fY`5kg{Rsv$TH;f(jB|quIlgDluMblt_(wz~o@R>%6 z2$xfNGOxeB|2*#^&cmQ|n%A8&I>{K?XT?`! zMT#KYdc9ORS%jf%o7WQ#3l)-OWCrAe9)so28JBM9t&5TNINbOZC?n*6^_K}CYRAvx zXj=0UET>V{L9zoM;5uhRwY#FV#CuXWu%CSkccHT->sHoE)`!UnK6U9thpe7T>#v*c z#F@PtK={GO4s3W}T#$l0ij2ZrS(n>ue+7z?d8!(logh3Fgk)dem!;=B!`WM_tU=3u zn4L~D?3m3BN3<+!1ffBdk8=NlaY2(ZOHu`HJS^s!uVN82Avq+#>bmp#IuABy$@=I> z0`K!Eey1)vp~l5atJl%ildjh$=wuO9zzKpy_;z%_r4`ijve4@nvC3KB$0E0pW`;qq zPZIFtOjn~tgU3u42g1bB%)GT@B@~QMP|r->%6OVQ=Ep?jN-og-AuCpx{M&WsNJ zp&36h<{6%0$We#JcSReB z9dqo7Z{aKAPLr84{mfD^sbbXZFL~Bv@j}tepK378taPPP2cxEm4mB^`oP$b-sl_4- zBi3bpK*0 z9%M^*WvA}UHrb2plFm1+uSvQhTaL?)*Z|+cN5|B&;g<(JlvirdR*+uNy$KJ}+Gq{W zGnP7=es~|rkIU=X6mxd${_-a|eK!aO0avggj09F(HTQzUl6ns$@U;EW?-B_34g4uI z4sYzcl*f)J%yYmOb8mt`DA58<9p=>+b?e6^r`b;)VQP1g^tUhLl`)jvMoW8*3%DmZ zI{2Q+$8LE{<1`2)F@!~sjU@Mr7o(KnR_7y@DDb7kEJnbQA$)2fhcr1Vr)ipyiDb;dk>S@E)v)zoQ96-x86W5ppj(@5Ioq(fpHz6CK6t7%ale#a zGA4dB&9~%nw#ARFmQP~C_wB_PMv|(NwwLZ9AEngRCOxy8=%0~&l(RuDU(0`7;l((3 zaux>8YG`1CS2zwOGvspL!<3UT?Y9?MQrYA9(NxKXB*oHYL|oLND-GvE7nZBve{3OU z{q)P0^+Qi=8POQaCipfogmNyPT)Za<6VCvWrwBJXyvo?nw2!tFL5P|&^IGVLbf|Va zR89Bwfx`H=BB)a1sdD`{9iO6pyt4jXfyG+R732)NzKGGjg4h7LUAho052-1|Hq?{U zX?Bbel&?yAA&ek&7gdc;U2^EOar~V>atw8Ee-iGsG;A z5RxV~sT|Kc_^BL&tTPkl`1#>?Y3g}7=#;;GNjI)@>z)T2GFg?nNoXU4+ZyeyO$#}5 zsb*6CfrN)ePzWn&(}f(BjtSBxUHm+fj`#BN%|G>KUQ070gyMzcnU`$OJ%zij!-5LJ zqzRrT|9r8}RDS#R^`QpFZB>w2>S2cXQ}rWsl?aokwv|!@ zvDUH5Ku37Q9+5Fq$g}3CJebhOJJLbYd(+-tay_XlC0}@6s@h3cK%F=kM9aJMjzEN#Wh1K$KP)Q#*`7vch@9OYEpXldkuel-wX$5@g!KSaCK#fVY6%D20EAXoPIIYoU&1mAAU?LdFn(NeuRBaB+0ZCNM&=T7{lQx`8t23FU$Q`!Jv2^C4%J!%wa!Q8uq#dd`oCu?X+R8=TaR6H zcM7O^-cjOS;kiIhRefv!Nz1C+%N`f=WVq7t|hE$^c^XBEnE&Ux+2aK7~IBS?75AS87&N zHU8Ke2OK1eo!^ZgyVgn;P@nQ-T!SO{M-ud03$4esh*pHwHnjc+3*lgBJ4XRssmbRH zD@!v0csk6rv8=FxFsCQZha)gI` zxd>LXEFHXNQJ~Ki$@&I-7DS34D9XIc!^9~pIwumgrdQ_9y z1U2}aOK$L?N+?Po0w1?N?H*+}cB~gAyORWZ;qs`UThOf^2jI|iR^}9z7*vrHEgy6x zM;{#=AE8X+`?yXh*IxM1$QSF@eZHL-t1vC45pw3Hf zLDmfL<2bo6!m#dZ;(Wsw@IRqSpMJ1$8b3=N6toMYBx&6R%Qg6C=KUwSgO9o0M{>;m z7wYKinuHIv_>$G#YN6#UhvEy5?#Y8wF@jBHTn_kE__4UOh9f|zfEsPQzHN8PNMs;bv9CCTJ z{XMs`^|PLQYczPRRHM42ViA%NqHPIJvNfXhvWleE3;001I*1+hnoR1tYA+qinp_vi zKqeDmws2p6XG$2701(~0o>;g3NT19>nMK^W(u%!}ISw?j#D+ft-qVEgim(>Im-q4$ zE*sr|D(YJ+a$toFi4_U5wHg&aHAAwAK=w+Sr|(#xJ}L9+)PCHcgXFHHzM(vMHbGEy zwb*ztS)(0tIxp1zzG~+_DEBObfF;?XMOc}A;M3v<8kNa)27LcljzAGQEb;tnwA^tt zB2Z3>rTOM^56QcDsh=z@$v7=A=V4Od*=-*y`SaN^gV)I+j;h>A?;7EIydV2aG1HT| z!ABFmDd-J!3S8QH=dcuZQF+(3PR&YyHA_3ABTO7#){9i%>v#Sl1qq?gX?17)OlpN(n3{;g#baxxf~UT6f{4m zhuqddNN0Wylv{iEzJ9QK1D6FSc4~u#|6u7ioLUoszIgo2VS-rT`oTd&>Z(LP^H(|D z*IDPJh(a`xMi*#D3s6rPzF2VxaW2cjUf`J2Gpkf1L!0NL8TSursC4MBY7UV5HZ*|%I6+GPos-H-ngGGykQqo z?)OP4fsKaeh-5;e;ZmdS4O3yH;M%$VobOhTU-7#-%pXTS+O-13;^(#%%0<_l@iP6B z-pPY84b`D{Bt0oSS=Xrh75yxvGW8$JlWz;J*;uc9h#e$;4k1mcC6Gz^QD4*TN0cxa zgfl}IsMDcCH8Dtp^~+3pVe1XXo@`tODoHg@(*u7~t_$+go+^q-btez WBWEhZBsmRebWV!* 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 HLhAnmz!p=W literal 0 HcmV?d00001 diff --git a/www/public/images/case-studies/logos/vercel.png b/www/public/images/case-studies/logos/vercel.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5d63e5ba64a3398872c179dfcf8f60ebe567ae GIT binary patch literal 161541 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 z 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 Sp!1F3x0QvR`TZX}WB&oU{PTJM literal 0 HcmV?d00001 diff --git a/www/types/post.ts b/www/types/post.ts index 78dc49a16bd..be202e15d1c 100644 --- a/www/types/post.ts +++ b/www/types/post.ts @@ -16,6 +16,7 @@ type PostTypes = { readingTime: string url: string tags: [] + logo?: string } export default PostTypes From f5bdc00d241242e1b3db68abf591a2867b33bd9c Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 5 Nov 2021 08:54:43 +0800 Subject: [PATCH 006/166] chore: update blog layouts --- www/components/Blog/BlogHeader.tsx | 10 +- www/components/Blog/BlogListItem.tsx | 104 ++++++++++-------- www/lib/helpers.tsx | 4 + www/pages/blog.tsx | 41 ++++--- .../blog/[year]/[month]/[day]/[slug].tsx | 100 +++++++++++++---- www/pages/case-studies/[slug].tsx | 1 + www/types/post.ts | 1 + 7 files changed, 175 insertions(+), 86 deletions(-) diff --git a/www/components/Blog/BlogHeader.tsx b/www/components/Blog/BlogHeader.tsx index 0e6f0432c26..d4b37e91387 100644 --- a/www/components/Blog/BlogHeader.tsx +++ b/www/components/Blog/BlogHeader.tsx @@ -7,10 +7,12 @@ interface Props { export default function BlogHeader({ title }: Props) { return ( -

-
-
- {title} +
+
+
+ + {title} +
diff --git a/www/components/Blog/BlogListItem.tsx b/www/components/Blog/BlogListItem.tsx index 9df111a58f3..be3280947ad 100644 --- a/www/components/Blog/BlogListItem.tsx +++ b/www/components/Blog/BlogListItem.tsx @@ -2,6 +2,7 @@ import { Badge, Space, Typography } from '@supabase/ui' import authors from 'lib/authors.json' import Link from 'next/link' import React from 'react' +import { capitalize } from '~/lib/helpers' import PostTypes from '~/types/post' interface Props { @@ -11,62 +12,71 @@ interface Props { const BlogListItem = ({ blog }: Props) => { // @ts-ignore const author = blog.author ? authors[blog.author] : authors['supabase'] + + console.log('blog', blog) return ( -
-
- - - +
+ +
+ +
+ {blog.tags && + blog.tags.map((tag: string) => ( + +
+ {capitalize(tag.replace('-', ' '))} +
+ + ))} +
- {author && ( -
- - {author.author_image_url && ( - - )} - - {author.author} - - {author.position} - - - -
- )} - {/* + + {blog.description} + + + {/* {blog.content.substring(0, 210) + '...'} Read more */} - - - -
+
+
) } diff --git a/www/lib/helpers.tsx b/www/lib/helpers.tsx index c07c3c10278..33b8fb8ed3f 100644 --- a/www/lib/helpers.tsx +++ b/www/lib/helpers.tsx @@ -7,3 +7,7 @@ export const generateReadingTime = (text: string) => { const readTime = Math.ceil(minutes) return `${readTime} minute read` } + +export function capitalize(word: string) { + return word[0].toUpperCase() + word.substring(1).toLowerCase() +} diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index 7eff486f820..70dc949deb8 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -63,19 +63,20 @@ function Blog(props: any) { -
+ +
-
- Latests posts -
- {props.blogs.slice(0, 2).map((blog: any, idx: any) => { - return FeaturedThumb(blog) - })} -
+
+ Latests post + {props.blogs.slice(0, 1).map((blog: any, idx: any) => { + return FeaturedThumb(blog) + })}
+
+
-
+
More posts from the team @@ -100,10 +101,15 @@ function Blog(props: any) {
-
+
+ +
+
{/*
    */} {blogs.map((blog: PostTypes, idx: number) => ( - +
    + +
    ))} {/*
*/}
{' '} @@ -120,14 +126,14 @@ function FeaturedThumb(blog: PostTypes) { const author = blog.author ? authors[blog.author] : authors['supabase'] return ( -
+
- + - +
{blog.date} @@ -136,16 +142,19 @@ function FeaturedThumb(blog: PostTypes) { - + {blog.title} + + {blog.description} + {blog.tags && blog.tags.map((tag: string) => ( - + {tag} diff --git a/www/pages/blog/[year]/[month]/[day]/[slug].tsx b/www/pages/blog/[year]/[month]/[day]/[slug].tsx index b2eeeeac618..d5f8f4300d3 100644 --- a/www/pages/blog/[year]/[month]/[day]/[slug].tsx +++ b/www/pages/blog/[year]/[month]/[day]/[slug].tsx @@ -1,4 +1,4 @@ -import { Badge, Card, Divider, IconFile, Space, Typography } from '@supabase/ui' +import { Badge, Card, Divider, IconChevronLeft, IconFile, Space, Typography } from '@supabase/ui' import matter from 'gray-matter' import authors from 'lib/authors.json' import hydrate from 'next-mdx-remote/hydrate' @@ -176,33 +176,44 @@ function BlogPostPage(props: any) { }} /> -
-
-
-
-
- - - - - View more posts - - - - - +
+
+
+ {/* Back button */} + + + + Back + + +
+
+ {/* Title and description */} +
+
+ Blog post + {props.blog.title} +
{props.blog.date} • {generateReadingTime(props.blog.content.renderedOutput)} - - {props.blog.title} +
{author && (
{author.author_image_url && ( - + )} {author.author} @@ -215,9 +226,60 @@ function BlogPostPage(props: any) { )}
+
+ {/* Content */} +
+ {props.blog.thumb && ( + + )} +
+ {content} +
+
+ {/* Sidebar */} +
+
{toc}
+
+ + Related articles + + + {props.relatedPosts.map((post: any) => ( + +
+ + + + + {post.title} + + + + +
+ + ))} + +
+ + + View all posts + + +
+ +
+
+
+
+
diff --git a/www/pages/case-studies/[slug].tsx b/www/pages/case-studies/[slug].tsx index 1f334466e6f..511d8fe09f4 100644 --- a/www/pages/case-studies/[slug].tsx +++ b/www/pages/case-studies/[slug].tsx @@ -169,6 +169,7 @@ function BlogPostPage(props: any) { >
+ {/* Back button */} diff --git a/www/types/post.ts b/www/types/post.ts index be202e15d1c..47d9523aa21 100644 --- a/www/types/post.ts +++ b/www/types/post.ts @@ -14,6 +14,7 @@ type PostTypes = { thumb: string image: string readingTime: string + description: string url: string tags: [] logo?: string From d7e9531ca1019630b522faeaa03a2dff67982ef2 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 5 Nov 2021 09:48:42 +0800 Subject: [PATCH 007/166] fix case study links. update blog thumb --- .../{xendit copy 2.mdx => xendit-copy 4.mdx} | 0 .../{xendit copy 3.mdx => xendit-copy 5.mdx} | 0 .../{xendit copy 4.mdx => xendit-copy-2.mdx} | 0 .../{xendit copy 5.mdx => xendit-copy-3.mdx} | 0 .../{xendit copy.mdx => xendit-copy.mdx} | 0 www/components/Blog/BlogListItem.tsx | 24 ++++++++++++------- www/next.config.js | 2 +- 7 files changed, 16 insertions(+), 10 deletions(-) rename www/_case-studies/{xendit copy 2.mdx => xendit-copy 4.mdx} (100%) rename www/_case-studies/{xendit copy 3.mdx => xendit-copy 5.mdx} (100%) rename www/_case-studies/{xendit copy 4.mdx => xendit-copy-2.mdx} (100%) rename www/_case-studies/{xendit copy 5.mdx => xendit-copy-3.mdx} (100%) rename www/_case-studies/{xendit copy.mdx => xendit-copy.mdx} (100%) diff --git a/www/_case-studies/xendit copy 2.mdx b/www/_case-studies/xendit-copy 4.mdx similarity index 100% rename from www/_case-studies/xendit copy 2.mdx rename to www/_case-studies/xendit-copy 4.mdx diff --git a/www/_case-studies/xendit copy 3.mdx b/www/_case-studies/xendit-copy 5.mdx similarity index 100% rename from www/_case-studies/xendit copy 3.mdx rename to www/_case-studies/xendit-copy 5.mdx diff --git a/www/_case-studies/xendit copy 4.mdx b/www/_case-studies/xendit-copy-2.mdx similarity index 100% rename from www/_case-studies/xendit copy 4.mdx rename to www/_case-studies/xendit-copy-2.mdx diff --git a/www/_case-studies/xendit copy 5.mdx b/www/_case-studies/xendit-copy-3.mdx similarity index 100% rename from www/_case-studies/xendit copy 5.mdx rename to www/_case-studies/xendit-copy-3.mdx diff --git a/www/_case-studies/xendit copy.mdx b/www/_case-studies/xendit-copy.mdx similarity index 100% rename from www/_case-studies/xendit copy.mdx rename to www/_case-studies/xendit-copy.mdx diff --git a/www/components/Blog/BlogListItem.tsx b/www/components/Blog/BlogListItem.tsx index be3280947ad..66d5a30d419 100644 --- a/www/components/Blog/BlogListItem.tsx +++ b/www/components/Blog/BlogListItem.tsx @@ -3,6 +3,8 @@ import authors from 'lib/authors.json' import Link from 'next/link' import React from 'react' import { capitalize } from '~/lib/helpers' + +import Image from 'next/image' import PostTypes from '~/types/post' interface Props { @@ -19,15 +21,19 @@ const BlogListItem = ({ blog }: Props) => {
- +
+ +
diff --git a/www/next.config.js b/www/next.config.js index a300dc59fa8..dcfa6076a04 100644 --- a/www/next.config.js +++ b/www/next.config.js @@ -6,7 +6,7 @@ module.exports = withMDX({ trailingSlash: false, images: { - domains: ['github.com', 'ca.slack-edge.com', 'res.cloudinary.com'], + domains: ['github.com', 'ca.slack-edge.com', 'res.cloudinary.com', 'images.unsplash.com'], }, async headers() { return [ From c53fcdaf01e17cccab94daa0ace3dbf206598b8b Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 5 Nov 2021 10:46:30 +0800 Subject: [PATCH 008/166] update placeholder case studies --- www/_case-studies/epsilon3.mdx | 97 ++++++++++++++++++ www/_case-studies/mobbin.mdx | 91 ++++++++++++++++ www/_case-studies/replenysh.mdx | 84 +++++++++++++++ www/_case-studies/xendit-copy 4.mdx | 39 ------- www/_case-studies/xendit-copy 5.mdx | 39 ------- www/_case-studies/xendit-copy-2.mdx | 39 ------- www/_case-studies/xendit-copy-3.mdx | 39 ------- www/_case-studies/xendit-copy.mdx | 39 ------- www/pages/blog.tsx | 2 +- www/pages/case-studies/[slug].tsx | 37 ++----- www/public/case-studies-rss.xml | 34 ++---- .../images/case-studies/logos/epsilon3.png | Bin 0 -> 6475 bytes .../images/case-studies/logos/mobbin.png | Bin 0 -> 6904 bytes .../images/case-studies/logos/replenysh.png | Bin 0 -> 7371 bytes 14 files changed, 289 insertions(+), 251 deletions(-) create mode 100644 www/_case-studies/epsilon3.mdx create mode 100644 www/_case-studies/mobbin.mdx create mode 100644 www/_case-studies/replenysh.mdx delete mode 100644 www/_case-studies/xendit-copy 4.mdx delete mode 100644 www/_case-studies/xendit-copy 5.mdx delete mode 100644 www/_case-studies/xendit-copy-2.mdx delete mode 100644 www/_case-studies/xendit-copy-3.mdx delete mode 100644 www/_case-studies/xendit-copy.mdx create mode 100644 www/public/images/case-studies/logos/epsilon3.png create mode 100644 www/public/images/case-studies/logos/mobbin.png create mode 100644 www/public/images/case-studies/logos/replenysh.png diff --git a/www/_case-studies/epsilon3.mdx b/www/_case-studies/epsilon3.mdx new file mode 100644 index 00000000000..03c66f9366e --- /dev/null +++ b/www/_case-studies/epsilon3.mdx @@ -0,0 +1,97 @@ +--- +title: Epsilon3 +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/epsilon3.png +tags: + - supabase +date: '28-10-2020' +company_url: 'https://epsilon3.io' +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +Epsilon3 is a USA-based Y Combinator startup. They digitize paper-based procedures in the space industry using telemetry data, +simplifying testing and operations. Their product is rapidly becoming the OS for space projects and complex operations. + +Learn how the team at Epsilon3 uses Supabase to help teams execute secure and reliable operations in an industry where project +spend runs into the billions. + +### Space Operations + +Epsilon3's customers run testing and operational procedures in real-time. Epsilon3's solution allows online collaboration as a team, +instead of being siloed and separated which is an increasingly important requirement in a post-pandemic working world. +Epsilon3 is powering an industry where reliability is paramount. In the space industry, missions cost billions and need to run reliably. + +![Epsilon3 digitizes paper-based processes.](/images/blog/epsilon3/epsilon3-product.gif) + +Epsilon3's software saves operators time and reduces errors to improve complex operations. Their customers are using their software and +successfully sending satellites into space and are about to use Epsilon3's software for an operational Rocket Launch. As a result, their +reputation for improving the quality standard for complex operations has led to demand from other industries. The team is receiving +enquiries from clients in the robotics, logistics and medical equipment sectors who need a structured and standardized way of running +procedures and keeping audit trails. + +## Moving fast in regulated markets + +As a startup, Epsilon3 needs to move fast and scale. They require security, reliability, and performance. + +The team has a background in engineering from Northrop, Google, and SpaceX and understands the technical benefits Postgres offers as a +battle-tested open-source relational database. + +Real-time functionality is also a key for their customers to see how running procedures are progressing as the changes occur. + +The space industry is highly regulated, adding complexity. For example, in the USA, deployments must be in an ITAR-compliant way +(for instance AWS GovCloud supports ITAR compliance) while customers in countries outside the USA may need to host their data within their own +country. These customer requirements mean Epsilon3 must be able to offer flexible hosting options, including on-premises deployment. + + +

Billion dollar missions need to run reliably and securely.

+

+ We didn’t just want something that works, we wanted a solution implementing best practices. We + also needed a setup that we could self-host to meet compliance needs and allow on-premises + deployment options for our customers. +

+

+ We use Supabase because they give us an open-source scalable back-end built by database experts + that we can self-host. +

+

+ Supabase takes out the mental effort from our back-end infrastructure so we can focus on our + customers needs. +

+
+ +### Supabase gives Postgres users Superpowers + +The team implemented a self-hosted Supabase setup. They use AWS with a self-hosted Supabase API powering an RDS Postgres instance. +This setup gives a balance of rapid development, reduced DevOps, and flexible hosting options. As Supabase uniquely offers real-time for +Postgres, it allows their customers to see updates from running procedures. Supabase offers well-supported client libraries that make +Postgres Row Level Security easy to use, which is a critical item on the Epsilon3 roadmap. + +All this was easy for the team to set up, even with self-hosting, so the team was able to focus on what they do best—helping their customers +run complex operations smoothly. With this implementation, Epsilon3 gets all the benefits of Postgres, plus the smooth developer experience and +support that Supabase is known for, without compromising their compliance needs. + +![Epsilon3 uses Supabase for hosting their critical infrastructure.](/images/blog/epsilon3/supabase-epsilon3-architecture.png) + +### Self-hosted Supabase, a superpower + +Self-hosting Supabase allows the crew at Epsilon3 to move fast. They are revolutionizing space operations securely and reliably in real-time whilst +staying compliant. The team is now seeing demand from other industries and is confident in their scaling capability because they know it's +just Postgres under the hood. + +Check out the [Epsilon3 website](https://www.epsilon3.io/) to learn more about the team and their OS for space operations. If you are interested +in self-hosting Supabase then you can **contact us** to learn more. diff --git a/www/_case-studies/mobbin.mdx b/www/_case-studies/mobbin.mdx new file mode 100644 index 00000000000..aa2ada98fb2 --- /dev/null +++ b/www/_case-studies/mobbin.mdx @@ -0,0 +1,91 @@ +--- +title: Mobbin +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/mobbin.png +tags: + - supabase +date: '28-10-2020' +company_url: 'https://mobbin.design' +stats: [{ stat: '30,000', label: Users at launch }, { stat: '200,000', label: Current users }] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience. + +Mobbin helps over 200,000 creators globally search and view the latest design patterns from well-known apps. +Their platform allows creators to search screenshots of mobile apps to inspire product development. +Creators use Mobbin to combine inspiration and develop new experiences. + +## From Idea to 30,000 users in one Product Hunt launch + +The initial concept for Mobbin was just a Dropbox full of screenshots. After sharing with their early users, +the team tried organizing them into folders but this quickly became unscalable. Clear interest from users encouraged them to build a full website. They used Firebase for the backend and launched on +[Product Hunt](https://www.producthunt.com/posts/mobbin-1). + +Mobbin went viral, and within the first week they had 30,000 users. In just over two years, they have grown to over 200,000 +registered users through word of mouth. Their curation continues to attract designers and creators globally. + +![Mobbin cover](/images/blog/mobbin/mobbin-cover.png) + +## Scaling issues put Mobbin growth at risk + +Firebase helped the team launch quickly, but at scale, they found Firebase lacked the functionality required for a high-quality user experience. + +The first problem was duplicate user logins. Firebase Authentication doesn't automatically merge users with the same email address. +For example, users cannot log in with Google and Facebook if they share the same email address. +Users struggled to upgrade to a paid account because they couldn't remember which authentication provider they signed up with. + +Next, they had issues with data integrity. While Firebase has 99.95% uptime, application code can (and does) fail. +Mobbin didn't want to implement idempotence for every mutative Firebase Function. Between a failed Function execution and a retry, +a document state might change without strict validation. The team could never be confident their data had the level of integrity they required. + +Finally, the team grew concerned with their increasing Firebase bill. Because of the document-based data structure, +their API requests required several round trips. At one point, they were making 5 million API requests per month. +These round trips made their website slow and led to a notable time investment hacking together a fix. + +![Mobbing screenshots](/images/blog/mobbin/mobbin-screenshots.jpg) + +## Migrating to Supabase + +Mobbin's initial product gave them a comprehensive understanding of customer requirements. For their second version, +they needed a better authentication experience, fairer pricing, and a relational database to deliver a quality +application sustainable for their business model. + +The team found Supabase and realized it covered all the bases. Not only that, their team had experience with the +tools open source tools that Supabase is built with. + +Auth, built using [GoTrue](https://github.com/supabase/gotrue), instantly solved their users' login issues. +Under the hood, Supabase is just Postgres, and Jian Jie (co-founder and CTO of Mobbin) knows this is one of the best battle-tested +open source relational databases. + +They decided that moving to Supabase was a no-brainer. The process itself was smooth - the real challenge was validating their +data integrity due to historical failures on their serverless functions. + +Mobbin is now successfully running on top of Supabase, with superior performance compared to their old Firebase setup. +Because Supabase does not charge based on API requests, Mobbin significantly reduced their monthly spending without maintaining a custom backend. + + +

Migrating to Supabase meant that we could instantly fix our Auth problems and save money.

+

+ Just being on Supabase alone gives us confidence we can deliver on whatever users need in the + future. +

+

+ The cool thing is now we know under the hood it's just Postgres, it really does feel like + anything is possible for the future of our product +

+
+ +## Supabase saves Mobbin time and money + +Migrating to Supabase helped the team at Mobbin instantly improve the end-user experience and save costs. +They now add new features with confidence, and they continue to help creators all over the globe find inspiration for their next project. +You can [check out Mobbin on their website](https://mobbin.design/browse/ios/apps). + +Sign up to Supabase's free tier and set up a scalable backend in less than 2 minutes. diff --git a/www/_case-studies/replenysh.mdx b/www/_case-studies/replenysh.mdx new file mode 100644 index 00000000000..8ab6aeadddc --- /dev/null +++ b/www/_case-studies/replenysh.mdx @@ -0,0 +1,84 @@ +--- +title: Replenysh +description: Two months of building +author: rory_wilding +author_title: Supabase +author_url: https://github.com/kiwicopple +author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 +authorURL: https://github.com/kiwicopple +logo: /images/case-studies/logos/replenysh.png +tags: + - supabase +date: '28-10-2020' +company_url: https://replenysh.com/ +stats: + [ + { stat: '20,000', label: Number of employees }, + { stat: '10', label: Number of offices }, + { stat: '$1M', label: Annual revenue }, + ] +misc: [{ label: 'Founded', text: San Francisco }] +about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. +--- + +Replenysh connects brands who want to recover their products and packaging with communities looking to monetize used materials. + +Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers & products. + +## Material recovery offers brands a new way to connect to their customers + +At the end of a linear economy, products usually end up in landfills or the ocean. Every year, 8 million metric tons of plastics enter our ocean. This is on top of the estimated 150 million metric tons that currently circulate our marine environments. In the USA alone, every year, 139 million tons of waste is sent to landfills. + +The problem is our current waste and recycling infrastructure can't support that demand. With less than 10% of material actually getting recycled, the vast majority just ends up in a landfill or as pollution. + +Replenysh is building a solution to this problem by creating entirely new infrastructure to help brands get their materials back. They're building an ecosystem of tools to enable any community in the world to do the right thing. + +Whenever material is dropped off at a host, brands have the opportunity to engage with that person, resulting in a win-win situation for the planet, the brands, and the individual who all want to make a positive impact. Anyone in the community can take their used products and materials to the hosts — with that material being tracked all the way back to the brands and manufacturers who will reuse it. Brands have the opportunity to engage with that person, resulting in a win-win situation for the planet, the brands, and the individual who all want to make a positive impact. This turns a traditional consumption model into an opportunity for brands and customers to participate in the circular economy. + +Brands are adopting Replenysh to demonstrate their commitment to making a positive environmental impact, while seeking to engage with consumers in a new, authentic way. Replenysh provides the technology to communities that are helping build the future infrastructure where all materials are traceable and reused. + +![Linear vs Circular economy](/images/blog/replenysh/circular-economy.png) + +## Refactoring code leads to a better way forward + +Historically the team created their own backend infrastructure, setting up APIs and Authentication to run their own OTP system with Twilio and passwords. Postgres is essential to their requirements because Replenysh use Row Level Security for authorization. Before adopting Supabase, the team used a Haskell server with a different Postgres instance deployed on Heroku. + +The team decided to do a large refactor of their codebase and began investigating alternative hosting options to help speed up development time and reduce maintenance. + +Firebase seemed appealing due to its ability to get started quickly, but the team didn't want to migrate away from a relational database. Specifically, Postgres and RLS fit their requirements. + +When the team discovered Supabase on Hacker News they felt excitement. Supabase has a reputation for a smooth developer experience, providing Postgres and Row Level Security as a core feature. + +As a bonus, Supabase provided more than just a database, reducing their DevOps overhead. After reading the [Supabase Auth documentation](https://supabase.io/docs/guides/auth) the team determined they can have the functionality they need, like SMS OTP. When they saw [Mobbin are using Supabase at scale](https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users), they decided to migrate to Supabase. + +## Globally recognised brands need quality at scale + +Less than a day after beginning development with Supabase, the team completed their SMS OTP implementation, and deployed their app to the app store a few weeks later. + +![Replenysh-Mobile-App](/images/blog/replenysh/Replenysh-Mobile-App.png) + +Replenysh clients include brands with global recognition and millions of customers. With their reputation at stake, major brands have a high-quality threshold. If a global brand asks its customers to adopt a technology, the user experience must be high quality and reliable. Their customers' primary interaction point is mobile-first. This means a robust and smooth mobile Auth experience is non-negotiable. After switching to Supabase, when they demo, clients are instantly impressed with just how easy it is for users to log in with an SMS OTP and start participating in the circular economy. As a result, some of the world's largest retailers and beverage companies have recently joined Replenysh and the circular economy. + +![Replenysh-large-screen-view](/images/blog/replenysh/Replenysh-large-screen-view.png) + +## Supabase means faster development and reduced maintenance + + +

+ We saw the Auth update for launch week we thought it was the perfect time to get going with + Supabase. +

+

+ We implemented & pushed live phone (OTP) auth and had something ready to deploy to the app store + in less than 24-hours! +

+

+ Supabase's developer experience lived up to its reputation. Our app is ready to launch with + major brands to help them reach sustainability goals and connect with their customers in a + meaningful way +

+
+ +## Supabase help Replenysh continue to scale + +Supabase turbo-charged Replenysh's development time with a seamless end-user mobile login experience. They are ready to help major brands engage with their users through participation in the circular economy. With Supabase, the team knows they have a slick auth experience, reduced DevOps overhead, and can continue to scale with Postgres. You can test out the Supabase developer experience today by [starting a new project on the free tier!.](https://app.supabase.io/api/login) diff --git a/www/_case-studies/xendit-copy 4.mdx b/www/_case-studies/xendit-copy 4.mdx deleted file mode 100644 index c7d0bbc1354..00000000000 --- a/www/_case-studies/xendit-copy 4.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit-copy 5.mdx b/www/_case-studies/xendit-copy 5.mdx deleted file mode 100644 index c7d0bbc1354..00000000000 --- a/www/_case-studies/xendit-copy 5.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit-copy-2.mdx b/www/_case-studies/xendit-copy-2.mdx deleted file mode 100644 index c7d0bbc1354..00000000000 --- a/www/_case-studies/xendit-copy-2.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit-copy-3.mdx b/www/_case-studies/xendit-copy-3.mdx deleted file mode 100644 index c7d0bbc1354..00000000000 --- a/www/_case-studies/xendit-copy-3.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/_case-studies/xendit-copy.mdx b/www/_case-studies/xendit-copy.mdx deleted file mode 100644 index c7d0bbc1354..00000000000 --- a/www/_case-studies/xendit-copy.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index 70dc949deb8..544e7d305ca 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -75,7 +75,7 @@ function Blog(props: any) {
-
+
diff --git a/www/pages/case-studies/[slug].tsx b/www/pages/case-studies/[slug].tsx index 511d8fe09f4..8cb924bffc2 100644 --- a/www/pages/case-studies/[slug].tsx +++ b/www/pages/case-studies/[slug].tsx @@ -8,6 +8,9 @@ import { Button, IconChevronRight, IconChevronLeft, + IconGlobe, + IconLink, + IconExternalLink, } from '@supabase/ui' import matter from 'gray-matter' import authors from 'lib/authors.json' @@ -214,6 +217,10 @@ function BlogPostPage(props: any) {
About {props.blog.about} + + {props.blog.company_url} + +
{props.blog.misc.map((x: any) => { return ( @@ -245,36 +252,6 @@ function BlogPostPage(props: any) { Contact sales
- -
- - Related case stuides - - - {props.relatedPosts.map((post: any) => ( - -
- - - - - {post.title} - - - - -
- - ))} - - - - - View all case studies - - - -
diff --git a/www/public/case-studies-rss.xml b/www/public/case-studies-rss.xml index 924d63f25ae..928acd75147 100644 --- a/www/public/case-studies-rss.xml +++ b/www/public/case-studies-rss.xml @@ -17,41 +17,25 @@ - https://supabase.io/blog//case-studies/xendit copy - Xendit - https://supabase.io/blog//case-studies/xendit copy + https://supabase.io/blog//case-studies/replenysh + Replenysh + https://supabase.io/blog//case-studies/replenysh Two months of building Invalid Date - https://supabase.io/blog//case-studies/xendit copy 5 - Xendit - https://supabase.io/blog//case-studies/xendit copy 5 + https://supabase.io/blog//case-studies/mobbin + Mobbin + https://supabase.io/blog//case-studies/mobbin Two months of building Invalid Date - https://supabase.io/blog//case-studies/xendit copy 4 - Xendit - https://supabase.io/blog//case-studies/xendit copy 4 - Two months of building - Invalid Date - - - - https://supabase.io/blog//case-studies/xendit copy 3 - Xendit - https://supabase.io/blog//case-studies/xendit copy 3 - Two months of building - Invalid Date - - - - https://supabase.io/blog//case-studies/xendit copy 2 - Xendit - https://supabase.io/blog//case-studies/xendit copy 2 + https://supabase.io/blog//case-studies/epsilon3 + Epsilon3 + https://supabase.io/blog//case-studies/epsilon3 Two months of building Invalid Date diff --git a/www/public/images/case-studies/logos/epsilon3.png b/www/public/images/case-studies/logos/epsilon3.png new file mode 100644 index 0000000000000000000000000000000000000000..9895b8f5ae02aca116af93be0474166b2d63827e GIT binary patch literal 6475 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 z zpavqzYOK8=%t`9=NHt?sU>rSQPkGOh=Bq`xpMn);G54}zPBTo8)A?y=+#I_8(jz6# zEKc+VJM%A2mFeM1X}E>x;ju3Er2oL>fW={0C324;czK17mDvi!Oy%=DN6D}fYzw@N z^NC8?9vMo(;)xl^Xd`y37XP^h z1ZXx;h77A5%xUVC$y>jAa_lj5CJ4%fHubR9eN&^2)l!u17;DWjbqgnU>94zSwlJA3_a z7=x3vg!2J*Fz;9c*Hc?{Eqo+WV$c&wNhL=mIr}X>AIkQgfn=a63*mb~V*wB@m;F#M zA?%jpvQ8%_6GL5VKlmPA24q@Mhuy6WhyY(K;eCxvB!!(BN{vwfEyQ|KKY$REmX=B% z*y|K&?&GzGi*SNMY?BJ5-yDN`%Ihm!-*X&6jS^14u3CW6)C70y(0x(X=r3OOzx)fu zJpWrrMW_1`@D;{w=?`4(GS=wn|w;Mtv zh68RI&pN$$aSKvM+>*@{{!*Tih;Q}U>WYn-LLPt-Vk<6Ko`ff=Z(~A-R^~XsB)+#X z0}qc9Q#&PERm8#T`7^Ofvxe#TiiuL{>oXS!3J~N#wkG~5T=7?LB((c)bzd$uSVr-= z6jXyZ1BEx`a7^xrl&8=lW{e3}IYgXH1jidapK)Y=K5veiZ5It5{`m`Er~m8PvceV9 zV?#aoRn@)U(tu0uei0AVX&#m5eH5h3y6qbusL))v{OaN);<2qNf56wP&s)D(dkNlX zx{*VjQVl-?%d+4O^HsMaTnC0Vw&X$M+U`rz>N)TtT*iD|lKGM}*|8dj{E#>(s17U3 zyQtpHrIUk$iyeJInWd)aJD6ep8NkxeQ^L&Bu9IPcD$ZwiE1{ zX5QrzuDtBOtbKSMc8q!G=2okY_EGa9>~X(Ty(b~?fY*a;0x}g1xEk4FCXfC}c~0GG zzhu`3;{`U?+*Ul@(0sF96CbAQzjkebUsG{?55V3yJ()4aW^sy?-In!Svj0Dx&~H6hw&|I zC7kBJp$G)my=xV(7L$Hg?^(9EVG0p(7PO(<%x35j?9-))PvgT z(1rIfB?+`2A4*nthQW!-iqMZaqOs)(M8TJ4OiC+uX@>6$!4hb1aMgoZAq30$O+WR4 z<6mK5OrV;|Rkief3B2cN@=^MelN9=Q&Vkq%*r5vu1P;?$u$U9C6})Zw2aKSeR<%Yt z1N3b2<$Sn1o<&%1PUvR9XS>d>_}|Z|zm$!%HvTO6;4cT2)!HiN zBjK(AfXKdU%@sv(QbT{nfK_*nJU+fq6O6hQA&Owi-BSI0Vykq%f!Z-;Sbd-k`l6M_ zwYaQb0Mp{;xZu{}4MyougaoK4aa(YBl?amRRyqxB?nL_Q6{KW1#!dTlo)zOz&|3>o zdehtq^@k}g2FPWALXi(Vlha@sHLRTuqSTY``WR`Az(Xj!Pl~_k#Uhgt&b_WLyXh7OBJX2<<`3S`LVaZQcvrp&g{bfke66w zI{!)Bs)=uz#%%mUu2D?B1n*}2)3|E;e0pHOqOZG=leYxyK%5fQS3YZiU>{rB_{j`3 w)Z3S+8u+V^t$aD-`;Q$l7A3RMxU4vTs?k3?*77 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

!%OADJ+TOJ(PC0x-Q}Eg}mhJyVK`jn|^s+ zr?NR5y&jnu1sHuHPFDY1Hw4)^_QT5=_MzRE2&y0PFOIodga)LnEOh}{5Q@m6%*MEW z<4nTa^h8^843Ve+pGJMhuIwHlO9Z(&oqaaSZ&}E1Bax|IBjO|4494 z;9^OA{MQu2mY4NM4z@K}1BneoL(iEVfWE6c#4M?x21$&kPF--ubxouP%JrzUxO|P$ z6%JiDw>f&Ceta+^J_9q4uhIupAB!NZ*mJ1atP{loBv}c?kevxmhFpq#jseK-T-1U# z3Rr|NOB#iFrdaLJ$A@k1<+RV<1wT6@o=!*%XX5N_z8!l(4sHkl(IY!#Q0%rGBU}VX zaX>0$OlOQUNkgrO?I@&}i0e7vJ={{myQx9acJ;~}Un)EmINd-Ln$!`pe32;r10Url z&>KNQfx}*JA&8uRaO5_`lEn ze0Fgv2xujCJZMntC$JGgM73m~d8&8n z%0;f;&28lY;V#in>{}KMvx(ZNTk~bg+7`Dg#_ZATwfwccWT1zZsoirci?vZoNb0); zhiBlNbq7mb#gl-pT{|Dn5L==}NKye{kFTk-Hk9zFv9n37W^lN8aaht=!QD5_34r@A zO6R9?3oHhiZApzlKMCx7SH3dJO?cu}7|@Nh&c0s0!eM(+67tBQ`!mqm6CPN1)qHkz zTj`Wbb4?gCAkgKLQGqQS4n^rImygz7q{6o0vKsrC0f+dm3Ip9H7o}os(1osANtra! z;d-E#g3a7NgW<^Wyl5c}G(JaY>~|ttJy18FEd_O*O~Xpg9{i{SN9W)jm80+?x_SOD z3WeLs$_Kjp5kS*-PO7e5^8#3u=rV;W4>l?O`nt;qbf(&``1%W%oI25qN0K lyTR3VA?2_3wUu){*NlX3dnNXS% Date: Mon, 22 Nov 2021 17:32:11 +0800 Subject: [PATCH 009/166] chore: update react --- www/package-lock.json | 12708 ++++++++++++++++++++++++++++++++++++++-- www/package.json | 6 +- 2 files changed, 12122 insertions(+), 592 deletions(-) diff --git a/www/package-lock.json b/www/package-lock.json index e6189e6b574..f72a662496b 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -1,27 +1,1812 @@ { "name": "supabase-website", "version": "0.0.2", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "supabase-website", + "version": "0.0.2", + "license": "MIT", + "dependencies": { + "@mdx-js/loader": "^1.6.22", + "@mdx-js/react": "^1.6.22", + "@next/mdx": "^10.0.7", + "@supabase/supabase-js": "^1.6.0", + "@supabase/ui": "^0.36.0", + "classnames": "2.2.6", + "date-fns": "2.10.0", + "gray-matter": "^4.0.2", + "markdown-toc": "^1.2.0", + "next": "latest", + "next-mdx-remote": "^2.1.3", + "next-seo": "^4.20.0", + "react": "^17.0.1", + "react-copy-to-clipboard": "^5.0.2", + "react-dom": "^17.0.1", + "react-ga": "^3.3.0", + "react-markdown": "^5.0.3", + "react-syntax-highlighter": "^15.3.1", + "react-tooltip": "^4.2.17", + "react-transition-group": "^4.4.1", + "rehype-slug": "^4.0.1", + "remark": "^13.0.0", + "remark-gfm": "^1.0.0", + "remark-html": "10.0.0", + "swiper": "^6.5.0", + "swr": "^0.5.4", + "typescript": "^4.0.3", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@types/classnames": "^2.2.10", + "@types/jest": "^25.2.2", + "@types/node": "^14.0.1", + "@types/react": "^16.9.35", + "@types/react-copy-to-clipboard": "^4.3.0", + "@types/react-dom": "^16.9.8", + "@types/react-syntax-highlighter": "^13.5.0", + "autoprefixer": "^10.3.7", + "file-loader": "^6.2.0", + "postcss": "^8.3.11", + "postcss-preset-env": "^6.7.0", + "prettier": "^2.2.1", + "tailwindcss": "^2.2.17" + } + }, + "node_modules/@babel/code-frame": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "requires": { + "dependencies": { "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz", - "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==" + "node_modules/@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", + "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", + "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "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", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", + "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "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==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", + "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dependencies": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "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.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", + "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", + "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", + "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", + "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", + "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", + "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", + "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", + "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", + "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", + "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", + "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", + "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", + "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "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", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", + "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", + "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", + "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", + "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", + "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", + "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", + "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", + "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", + "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", + "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", + "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", + "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", + "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", + "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", + "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", + "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", + "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", + "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", + "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", + "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", + "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", + "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", + "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", + "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", + "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", + "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", + "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", + "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", + "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", + "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", + "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", + "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", + "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", + "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz", + "integrity": "sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-typescript": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", + "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", + "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@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-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@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.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", + "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-react-jsx-development": "^7.16.0", + "@babel/plugin-transform-react-pure-annotations": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz", + "integrity": "sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-typescript": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "node_modules/@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@mdx-js/loader": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz", + "integrity": "sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==", + "dependencies": { + "@mdx-js/mdx": "1.6.22", + "@mdx-js/react": "1.6.22", + "loader-utils": "2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/core": { "version": "7.12.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "requires": { + "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", "@babel/helper-module-transforms": "^7.12.1", @@ -38,6 +1823,9414 @@ "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@mdx-js/mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@napi-rs/triples": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz", + "integrity": "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" + }, + "node_modules/@next/env": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.4.tgz", + "integrity": "sha512-QtZ6X5c6Zqa7oWs5csEmZ7xy+gLdtRKKg02SOT5l0Ziea4P5IU8mSOCyNC4fZmXewcRVjpbY+yGqAAP7hJUfOA==" + }, + "node_modules/@next/mdx": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-10.2.3.tgz", + "integrity": "sha512-hseekptFqOCxLbdaNDS/yelaG2Q2uaNDilnRjq8Uv/LWHuZ9F2cp7ndwTolW9acJsbDedamKRMgdw4V2Fz0pUA==", + "peerDependencies": { + "@mdx-js/loader": ">=0.15.0", + "@mdx-js/react": "*" + } + }, + "node_modules/@next/polyfill-module": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-12.0.4.tgz", + "integrity": "sha512-mk9yCDNpfXINTJKFTZNgwYs7eqRFpc5D/49O/fKB59blihyKl1GY1sZ0l7a2bn5l1X/WuaZzcIfqnrwkneqeaQ==" + }, + "node_modules/@next/react-dev-overlay": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-12.0.4.tgz", + "integrity": "sha512-9O0lXyzv5goFSmDwq9Hp8JE+DcObvd+bTXvmGSSvYR91AlIoVlH8/PwATx8Rf5YEuqggn/XKR1hn2kBYcbcGnA==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.3", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.1" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@next/react-dev-overlay/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@next/react-dev-overlay/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-refresh-utils": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.4.tgz", + "integrity": "sha512-kNUDmpBaJ+8Lb8CtKNynRFF9oijCjUKKru6Ont+JKhti9//5dNFFIcuo607bJSH86un06OEK0TZUt5XWVlbkjw==", + "peerDependencies": { + "react-refresh": "0.8.3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@next/swc-android-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.4.tgz", + "integrity": "sha512-6mXumia8ZPcy7bYu9kjItfWxrE6SFaJyqQDaFy9G9WrU9x3M1R1Yok8B2X1mboM8itD0tq+t3R/ebQEkkmevUw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.4.tgz", + "integrity": "sha512-7WMen1qhF5JmjKD9S5IEgEoaPJOXyIZj/Nsqa8ZSWxdF5oogp3uYYbKb/rvMYoKzpIbjyoLH/OCM5lm5IFM4iw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.4.tgz", + "integrity": "sha512-PVgefMWjxP6CU1HQs39+Bfpjcue6qErJfvJ/+n2zimjLzyeQAmD6LM9f1lDSttW2LjKjasoxR5qkRNLVlqzlaA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.4.tgz", + "integrity": "sha512-8xGQu3sJiIdriKiCux3jDJ9pwivELEg7z2zfW0CqmQMbKNB7qP9lc0pq6CxshtKyXRMczNWRMtQ3Cjwep+UvNg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.4.tgz", + "integrity": "sha512-HhEWcBkqGr3E7SYLtN9VnYUGamAWaLcXawHN33Em0WP7gzXrBqz0iIJNH7uEzHDS6980EqU/rrkLyhCHrYSZgQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.4.tgz", + "integrity": "sha512-oZyQ9wjtE7OX9RlnovP7izNx2AR/RzTuYWU4Ttim8ssABsipQSxSlfRaeb+Qi6jTc6k+lrPhjRfaZ+fGv/m2Ag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.4.tgz", + "integrity": "sha512-aBuf78QzL93T59Lk9kEGfHcA+9SzYIH7dGon1nqVxtAd2iqicKYNVaVcb38VKeiIBXMSUHXTdu6Ee053ZCOmSw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.4.tgz", + "integrity": "sha512-yDgqUqL4H8M3Y0hv30ZyL9UvjnK4iXmD4I6iJz+XIHSRdA/VUiyKKoL7okf9hxr0mSxBtagbZ5A3qEoW/VliUQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.4.tgz", + "integrity": "sha512-evDUrEYsUo+PMHsedaymfZO98VwV9wNFzuWVCyKgqg6SD1ZRpzbpqYQY7aINIuqZVdIWZElBE6EM+oxaj7PuWQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.4.tgz", + "integrity": "sha512-Lbmz0xlo8vW4EDWyzCfy3nGfqt7skqwxaERwe+vDVTBZ56mvJ5dsdyjqK24sxu4FFkWR7SaU4eNlHwZR+A3kTg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.4.tgz", + "integrity": "sha512-f+7WNIJOno5QEelrmob+3vN5EZJb3KCkOrnvUsQ0+LCCD0dIPIhCjeHAh3BGj9msGu8ijnXvD7JxVxE5V26cnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@supabase/gotrue-js": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.21.6.tgz", + "integrity": "sha512-3UEM0uSufrwAFMXKfr4SDPsrkHkR0nprUlzkzSK6by1Owab6A3bcVChx3yZn7yWqW/cFY2t5CnqWR9ayaw4Pmw==", + "dependencies": { + "cross-fetch": "^3.0.6" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.35.0.tgz", + "integrity": "sha512-z+XKJ2oXuGEAEBVXseeQUXaM3ekQZK4XF0Kc399Glyg+rZaBTwNeJtY+Q/23NcIE5uNMYbTnEXm80jZbLBnWdw==", + "dependencies": { + "cross-fetch": "^3.0.6" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.0.tgz", + "integrity": "sha512-neGDYt7hzyEI+/8cofk4GO/es4TE+vOSsBLFveYTmjq8Yl1FfVtL5EHfiPP+xo//35RnzhD75v1jBUEOfMhCtw==", + "dependencies": { + "@types/websocket": "^1.0.3", + "websocket": "^1.0.34" + } + }, + "node_modules/@supabase/storage-js": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.5.0.tgz", + "integrity": "sha512-ki2HT9FrCYRN3yoqWqX+u47TUHQ8lgSStAqV/97kMov1z2d+iIlqGBGVcaGDqq4NvK8CipG8IJARYM72oX+afA==", + "dependencies": { + "cross-fetch": "^3.1.0" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.28.0.tgz", + "integrity": "sha512-dGY8CsS0gYLdQeTW8ueMrR+CC9+LTg/0KuM57ul00FwyqtyJQMNARYePr+IcUF9ML2B6KTNibnKuwSU2BbxnRA==", + "dependencies": { + "@supabase/gotrue-js": "^1.21.0", + "@supabase/postgrest-js": "^0.35.0", + "@supabase/realtime-js": "^1.2.1", + "@supabase/storage-js": "^1.5.0" + } + }, + "node_modules/@supabase/ui": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.36.0.tgz", + "integrity": "sha512-LAaqfVvCjy1yJeo/wDxNDHepef0zlxHgM2kWAOSu8HUiYr3aLFk+hmrwx166b18Ji9Fmqqy6CdeY0hfsrkwEYA==", + "dependencies": { + "lodash": "^4.17.20", + "prop-types": "^15.7.2" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.1", + "react-dom": "^16.13.1 || ^17.0.1" + } + }, + "node_modules/@types/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", + "deprecated": "This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "classnames": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", + "devOptional": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "devOptional": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "devOptional": true, + "peer": true + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "dev": true, + "dependencies": { + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "devOptional": true + }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + }, + "node_modules/@types/react": { + "version": "16.14.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.21.tgz", + "integrity": "sha512-rY4DzPKK/4aohyWiDRHS2fotN5rhBSK6/rz1X37KzNna9HJyqtaGAbq9fVttrEPWF5ywpfIP1ITL8Xi2QZn6Eg==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-copy-to-clipboard": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz", + "integrity": "sha512-iideNPRyroENqsOFh1i2Dv3zkviYS9r/9qD9Uh3Z9NNoAAqqa2x53i7iGndGNnJFIo20wIu7Hgh77tx1io8bgw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-dom": { + "version": "16.9.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.14.tgz", + "integrity": "sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A==", + "dev": true, + "dependencies": { + "@types/react": "^16" + } + }, + "node_modules/@types/react-syntax-highlighter": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.2.tgz", + "integrity": "sha512-sRZoKZBGKaE7CzMvTTgz+0x/aVR58ZYUTfB7HN76vC+yQnvo1FWtzNARBt0fGqcLGEVakEzMu/CtPzssmanu8Q==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "node_modules/@types/websocket": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", + "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "devOptional": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "devOptional": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "devOptional": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "devOptional": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "devOptional": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "devOptional": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "devOptional": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "devOptional": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "devOptional": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "devOptional": true, + "peer": true + }, + "node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "devOptional": true, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "devOptional": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "node_modules/ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/autolinker": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", + "integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=", + "dependencies": { + "gulp-header": "^1.7.1" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", + "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "dev": true, + "dependencies": { + "browserslist": "^4.17.5", + "caniuse-lite": "^1.0.30001272", + "fraction.js": "^4.1.1", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@babel/core": "^7.11.6" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", + "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz", + "integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", + "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/concat-with-sourcemaps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js-compat": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz", + "integrity": "sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==", + "dependencies": { + "browserslist": "^4.17.6", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-blank-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-blank-pseudo/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-blank-pseudo/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-blank-pseudo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "bin": { + "css-has-pseudo": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-has-pseudo/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-has-pseudo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-prefers-color-scheme": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-prefers-color-scheme/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/css-prefers-color-scheme/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-prefers-color-scheme/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", + "dev": true + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "node_modules/cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", + "dev": true + }, + "node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz", + "integrity": "sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==", + "dependencies": { + "caniuse-lite": "^1.0.30001202" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz", + "integrity": "sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==", + "dependencies": { + "cssnano-preset-simple": "^3.0.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/csstype": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/date-fns": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.10.0.tgz", + "integrity": "sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA==" + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "dependencies": { + "repeat-string": "^1.5.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diacritics-map": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", + "integrity": "sha1-bfwP+dAQAKLt8oZTccrDFulJd68=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", + "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.904", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", + "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "devOptional": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "devOptional": true, + "peer": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "devOptional": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "devOptional": true, + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "devOptional": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "devOptional": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fraction.js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "dependencies": { + "stream-parser": "^0.3.1" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/github-slugger": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", + "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gulp-header": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", + "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", + "deprecated": "Removed event-stream from gulp-header", + "dependencies": { + "concat-with-sourcemaps": "*", + "lodash.template": "^4.4.0", + "through2": "^2.0.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "dependencies": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dependencies": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", + "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-1.0.1.tgz", + "integrity": "sha512-P6Hq7RCky9syMevlrN90QWpqWDXCxwIVOfQR2rK6P4GpY4bqjKEuCzoWSRORZ7vz+VgRpLnXimh+mkwvVFjbyQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-sanitize": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-2.0.3.tgz", + "integrity": "sha512-RILqWHmzU0Anmfw1KEP41LbCsJuJUVM0lQWAbTDk9+0bWqzRFXDaMdqIoRocLlOfR5NfcWyhFfZw/mGsuftwYA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz", + "integrity": "sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==", + "dependencies": { + "ccount": "^1.0.0", + "comma-separated-tokens": "^1.0.1", + "hast-util-is-element": "^1.0.0", + "hast-util-whitespace": "^1.0.0", + "html-void-elements": "^1.0.0", + "property-information": "^5.2.0", + "space-separated-tokens": "^1.0.0", + "stringify-entities": "^2.0.0", + "unist-util-is": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html/node_modules/unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", + "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", + "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-to-react": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.7.tgz", + "integrity": "sha512-adtKiee5AtnuUhdB8bxbASRP2bW/A0OrlwysEuqZxXdURb0/1XR0m/woE1V5cJA1U5nyzAvk/PdFNO9S73DE/g==", + "dependencies": { + "domhandler": "^4.0", + "htmlparser2": "^7.0", + "lodash.camelcase": "^4.3.0", + "ramda": "^0.27.1" + }, + "peerDependencies": { + "react": "^16.0 || ^17.0" + } + }, + "node_modules/html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "devOptional": true, + "peer": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "devOptional": true + }, + "node_modules/json5": { + "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" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dependencies": { + "set-getter": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/list-item": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", + "integrity": "sha1-DGXQDih8tmPMs8s4Sad+iewmilY=", + "dependencies": { + "expand-range": "^1.8.1", + "extend-shallow": "^2.0.1", + "is-number": "^2.1.0", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "dependencies": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdown-link": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", + "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdown-toc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz", + "integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==", + "dependencies": { + "concat-stream": "^1.5.2", + "diacritics-map": "^0.1.0", + "gray-matter": "^2.1.0", + "lazy-cache": "^2.0.2", + "list-item": "^1.1.1", + "markdown-link": "^0.1.1", + "minimist": "^1.2.0", + "mixin-deep": "^1.1.3", + "object.pick": "^1.2.0", + "remarkable": "^1.7.1", + "repeat-string": "^1.6.1", + "strip-color": "^0.1.0" + }, + "bin": { + "markdown-toc": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-toc/node_modules/gray-matter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz", + "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=", + "dependencies": { + "ansi-red": "^0.1.1", + "coffee-script": "^1.12.4", + "extend-shallow": "^2.0.1", + "js-yaml": "^3.8.1", + "toml": "^2.3.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-add-list-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", + "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", + "dependencies": { + "unist-util-visit-parents": "1.1.2" + } + }, + "node_modules/mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dependencies": { + "unist-util-remove": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", + "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "dependencies": { + "escape-string-regexp": "^4.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", + "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^0.1.0", + "mdast-util-gfm-strikethrough": "^0.2.0", + "mdast-util-gfm-table": "^0.1.0", + "mdast-util-gfm-task-list-item": "^0.1.0", + "mdast-util-to-markdown": "^0.6.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", + "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", + "dependencies": { + "ccount": "^1.0.0", + "mdast-util-find-and-replace": "^1.1.0", + "micromark": "^2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", + "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", + "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "dependencies": { + "markdown-table": "^2.0.0", + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", + "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "dependencies": { + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", + "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "dependencies": { + "micromark": "~2.11.0", + "micromark-extension-gfm-autolink-literal": "~0.5.0", + "micromark-extension-gfm-strikethrough": "~0.6.5", + "micromark-extension-gfm-table": "~0.4.0", + "micromark-extension-gfm-tagfilter": "~0.3.0", + "micromark-extension-gfm-task-list-item": "~0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", + "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "dependencies": { + "micromark": "~2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", + "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", + "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", + "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", + "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "devOptional": true, + "peer": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/modern-normalize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", + "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "devOptional": true, + "peer": true + }, + "node_modules/next": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.0.4.tgz", + "integrity": "sha512-1pvjcSZBm5OLoGmDhp4JwKwIE798WbqUNLuyU7w6a2jUkdWaxOYtkE/ROXQTi2pXHj7+6rm68AvhxROLX2NHQg==", + "dependencies": { + "@babel/runtime": "7.15.4", + "@hapi/accept": "5.0.2", + "@napi-rs/triples": "1.0.3", + "@next/env": "12.0.4", + "@next/polyfill-module": "12.0.4", + "@next/react-dev-overlay": "12.0.4", + "@next/react-refresh-utils": "12.0.4", + "acorn": "8.5.0", + "assert": "2.0.0", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "3.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "events": "3.3.0", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "postcss": "8.2.15", + "process": "0.11.10", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "regenerator-runtime": "0.13.4", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "5.0.0-beta.3", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.4", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm64": "12.0.4", + "@next/swc-darwin-arm64": "12.0.4", + "@next/swc-darwin-x64": "12.0.4", + "@next/swc-linux-arm-gnueabihf": "12.0.4", + "@next/swc-linux-arm64-gnu": "12.0.4", + "@next/swc-linux-arm64-musl": "12.0.4", + "@next/swc-linux-x64-gnu": "12.0.4", + "@next/swc-linux-x64-musl": "12.0.4", + "@next/swc-win32-arm64-msvc": "12.0.4", + "@next/swc-win32-ia32-msvc": "12.0.4", + "@next/swc-win32-x64-msvc": "12.0.4" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-mdx-remote": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-2.1.4.tgz", + "integrity": "sha512-HHJasFVgPGjWXW3tWC37NCvHcQUOjJgVUMdwxgVbshwgtDLrGmupNkist/iamDLlvVibU52B9rqM9VAWofq7cA==", + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@mdx-js/mdx": "^1.6.22", + "@mdx-js/react": "^1.6.22" + }, + "peerDependencies": { + "react": ">=16.x <=17.x", + "react-dom": ">=16.x <=17.x" + } + }, + "node_modules/next-seo": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.28.1.tgz", + "integrity": "sha512-WZgwdM+UhpNF3A37zFllzmPhnOVJ9vYeYlc0n3Z/kYfz/QQgy8NEdncNNggS9dU4JD8xriaCcyknhy5OsrFsJw==", + "peerDependencies": { + "next": "^8.1.1-canary.54 || >=9.0.0", + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/next/node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/next/node_modules/node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, + "node_modules/next/node_modules/postcss": { + "version": "8.2.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", + "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==", + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/next/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "dependencies": { + "he": "1.2.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/postcss": { + "version": "8.3.11", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", + "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^0.6.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-functional-notation/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-gray/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-gray/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-gray/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-hex-alpha/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-mod-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-mod-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-mod-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-media/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-media/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-media/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-properties/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-properties/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-selectors/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-custom-selectors/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-double-position-gradients/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-env-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-env-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-env-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-visible/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-focus-visible/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-visible/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-within/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-focus-within/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-within/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-font-variant/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-font-variant/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-font-variant/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-gap-properties/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-gap-properties/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-gap-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-image-set-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-image-set-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-image-set-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-initial": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-initial/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-initial/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-initial/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-js": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", + "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1", + "postcss": "^8.1.6" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-lab-function/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-lab-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-lab-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "dependencies": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-logical/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-logical/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-logical/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-media-minmax/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-media-minmax/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-media-minmax/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-nesting/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-nesting/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-overflow-shorthand/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-page-break/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-page-break/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-page-break/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-place/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-place/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-place/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "dev": true, + "dependencies": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-preset-env/node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/postcss-preset-env/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-preset-env/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-preset-env/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-matches/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-selector-matches/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-matches/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-not/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-selector-not/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-not/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/prettier": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "dependencies": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prismjs": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", + "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/purgecss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", + "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", + "dev": true, + "dependencies": { + "commander": "^6.0.0", + "glob": "^7.0.0", + "postcss": "^8.2.1", + "postcss-selector-parser": "^6.0.2" + }, + "bin": { + "purgecss": "bin/purgecss.js" + } + }, + "node_modules/purgecss/node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/purgecss/node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-copy-to-clipboard": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.4.tgz", + "integrity": "sha512-IeVAiNVKjSPeGax/Gmkqfa/+PuMTBhutEvFUaMQLwE2tS0EXrAdgOpWDX26bWTXF3HrioorR7lr08NqeYUWQCQ==", + "dependencies": { + "copy-to-clipboard": "^3", + "prop-types": "^15.5.8" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-ga": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.0.tgz", + "integrity": "sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ==", + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0 || ^17" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-markdown": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-5.0.3.tgz", + "integrity": "sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==", + "dependencies": { + "@types/mdast": "^3.0.3", + "@types/unist": "^2.0.3", + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^9.0.0", + "unified": "^9.0.0", + "unist-util-visit": "^2.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/react-markdown/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-markdown/node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-syntax-highlighter": { + "version": "15.4.5", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.5.tgz", + "integrity": "sha512-RC90KQTxZ/b7+9iE6s9nmiFLFjWswUcfULi4GwVzdFVKVMQySkJWBuOmJFfjwjMVCo0IUUuJrWebNKyviKpwLQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "lowlight": "^1.17.0", + "prismjs": "^1.25.0", + "refractor": "^3.2.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/react-tooltip": { + "version": "4.2.21", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.2.21.tgz", + "integrity": "sha512-zSLprMymBDowknr0KVDiJ05IjZn9mQhhg4PRsqln0OZtURAJ1snt1xi5daZfagsh6vfsziZrc9pErPTDY1ACig==", + "dependencies": { + "prop-types": "^15.7.2", + "uuid": "^7.0.3" + }, + "engines": { + "npm": ">=6.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/react-tooltip/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dev": true, + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/refractor": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.5.0.tgz", + "integrity": "sha512-QwPJd3ferTZ4cSPPjdP5bsYHMytwWYnAN5EEnLtGvkqp/FCCnGsBgxrm9EuIDnjUC3Uc/kETtvVi7fSIVC74Dg==", + "dependencies": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.25.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "node_modules/regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/rehype-slug": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-4.0.1.tgz", + "integrity": "sha512-KIlJALf9WfHFF21icwTd2yI2IP+RQRweaxH9ChVGQwRYy36+hiomG4ZSe0yQRyCt+D/vE39LbAcOI/h4O4GPhA==", + "dependencies": { + "github-slugger": "^1.1.1", + "hast-util-has-property": "^1.0.0", + "hast-util-heading-rank": "^1.0.0", + "hast-util-to-string": "^1.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "dependencies": { + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", + "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "dependencies": { + "mdast-util-gfm": "^0.1.0", + "micromark-extension-gfm": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-10.0.0.tgz", + "integrity": "sha512-TbSQuedRFjAhXSk1NAbfaTqDK0jKAjfgn82D2ZYFFT8XpJ80uwXc8yVwK/Tl2eqboTMPxzNzCIss4kIucE5M8w==", + "dependencies": { + "hast-util-sanitize": "^2.0.0", + "hast-util-to-html": "^6.0.0", + "mdast-util-to-hast": "^6.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/remark-html/node_modules/mdast-util-definitions": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", + "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", + "dependencies": { + "unist-util-visit": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html/node_modules/mdast-util-to-hast": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-6.0.2.tgz", + "integrity": "sha512-GjcOimC9qHI0yNFAQdBesrZXzUkRdFleQlcoU8+TVNfDW6oLUazUx8MgUoTaUyCJzBOnE5AOgqhpURrSlf0QwQ==", + "dependencies": { + "collapse-white-space": "^1.0.0", + "detab": "^2.0.0", + "mdast-util-definitions": "^1.2.0", + "mdurl": "^1.0.1", + "trim": "0.0.1", + "trim-lines": "^1.0.0", + "unist-builder": "^1.0.1", + "unist-util-generated": "^1.1.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^1.1.0", + "xtend": "^4.0.1" + } + }, + "node_modules/remark-html/node_modules/unist-builder": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz", + "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==", + "dependencies": { + "object-assign": "^4.1.0" + } + }, + "node_modules/remark-html/node_modules/unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "node_modules/remark-html/node_modules/unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dependencies": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "node_modules/remark-html/node_modules/unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dependencies": { + "unist-util-is": "^3.0.0" + } + }, + "node_modules/remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", + "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark/node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remarkable": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", + "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", + "dependencies": { + "argparse": "^1.0.10", + "autolinker": "~0.28.0" + }, + "bin": { + "remarkable": "bin/remarkable.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "devOptional": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "devOptional": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-getter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", + "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", + "dependencies": { + "to-object-path": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", + "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", + "dependencies": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.2", + "is-hexadecimal": "^1.0.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-color": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", + "integrity": "sha1-EG9l09PmotlAHKwOsM6LinArT3s=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/styled-jsx": { + "version": "5.0.0-beta.3", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0-beta.3.tgz", + "integrity": "sha512-HtDDGSFPvmjHIqWf9n8Oo54tAoY/DTplvlyOH2+YOtD80Sp31Ap8ffSmxhgk5EkUoJ7xepdXMGT650mSffWuRA==", + "dependencies": { + "@babel/plugin-syntax-jsx": "7.14.5", + "@babel/types": "7.15.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || 18.x.x" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/styled-jsx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/styled-jsx/node_modules/@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/styled-jsx/node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/styled-jsx/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/styled-jsx/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/styled-jsx/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/styled-jsx/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swiper": { + "version": "6.8.4", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz", + "integrity": "sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/vladimirkharlampidi" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "hasInstallScript": true, + "dependencies": { + "dom7": "^3.0.0", + "ssr-window": "^3.0.0" + }, + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/swr": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/swr/-/swr-0.5.7.tgz", + "integrity": "sha512-Jh1Efgu8nWZV9rU4VLUMzBzcwaZgi4znqbVXvAtUy/0JzSiN6bNjLaJK8vhY/Rtp7a83dosz5YuehfBNwC/ZoQ==", + "dependencies": { + "dequal": "2.0.2" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0" + } + }, + "node_modules/tailwindcss": { + "version": "2.2.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.19.tgz", + "integrity": "sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw==", + "dev": true, + "dependencies": { + "arg": "^5.0.1", + "bytes": "^3.0.0", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "color": "^4.0.1", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.7", + "fs-extra": "^10.0.0", + "glob-parent": "^6.0.1", + "html-tags": "^3.1.0", + "is-color-stop": "^1.1.0", + "is-glob": "^4.0.1", + "lodash": "^4.17.21", + "lodash.topath": "^4.5.2", + "modern-normalize": "^1.1.0", + "node-emoji": "^1.11.0", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss-js": "^3.0.3", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0", + "pretty-hrtime": "^1.0.3", + "purgecss": "^4.0.3", + "quick-lru": "^5.1.1", + "reduce-css-calc": "^2.1.8", + "resolve": "^1.20.0", + "tmp": "^0.2.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "autoprefixer": "^10.0.2", + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/tailwindcss/node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tailwindcss/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "devOptional": true, + "peer": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", + "devOptional": true, + "peer": true, + "dependencies": { + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", + "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "devOptional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "devOptional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "peer": true + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", + "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==" + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "node_modules/trim-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", + "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "devOptional": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/webpack": { + "version": "5.64.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.2.tgz", + "integrity": "sha512-4KGc0+Ozi0aS3EaLNRvEppfZUer+CaORKqL6OBjDLZOPf9YfN8leagFzwe6/PoBdHFxc/utKArl8LMC0Ivtmdg==", + "devOptional": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.2.2" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "devOptional": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "devOptional": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==" + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" } }, "@babel/generator": { @@ -68,21 +11261,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz", - "integrity": "sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "requires": { "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/helper-create-class-features-plugin": { @@ -108,9 +11294,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", - "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -120,13 +11306,6 @@ "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/helper-explode-assignable-expression": { @@ -208,9 +11387,9 @@ "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz", - "integrity": "sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", + "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.0", "@babel/helper-wrap-function": "^7.16.0", @@ -274,12 +11453,12 @@ } }, "@babel/helpers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.0.tgz", - "integrity": "sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "requires": { "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", + "@babel/traverse": "^7.16.3", "@babel/types": "^7.16.0" } }, @@ -294,9 +11473,9 @@ } }, "@babel/parser": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.2.tgz", - "integrity": "sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==" + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.16.2", @@ -306,23 +11485,13 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - } - }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz", - "integrity": "sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0", + "@babel/helper-remap-async-to-generator": "^7.16.4", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, @@ -400,13 +11569,15 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -776,9 +11947,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.0.tgz", - "integrity": "sha512-XgnQEm1CevKROPx+udOi/8f8TiGhrUWiHiaUCIp47tE0tpFDjzXNTZc9E5CmCwxNjXTWEVqvRfWZYOTFvMa/ZQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", + "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -923,17 +12094,17 @@ } }, "@babel/preset-env": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz", - "integrity": "sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", "@babel/plugin-proposal-class-properties": "^7.16.0", "@babel/plugin-proposal-class-static-block": "^7.16.0", "@babel/plugin-proposal-dynamic-import": "^7.16.0", @@ -983,7 +12154,7 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", "@babel/plugin-transform-new-target": "^7.16.0", "@babel/plugin-transform-object-super": "^7.16.0", - "@babel/plugin-transform-parameters": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", "@babel/plugin-transform-property-literals": "^7.16.0", "@babel/plugin-transform-regenerator": "^7.16.0", "@babel/plugin-transform-reserved-words": "^7.16.0", @@ -996,29 +12167,22 @@ "@babel/plugin-transform-unicode-regex": "^7.16.0", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.2.3", - "babel-plugin-polyfill-corejs3": "^0.3.0", - "babel-plugin-polyfill-regenerator": "^0.2.3", - "core-js-compat": "^3.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", "semver": "^6.3.0" }, "dependencies": { - "@babel/plugin-proposal-object-rest-spread": { + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", - "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.0" + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -1058,9 +12222,9 @@ } }, "@babel/runtime": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.0.tgz", - "integrity": "sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -1076,16 +12240,16 @@ } }, "@babel/traverse": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.0.tgz", - "integrity": "sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", "requires": { "@babel/code-frame": "^7.16.0", "@babel/generator": "^7.16.0", "@babel/helper-function-name": "^7.16.0", "@babel/helper-hoist-variables": "^7.16.0", "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.0", + "@babel/parser": "^7.16.3", "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -1225,12 +12389,43 @@ "unified": "9.2.0", "unist-builder": "2.0.3", "unist-util-visit": "2.0.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "@mdx-js/react": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==" + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "requires": {} }, "@mdx-js/util": { "version": "1.6.22", @@ -1243,24 +12438,25 @@ "integrity": "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" }, "@next/env": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.3.tgz", - "integrity": "sha512-QcdlpcwIH9dYcVlNAU+gXaqHA/omskbRlb+R3vN7LlB2EgLt+9WQwbokcHOsNyt4pI7kDM67W4tr9l7dWnlGdQ==" + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.4.tgz", + "integrity": "sha512-QtZ6X5c6Zqa7oWs5csEmZ7xy+gLdtRKKg02SOT5l0Ziea4P5IU8mSOCyNC4fZmXewcRVjpbY+yGqAAP7hJUfOA==" }, "@next/mdx": { "version": "10.2.3", "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-10.2.3.tgz", - "integrity": "sha512-hseekptFqOCxLbdaNDS/yelaG2Q2uaNDilnRjq8Uv/LWHuZ9F2cp7ndwTolW9acJsbDedamKRMgdw4V2Fz0pUA==" + "integrity": "sha512-hseekptFqOCxLbdaNDS/yelaG2Q2uaNDilnRjq8Uv/LWHuZ9F2cp7ndwTolW9acJsbDedamKRMgdw4V2Fz0pUA==", + "requires": {} }, "@next/polyfill-module": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-12.0.3.tgz", - "integrity": "sha512-fgjVjdCk0Jq627d/N33oQIJjWrcKtzw6Dfa2PfypoIJ35/xFIKgs6mPyvq8cg3Ao5b7dEn9+Rw45PGjlY5e7JA==" + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-12.0.4.tgz", + "integrity": "sha512-mk9yCDNpfXINTJKFTZNgwYs7eqRFpc5D/49O/fKB59blihyKl1GY1sZ0l7a2bn5l1X/WuaZzcIfqnrwkneqeaQ==" }, "@next/react-dev-overlay": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-12.0.3.tgz", - "integrity": "sha512-gHfDEVHFeTUpQMcyytzvkuOu+5DQXjXbCbQHuavFftYrlHqXfzYFsa+wERff+g4/0IzEvcYVp3F4gdmynWfUog==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-12.0.4.tgz", + "integrity": "sha512-9O0lXyzv5goFSmDwq9Hp8JE+DcObvd+bTXvmGSSvYR91AlIoVlH8/PwATx8Rf5YEuqggn/XKR1hn2kBYcbcGnA==", "requires": { "@babel/code-frame": "7.12.11", "anser": "1.4.9", @@ -1337,74 +12533,75 @@ } }, "@next/react-refresh-utils": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.3.tgz", - "integrity": "sha512-YPtlfvkYh/4MvNNm5w3uwo+1KPMg67snzr5CuexbRewsu2ITaF7f0bh0Jcayi20wztk8SgWjNz1bmF8j9qbWIw==" + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.4.tgz", + "integrity": "sha512-kNUDmpBaJ+8Lb8CtKNynRFF9oijCjUKKru6Ont+JKhti9//5dNFFIcuo607bJSH86un06OEK0TZUt5XWVlbkjw==", + "requires": {} }, "@next/swc-android-arm64": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.3.tgz", - "integrity": "sha512-40sOl9/50aamX0dEMrecqJQcUrRK47D7S9F66ulrZmz+5Ujp0lnP1rBOXngo0PZMecfU1tr7zbNubiAMDxfCxw==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.4.tgz", + "integrity": "sha512-6mXumia8ZPcy7bYu9kjItfWxrE6SFaJyqQDaFy9G9WrU9x3M1R1Yok8B2X1mboM8itD0tq+t3R/ebQEkkmevUw==", "optional": true }, "@next/swc-darwin-arm64": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.3.tgz", - "integrity": "sha512-iKSe2hCMB51Ft41cNAxZk6St1rBlqSRtBSl4oO0zJlGu7bCxXCGCJ058/OLvYxcNWgz7ODOApObm3Yjv8XEvxg==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.4.tgz", + "integrity": "sha512-7WMen1qhF5JmjKD9S5IEgEoaPJOXyIZj/Nsqa8ZSWxdF5oogp3uYYbKb/rvMYoKzpIbjyoLH/OCM5lm5IFM4iw==", "optional": true }, "@next/swc-darwin-x64": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.3.tgz", - "integrity": "sha512-/BcnfLyhIj4rgU3yVDfD8uXK2TcNYIdflYHKkjFxd3/J1GWOtBN31m0dB8fL0h5LdW11kzaXvVvab3f5ilkEww==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.4.tgz", + "integrity": "sha512-PVgefMWjxP6CU1HQs39+Bfpjcue6qErJfvJ/+n2zimjLzyeQAmD6LM9f1lDSttW2LjKjasoxR5qkRNLVlqzlaA==", "optional": true }, "@next/swc-linux-arm-gnueabihf": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.3.tgz", - "integrity": "sha512-2HNPhBJuN9L6JzqqqdYB4TKfFFmaKkpF0X3C1s83Xp61mR2sx8gOthHQtZqWDs4ZLnKZU0j2flGU1uuqpHPCpg==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.4.tgz", + "integrity": "sha512-8xGQu3sJiIdriKiCux3jDJ9pwivELEg7z2zfW0CqmQMbKNB7qP9lc0pq6CxshtKyXRMczNWRMtQ3Cjwep+UvNg==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.3.tgz", - "integrity": "sha512-NXTON1XK7zi2i+A+bY1PVLi1g5b8cSwgzbnuVR0vAgOtU+3at7FqAKOWfuFIXY7eBEK65uu0Fu5gADhMj0uanQ==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.4.tgz", + "integrity": "sha512-HhEWcBkqGr3E7SYLtN9VnYUGamAWaLcXawHN33Em0WP7gzXrBqz0iIJNH7uEzHDS6980EqU/rrkLyhCHrYSZgQ==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.3.tgz", - "integrity": "sha512-8D0q22VavhcIl2ZQErEffgh5q6mChaG84uTluAoFfjwrgYtPDZX0M5StqkTZL6T5gA5RLHboNVoscIKGZWMojQ==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.4.tgz", + "integrity": "sha512-oZyQ9wjtE7OX9RlnovP7izNx2AR/RzTuYWU4Ttim8ssABsipQSxSlfRaeb+Qi6jTc6k+lrPhjRfaZ+fGv/m2Ag==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.3.tgz", - "integrity": "sha512-4mkimH9nMzbuQfLmZ152NYSHdrII9AeqrkrHszexL1Lup2TLMPuxlXj55eVnyyeKFXRLlnqbCu7aOIND68RbOA==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.4.tgz", + "integrity": "sha512-aBuf78QzL93T59Lk9kEGfHcA+9SzYIH7dGon1nqVxtAd2iqicKYNVaVcb38VKeiIBXMSUHXTdu6Ee053ZCOmSw==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.3.tgz", - "integrity": "sha512-MXvx+IDYoSsSM7KcwbQAVo9r+ZeklHeDQiUEmyRRzQE1Q4JvkWwMdPu/NfFdyxur+RfKjRoUoWFdPi5MBKTpkw==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.4.tgz", + "integrity": "sha512-yDgqUqL4H8M3Y0hv30ZyL9UvjnK4iXmD4I6iJz+XIHSRdA/VUiyKKoL7okf9hxr0mSxBtagbZ5A3qEoW/VliUQ==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.3.tgz", - "integrity": "sha512-8GusumFZLp/mtVix+3JZVTGqzqntTsrTIFZ+GpcLMwyVjB3KkBwHiwJaa38WGleUinJSpJvgmhTWgppsiSKW3A==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.4.tgz", + "integrity": "sha512-evDUrEYsUo+PMHsedaymfZO98VwV9wNFzuWVCyKgqg6SD1ZRpzbpqYQY7aINIuqZVdIWZElBE6EM+oxaj7PuWQ==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.3.tgz", - "integrity": "sha512-mF7bkxSZ++QiB+E0HFqay/etvPF+ZFcCuG27lSwFIM00J+TE0IRqMyMx66vJ8g1h6khpwXPI0o2hrwIip/r8cQ==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.4.tgz", + "integrity": "sha512-Lbmz0xlo8vW4EDWyzCfy3nGfqt7skqwxaERwe+vDVTBZ56mvJ5dsdyjqK24sxu4FFkWR7SaU4eNlHwZR+A3kTg==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.3.tgz", - "integrity": "sha512-eXFwyf46UFFggMQ3k2tJsOmB3SuKjWaSiZJH0tTDUsLw74lyqyzJqMCVA4yY0gWSlEnSjmX5nrCBknVZd3joaA==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.4.tgz", + "integrity": "sha512-f+7WNIJOno5QEelrmob+3vN5EZJb3KCkOrnvUsQ0+LCCD0dIPIhCjeHAh3BGj9msGu8ijnXvD7JxVxE5V26cnQ==", "optional": true }, "@nodelib/fs.scandir": { @@ -1434,57 +12631,57 @@ } }, "@supabase/gotrue-js": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.19.0.tgz", - "integrity": "sha512-pfCFEe8CB926Qf/F+3SngbG3TzaSk2/ABelVBLM5H1xsy7jJMvJ30xqY7gqKwH4Hb+u/LZjv2UhoyCi3Emg49A==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.21.6.tgz", + "integrity": "sha512-3UEM0uSufrwAFMXKfr4SDPsrkHkR0nprUlzkzSK6by1Owab6A3bcVChx3yZn7yWqW/cFY2t5CnqWR9ayaw4Pmw==", "requires": { "cross-fetch": "^3.0.6" } }, "@supabase/postgrest-js": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.34.1.tgz", - "integrity": "sha512-64RQhBpwZDXOpPRCHqrCrlVcyPWE/p4nH6/ALnJCvTkQHkyzXNPDoTlX6OjbuyMH9/BNvgVhEZth0e6hfpWDXw==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.35.0.tgz", + "integrity": "sha512-z+XKJ2oXuGEAEBVXseeQUXaM3ekQZK4XF0Kc399Glyg+rZaBTwNeJtY+Q/23NcIE5uNMYbTnEXm80jZbLBnWdw==", "requires": { "cross-fetch": "^3.0.6" } }, "@supabase/realtime-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.2.1.tgz", - "integrity": "sha512-nhwSvizonT8hiMoQHOqs+2MZNV8qkhKn552g7NIJktVmqpz//O1dGjdcXyjhbAurW18z0Y7Qa9G7UXfEYJKRPQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.0.tgz", + "integrity": "sha512-neGDYt7hzyEI+/8cofk4GO/es4TE+vOSsBLFveYTmjq8Yl1FfVtL5EHfiPP+xo//35RnzhD75v1jBUEOfMhCtw==", "requires": { "@types/websocket": "^1.0.3", "websocket": "^1.0.34" } }, "@supabase/storage-js": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.4.1.tgz", - "integrity": "sha512-sMhFbuiSPh31m5NPuEZmDVbOLe0QjvkOVXceGk0J1KtApz+3LOXf+BZLNG8Ss9djc8ZkT2HWgu/m8cunJm9Mig==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.5.0.tgz", + "integrity": "sha512-ki2HT9FrCYRN3yoqWqX+u47TUHQ8lgSStAqV/97kMov1z2d+iIlqGBGVcaGDqq4NvK8CipG8IJARYM72oX+afA==", "requires": { "cross-fetch": "^3.1.0" } }, "@supabase/supabase-js": { - "version": "1.25.2", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.25.2.tgz", - "integrity": "sha512-pRwFuZQD5srzdFrVkZgblxcB1XRpDQa8FUR0JuU8Qo6W1tdd3eL7uUnx+TU1W6VcFqS19q3hGsL5/M0UyvI+XQ==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.28.0.tgz", + "integrity": "sha512-dGY8CsS0gYLdQeTW8ueMrR+CC9+LTg/0KuM57ul00FwyqtyJQMNARYePr+IcUF9ML2B6KTNibnKuwSU2BbxnRA==", "requires": { - "@supabase/gotrue-js": "^1.19.0", - "@supabase/postgrest-js": "^0.34.0", + "@supabase/gotrue-js": "^1.21.0", + "@supabase/postgrest-js": "^0.35.0", "@supabase/realtime-js": "^1.2.1", - "@supabase/storage-js": "^1.4.0" + "@supabase/storage-js": "^1.5.0" } }, "@supabase/ui": { - "version": "0.22.3", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.22.3.tgz", - "integrity": "sha512-2u4CJ9neUCHFcKxW10E1Y7l4gAnSIz3hWC9nYqdGb5TN0h1AnzazGLCtRqL/58EsKBiwANXulLiIBe5xLcJSUg==", + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.36.0.tgz", + "integrity": "sha512-LAaqfVvCjy1yJeo/wDxNDHepef0zlxHgM2kWAOSu8HUiYr3aLFk+hmrwx166b18Ji9Fmqqy6CdeY0hfsrkwEYA==", "requires": { + "fsevents": "^2.3.2", "lodash": "^4.17.20", - "prop-types": "^15.7.2", - "react-transition-group": "^4.4.1" + "prop-types": "^15.7.2" } }, "@types/classnames": { @@ -1496,6 +12693,35 @@ "classnames": "*" } }, + "@types/eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", + "devOptional": true, + "peer": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "devOptional": true, + "peer": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "devOptional": true, + "peer": true + }, "@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -1543,7 +12769,7 @@ "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "devOptional": true }, "@types/mdast": { "version": "3.0.10", @@ -1554,10 +12780,9 @@ } }, "@types/node": { - "version": "14.17.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz", - "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==", - "dev": true + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" }, "@types/parse-json": { "version": "4.0.0", @@ -1573,14 +12798,12 @@ "@types/prop-types": { "version": "15.7.4", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", - "dev": true + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "@types/react": { - "version": "16.14.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.20.tgz", - "integrity": "sha512-SV7TaVc8e9E/5Xuv6TIyJ5VhQpZoVFJqX6IZgj5HZoFCtIDCArE3qXkcHlc6O/Ud4UwcMoX+tlvDA95YrKdLgA==", - "dev": true, + "version": "16.14.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.21.tgz", + "integrity": "sha512-rY4DzPKK/4aohyWiDRHS2fotN5rhBSK6/rz1X37KzNna9HJyqtaGAbq9fVttrEPWF5ywpfIP1ITL8Xi2QZn6Eg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1617,8 +12840,7 @@ "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/unist": { "version": "2.0.6", @@ -1631,13 +12853,6 @@ "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==" - } } }, "@types/yargs": { @@ -1655,11 +12870,194 @@ "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "devOptional": true, + "peer": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "devOptional": true, + "peer": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "devOptional": true, + "peer": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "devOptional": true, + "peer": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "devOptional": true, + "peer": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "devOptional": true, + "peer": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "devOptional": true, + "peer": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "devOptional": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "devOptional": true, + "peer": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "devOptional": true, + "peer": true + }, "acorn": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "devOptional": true, + "peer": true, + "requires": {} + }, "acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", @@ -1689,7 +13087,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "devOptional": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1701,7 +13099,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "devOptional": true, + "requires": {} }, "anser": { "version": "1.4.9", @@ -1717,10 +13116,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -1807,27 +13205,6 @@ "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", - "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - } } }, "available-typed-arrays": { @@ -1874,6 +13251,33 @@ } } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + } + }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -2023,15 +13427,15 @@ } }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "buffer": { @@ -2092,9 +13496,9 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, "caniuse-lite": { - "version": "1.0.30001278", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz", - "integrity": "sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg==" + "version": "1.0.30001282", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz", + "integrity": "sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==" }, "ccount": { "version": "1.1.0", @@ -2146,6 +13550,13 @@ "readdirp": "~3.5.0" } }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "devOptional": true, + "peer": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -2303,23 +13714,6 @@ "semver": "7.0.0" }, "dependencies": { - "browserslist": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", - "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", - "requires": { - "caniuse-lite": "^1.0.30001274", - "electron-to-chromium": "^1.3.886", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -2558,9 +13952,9 @@ } }, "csstype": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", - "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, "d": { "version": "1.0.1", @@ -2744,9 +14138,9 @@ } }, "electron-to-chromium": { - "version": "1.3.889", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.889.tgz", - "integrity": "sha512-suEUoPTD1mExjL9TdmH7cvEiWJVM2oEiAi+Y1p0QKxI2HcRlT44qDTP2c1aZmVwRemIPYOpxmV7CxQCOWcm4XQ==" + "version": "1.3.904", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz", + "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==" }, "elliptic": { "version": "6.5.4", @@ -2782,6 +14176,17 @@ "iconv-lite": "^0.6.2" } }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "devOptional": true, + "peer": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, "entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", @@ -2794,14 +14199,6 @@ "dev": true, "requires": { "is-arrayish": "^0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - } } }, "es-abstract": { @@ -2831,42 +14228,12 @@ "unbox-primitive": "^1.0.1" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "devOptional": true, + "peer": true }, "es-to-primitive": { "version": "1.2.1", @@ -2922,11 +14289,48 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "devOptional": true, + "peer": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "devOptional": true, + "peer": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "devOptional": true, + "peer": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "devOptional": true, + "peer": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2991,7 +14395,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "devOptional": true }, "fast-glob": { "version": "3.2.7", @@ -3010,7 +14414,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "devOptional": true }, "fastq": { "version": "1.13.0", @@ -3092,9 +14496,9 @@ "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" }, "fraction.js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", - "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", "dev": true }, "fs-extra": { @@ -3157,15 +14561,6 @@ "get-intrinsic": "^1.1.1" } }, - "github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "github-slugger": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", @@ -3487,9 +14882,9 @@ "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" }, "htmlparser2": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.1.2.tgz", - "integrity": "sha512-d6cqsbJba2nRdg8WW2okyD4ceonFHn9jLFxhwlNcLhQWcFPdxXeJulgOLjLKtAK9T6ahd+GQNZwG9fjmGW7lyg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -3631,9 +15026,9 @@ } }, "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { @@ -3844,48 +15239,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -4035,6 +15388,13 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "devOptional": true, + "peer": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4045,7 +15405,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "devOptional": true }, "json5": { "version": "2.2.0", @@ -4079,15 +15439,15 @@ } }, "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", "dev": true }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "list-item": { @@ -4101,6 +15461,13 @@ "repeat-string": "^1.5.2" } }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "devOptional": true, + "peer": true + }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -4200,13 +15567,6 @@ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "markdown-escapes": { @@ -4281,13 +15641,6 @@ "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", "requires": { "unist-util-visit-parents": "1.1.2" - }, - "dependencies": { - "unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" - } } }, "mdast-squeeze-paragraphs": { @@ -4320,6 +15673,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } } } }, @@ -4516,6 +15878,23 @@ } } }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "devOptional": true, + "peer": true + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "devOptional": true, + "peer": true, + "requires": { + "mime-db": "1.51.0" + } + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -4575,29 +15954,36 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "devOptional": true, + "peer": true + }, "next": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/next/-/next-12.0.3.tgz", - "integrity": "sha512-GGdhTBcerdMZbitrO67IVetmB+AHa2X69xrkXKClUT8SRu8pEVto/2QMSnfI+uYc5czCUWPsVtVY3aMoMRMaCA==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/next/-/next-12.0.4.tgz", + "integrity": "sha512-1pvjcSZBm5OLoGmDhp4JwKwIE798WbqUNLuyU7w6a2jUkdWaxOYtkE/ROXQTi2pXHj7+6rm68AvhxROLX2NHQg==", "requires": { "@babel/runtime": "7.15.4", "@hapi/accept": "5.0.2", "@napi-rs/triples": "1.0.3", - "@next/env": "12.0.3", - "@next/polyfill-module": "12.0.3", - "@next/react-dev-overlay": "12.0.3", - "@next/react-refresh-utils": "12.0.3", - "@next/swc-android-arm64": "12.0.3", - "@next/swc-darwin-arm64": "12.0.3", - "@next/swc-darwin-x64": "12.0.3", - "@next/swc-linux-arm-gnueabihf": "12.0.3", - "@next/swc-linux-arm64-gnu": "12.0.3", - "@next/swc-linux-arm64-musl": "12.0.3", - "@next/swc-linux-x64-gnu": "12.0.3", - "@next/swc-linux-x64-musl": "12.0.3", - "@next/swc-win32-arm64-msvc": "12.0.3", - "@next/swc-win32-ia32-msvc": "12.0.3", - "@next/swc-win32-x64-msvc": "12.0.3", + "@next/env": "12.0.4", + "@next/polyfill-module": "12.0.4", + "@next/react-dev-overlay": "12.0.4", + "@next/react-refresh-utils": "12.0.4", + "@next/swc-android-arm64": "12.0.4", + "@next/swc-darwin-arm64": "12.0.4", + "@next/swc-darwin-x64": "12.0.4", + "@next/swc-linux-arm-gnueabihf": "12.0.4", + "@next/swc-linux-arm64-gnu": "12.0.4", + "@next/swc-linux-arm64-musl": "12.0.4", + "@next/swc-linux-x64-gnu": "12.0.4", + "@next/swc-linux-x64-musl": "12.0.4", + "@next/swc-win32-arm64-msvc": "12.0.4", + "@next/swc-win32-ia32-msvc": "12.0.4", + "@next/swc-win32-x64-msvc": "12.0.4", "acorn": "8.5.0", "assert": "2.0.0", "browserify-zlib": "0.2.0", @@ -4642,14 +16028,6 @@ "watchpack": "2.1.1" }, "dependencies": { - "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, "browserslist": { "version": "4.16.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", @@ -4662,6 +16040,11 @@ "node-releases": "^1.1.71" } }, + "node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + }, "postcss": { "version": "8.2.15", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", @@ -4672,28 +16055,10 @@ "source-map": "^0.6.1" } }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", - "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -4708,41 +16073,13 @@ "@babel/preset-typescript": "^7.12.7", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22" - }, - "dependencies": { - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "next-seo": { "version": "4.28.1", "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.28.1.tgz", - "integrity": "sha512-WZgwdM+UhpNF3A37zFllzmPhnOVJ9vYeYlc0n3Z/kYfz/QQgy8NEdncNNggS9dU4JD8xriaCcyknhy5OsrFsJw==" + "integrity": "sha512-WZgwdM+UhpNF3A37zFllzmPhnOVJ9vYeYlc0n3Z/kYfz/QQgy8NEdncNNggS9dU4JD8xriaCcyknhy5OsrFsJw==", + "requires": {} }, "next-tick": { "version": "1.0.0", @@ -4777,9 +16114,9 @@ } }, "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" }, "normalize-path": { "version": "3.0.0", @@ -5021,7 +16358,6 @@ "version": "8.3.11", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", - "dev": true, "requires": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", @@ -6222,6 +17558,12 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true } } }, @@ -6254,6 +17596,13 @@ "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } } }, "property-information": { @@ -6319,17 +17668,6 @@ } } }, - "query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -6416,13 +17754,12 @@ } }, "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" } }, "react-copy-to-clipboard": { @@ -6435,25 +17772,25 @@ } }, "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" } }, "react-ga": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.0.tgz", - "integrity": "sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ==" + "integrity": "sha512-o8RScHj6Lb8cwy3GMrVH6NJvL+y0zpJvKtc0+wmH7Bt23rszJmnqEQxRbyrqUzk9DTJIHoP42bfO5rswC9SWBQ==", + "requires": {} }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "react-markdown": { "version": "5.0.3", @@ -6472,6 +17809,11 @@ "xtend": "^4.0.1" }, "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", @@ -6488,14 +17830,14 @@ "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" }, "react-syntax-highlighter": { - "version": "15.4.4", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.4.tgz", - "integrity": "sha512-PsOFHNTzkb3OroXdoR897eKN5EZ6grht1iM+f1lJSq7/L0YVnkJaNVwC3wEUYPOAmeyl5xyer1DjL6MrumO6Zw==", + "version": "15.4.5", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.5.tgz", + "integrity": "sha512-RC90KQTxZ/b7+9iE6s9nmiFLFjWswUcfULi4GwVzdFVKVMQySkJWBuOmJFfjwjMVCo0IUUuJrWebNKyviKpwLQ==", "requires": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", "lowlight": "^1.17.0", - "prismjs": "^1.22.0", + "prismjs": "^1.25.0", "refractor": "^3.2.0" } }, @@ -6538,6 +17880,16 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "readdirp": { @@ -6590,9 +17942,9 @@ } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" }, "regenerator-transform": { "version": "0.14.5", @@ -6764,10 +18116,48 @@ "unified": "9.2.0" }, "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -6900,9 +18290,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -6912,7 +18302,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, + "devOptional": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -6929,9 +18319,19 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "devOptional": true, + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } }, "set-getter": { "version": "0.1.1", @@ -6982,6 +18382,14 @@ "dev": true, "requires": { "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } } }, "source-map": { @@ -6992,8 +18400,27 @@ "source-map-js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "peer": true + } + } }, "space-separated-tokens": { "version": "1.1.5", @@ -7095,58 +18522,42 @@ } } }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "stringify-entities": { @@ -7167,13 +18578,6 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } } }, "strip-bom-string": { @@ -7209,16 +18613,6 @@ "stylis-rule-sheet": "0.0.10" }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" - }, "@babel/plugin-syntax-jsx": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", @@ -7282,13 +18676,13 @@ "stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -7462,6 +18856,93 @@ } } }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "devOptional": true, + "peer": true + }, + "terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "devOptional": true, + "peer": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "peer": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "devOptional": true, + "peer": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", + "devOptional": true, + "peer": true, + "requires": { + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "devOptional": true, + "peer": true + }, + "jest-worker": { + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", + "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "devOptional": true, + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "devOptional": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -7603,20 +19084,9 @@ } }, "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", + "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==" }, "unbox-primitive": { "version": "1.0.1", @@ -7733,16 +19203,23 @@ "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" + }, + "dependencies": { + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + } } }, "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" }, "universalify": { "version": "2.0.0", @@ -7759,7 +19236,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, + "devOptional": true, "requires": { "punycode": "^2.1.0" } @@ -7852,6 +19329,59 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, + "webpack": { + "version": "5.64.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.2.tgz", + "integrity": "sha512-4KGc0+Ozi0aS3EaLNRvEppfZUer+CaORKqL6OBjDLZOPf9YfN8leagFzwe6/PoBdHFxc/utKArl8LMC0Ivtmdg==", + "devOptional": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.2.2" + }, + "dependencies": { + "watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "devOptional": true, + "peer": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + } + } + }, + "webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "devOptional": true, + "peer": true + }, "websocket": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", diff --git a/www/package.json b/www/package.json index 40ff6bd5001..fb4534a5c06 100644 --- a/www/package.json +++ b/www/package.json @@ -16,7 +16,7 @@ "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", "@supabase/supabase-js": "^1.6.0", - "@supabase/ui": "^0.25.0", + "@supabase/ui": "^0.36.0", "classnames": "2.2.6", "date-fns": "2.10.0", "gray-matter": "^4.0.2", @@ -24,9 +24,9 @@ "next": "latest", "next-mdx-remote": "^2.1.3", "next-seo": "^4.20.0", - "react": "^16.13.0", + "react": "^17.0.1", "react-copy-to-clipboard": "^5.0.2", - "react-dom": "^16.13.0", + "react-dom": "^17.0.1", "react-ga": "^3.3.0", "react-markdown": "^5.0.3", "react-syntax-highlighter": "^15.3.1", From c1b8cac31e6fc2249f39f46e7e2231a8cf8d5f94 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 22 Nov 2021 18:24:02 +0800 Subject: [PATCH 010/166] chore: switch dropdown to use tabs --- www/components/Blog/BlogHeader.tsx | 2 +- www/components/Blog/BlogListItem.tsx | 42 ++++++++++++++++++--------- www/pages/blog.tsx | 43 ++++++++++++++++++++++------ 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/www/components/Blog/BlogHeader.tsx b/www/components/Blog/BlogHeader.tsx index d4b37e91387..5f9d1d18a91 100644 --- a/www/components/Blog/BlogHeader.tsx +++ b/www/components/Blog/BlogHeader.tsx @@ -7,7 +7,7 @@ interface Props { export default function BlogHeader({ title }: Props) { return ( -

+
diff --git a/www/components/Blog/BlogListItem.tsx b/www/components/Blog/BlogListItem.tsx index 66d5a30d419..4b13c5ac54d 100644 --- a/www/components/Blog/BlogListItem.tsx +++ b/www/components/Blog/BlogListItem.tsx @@ -20,9 +20,9 @@ const BlogListItem = ({ blog }: Props) => {
-
+
{
-
- {blog.date} - • - {blog.readingTime} -
- + {blog.title}
+ + {blog.date} + + + +

{blog.description}

+
+ + {author && ( +
+ + {author.author_image_url && ( + + )} + + {author.author} + + {author.position} + + + +
+ )} {/* {author && (
@@ -63,20 +81,16 @@ const BlogListItem = ({ blog }: Props) => { )} */}
- {blog.tags && + {/* {blog.tags && blog.tags.map((tag: string) => (
{capitalize(tag.replace('-', ' '))}
- ))} + ))} */}
- - {blog.description} - - {/* {blog.content.substring(0, 210) + '...'} diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index 520414bbc21..53877d220fd 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -10,10 +10,21 @@ import { getSortedPosts, getAllCategories } from '~/lib/posts' import authors from 'lib/authors.json' import DefaultLayout from '~/components/Layouts/Default' -import { Typography, Badge, Space, Dropdown, Button, IconChevronDown } from '@supabase/ui' +import { + Typography, + Badge, + Space, + Dropdown, + Button, + IconChevronDown, + Tabs, + Input, + IconMail, +} from '@supabase/ui' import PostTypes from '~/types/post' import BlogListItem from '~/components/Blog/BlogListItem' import BlogHeader from '~/components/Blog/BlogHeader' +import { Panel } from '@supabase/ui/dist/cjs/components/Tabs/Tabs' export async function getStaticProps() { const allPostsData = getSortedPosts('_blog') @@ -50,6 +61,13 @@ function Blog(props: any) { ) }, [category]) + useEffect(() => { + return props.categories.push('all') + }, []) + + // append 'all' category + // const categories = props.categories.push('all') + return ( <> @@ -62,26 +80,33 @@ function Blog(props: any) { - - + {/* */}
- Latests post {props.blogs.slice(0, 1).map((blog: any, idx: any) => { return FeaturedThumb(blog) })}
+
-
- More posts from the team +
+ + {props.categories.map((categoryId: string) => ( + + {/*

{categoryId}

*/} + <> +
+ ))} +
+ {/* More posts from the team */}
-
+ {/*
Select a category -
+
*/}
@@ -119,7 +144,7 @@ function Blog(props: any) {
{/*
diff --git a/www/pages/blog/tags/[tag].tsx b/www/pages/blog/tags/[tag].tsx index dc204d18791..26d9e45272f 100644 --- a/www/pages/blog/tags/[tag].tsx +++ b/www/pages/blog/tags/[tag].tsx @@ -1,10 +1,12 @@ import { NextSeo } from 'next-seo' import { getSortedPosts, getAllCategories } from '~/lib/posts' +import Link from 'next/link' import DefaultLayout from '~/components/Layouts/Default' import BlogListItem from '~/components/Blog/BlogListItem' import PostTypes from '~/types/post' import BlogHeader from '~/components/Blog/BlogHeader' +import { Typography } from '@supabase/ui' export async function getStaticProps({ params }: any) { const posts = getSortedPosts('_blog', 0, [params.tag]) @@ -33,13 +35,24 @@ function TagBlogsPage(props: Props) { const { blogs, tag } = props return ( <> - + - -
- {blogs.map((blog: PostTypes, idx: number) => ( - - ))} + {/* */} +
+
+ + Blog + + / + {`${tag}`} +
+
    + {blogs.map((blog: PostTypes, idx: number) => ( +
    + +
    + ))} +
From 8b0c3b637f8c33e847d667539ff6277869a084c1 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 26 Nov 2021 16:40:52 +0800 Subject: [PATCH 017/166] chore: add hover animation --- www/components/Blog/BlogListItem.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/components/Blog/BlogListItem.tsx b/www/components/Blog/BlogListItem.tsx index 4b13c5ac54d..367854de479 100644 --- a/www/components/Blog/BlogListItem.tsx +++ b/www/components/Blog/BlogListItem.tsx @@ -19,7 +19,7 @@ const BlogListItem = ({ blog }: Props) => { return (
-
+
{ : `/images/blog/${blog.thumb}` } objectFit="cover" + className="transform duration-100 ease-in scale-100 group-hover:scale-105" />
From 9f8976457b9d236ac83061ee6df91cf7e28fb4b7 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 26 Nov 2021 16:41:49 +0800 Subject: [PATCH 018/166] remove unused code --- www/pages/blog/tags/[tag].tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/www/pages/blog/tags/[tag].tsx b/www/pages/blog/tags/[tag].tsx index 26d9e45272f..f6eb500c565 100644 --- a/www/pages/blog/tags/[tag].tsx +++ b/www/pages/blog/tags/[tag].tsx @@ -37,7 +37,6 @@ function TagBlogsPage(props: Props) { <> - {/* */}
From 682ee67e7ef494f71fc8882fa7077670e1082582 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 26 Nov 2021 16:49:22 +0800 Subject: [PATCH 019/166] clean uo --- www/pages/blog.tsx | 79 ++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index d8d7035741c..61874adf706 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -10,21 +10,9 @@ import { getSortedPosts, getAllCategories } from '~/lib/posts' import authors from 'lib/authors.json' import DefaultLayout from '~/components/Layouts/Default' -import { - Typography, - Badge, - Space, - Dropdown, - Button, - IconChevronDown, - Tabs, - Input, - IconMail, -} from '@supabase/ui' +import { Typography, Space, Tabs } from '@supabase/ui' import PostTypes from '~/types/post' import BlogListItem from '~/components/Blog/BlogListItem' -import BlogHeader from '~/components/Blog/BlogHeader' -import { Panel } from '@supabase/ui/dist/cjs/components/Tabs/Tabs' export async function getStaticProps() { const allPostsData = getSortedPosts('_blog') @@ -132,58 +120,39 @@ function FeaturedThumb(blog: PostTypes) { return (
- + - +
+
+ {blog.date} + • + {blog.readingTime} +
+
{author && ( -
- - {author.author_image_url && ( - - )} - - {author.author} - - {author.position} - - - +
+ {author.author_image_url && ( + + )} +
+ {author.author} + + {author.position} + +
)} - +
From 58fee193819658541d07c1c3918434000f193808 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 26 Nov 2021 16:49:33 +0800 Subject: [PATCH 020/166] remove import --- www/pages/blog.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/pages/blog.tsx b/www/pages/blog.tsx index 61874adf706..e7f5ea9a01c 100644 --- a/www/pages/blog.tsx +++ b/www/pages/blog.tsx @@ -10,7 +10,7 @@ import { getSortedPosts, getAllCategories } from '~/lib/posts' import authors from 'lib/authors.json' import DefaultLayout from '~/components/Layouts/Default' -import { Typography, Space, Tabs } from '@supabase/ui' +import { Typography, Tabs } from '@supabase/ui' import PostTypes from '~/types/post' import BlogListItem from '~/components/Blog/BlogListItem' From 969cdd0dab19952ad6d470df153ec73a0a7aae7c Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 26 Nov 2021 19:37:55 +0800 Subject: [PATCH 021/166] chore: spacing --- www/components/Blog/BlogListItem.tsx | 57 ++++++++++++++-------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/www/components/Blog/BlogListItem.tsx b/www/components/Blog/BlogListItem.tsx index 367854de479..6e3b4abb84a 100644 --- a/www/components/Blog/BlogListItem.tsx +++ b/www/components/Blog/BlogListItem.tsx @@ -20,35 +20,36 @@ const BlogListItem = ({ blog }: Props) => {
-
-
- +
+
+
+ +
+ +
+ + {blog.title} + +
+ + {blog.date} + + + +

{blog.description}

+
- -
- - {blog.title} - -
- - {blog.date} - - - -

{blog.description}

-
- {author && (
From 6f2883e7370091b3b393019d23e61dbd9f0b1e9b Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 29 Nov 2021 18:59:47 +0800 Subject: [PATCH 022/166] chore: remove stats from case studies --- www/_case-studies/epsilon3.mdx | 6 +++--- www/_case-studies/mobbin.mdx | 7 ++++++- www/_case-studies/replenysh.mdx | 6 +++--- www/_case-studies/xendit.mdx | 6 +++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/www/_case-studies/epsilon3.mdx b/www/_case-studies/epsilon3.mdx index 03c66f9366e..a5cce8e2bc1 100644 --- a/www/_case-studies/epsilon3.mdx +++ b/www/_case-studies/epsilon3.mdx @@ -13,9 +13,9 @@ date: '28-10-2020' company_url: 'https://epsilon3.io' stats: [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, ] misc: [{ label: 'Founded', text: San Francisco }] about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. diff --git a/www/_case-studies/mobbin.mdx b/www/_case-studies/mobbin.mdx index aa2ada98fb2..adc3a67c496 100644 --- a/www/_case-studies/mobbin.mdx +++ b/www/_case-studies/mobbin.mdx @@ -11,7 +11,12 @@ tags: - supabase date: '28-10-2020' company_url: 'https://mobbin.design' -stats: [{ stat: '30,000', label: Users at launch }, { stat: '200,000', label: Current users }] +stats: + [ + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, + ] misc: [{ label: 'Founded', text: San Francisco }] about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. --- diff --git a/www/_case-studies/replenysh.mdx b/www/_case-studies/replenysh.mdx index 8ab6aeadddc..c974125e548 100644 --- a/www/_case-studies/replenysh.mdx +++ b/www/_case-studies/replenysh.mdx @@ -13,9 +13,9 @@ date: '28-10-2020' company_url: https://replenysh.com/ stats: [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, ] misc: [{ label: 'Founded', text: San Francisco }] about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. diff --git a/www/_case-studies/xendit.mdx b/www/_case-studies/xendit.mdx index c7d0bbc1354..0f529ad4fb0 100644 --- a/www/_case-studies/xendit.mdx +++ b/www/_case-studies/xendit.mdx @@ -12,9 +12,9 @@ tags: date: '28-10-2020' stats: [ - { stat: '20,000', label: Number of employees }, - { stat: '10', label: Number of offices }, - { stat: '$1M', label: Annual revenue }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, + { stat: '00,000', label: Example stat }, ] misc: [{ label: 'Founded', text: San Francisco }] about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. From 52c72c69a72dc7b608b9bbdddfa7f5e499a88b95 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 29 Nov 2021 21:02:39 +0800 Subject: [PATCH 023/166] chore:remove case studies link --- www/data/Footer.json | 4 ---- www/public/rss.xml | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/www/data/Footer.json b/www/data/Footer.json index 53c6d21fec4..bb5c26909a6 100644 --- a/www/data/Footer.json +++ b/www/data/Footer.json @@ -39,10 +39,6 @@ "text": "Brand Assets / Logos", "url": "/brand-assets" }, - { - "text": "Case Studies", - "url": "/blog/tags/case-study" - }, { "text": "System Status", "url": "https://status.supabase.com/" diff --git a/www/public/rss.xml b/www/public/rss.xml index 810e78f7a43..24e200ede15 100644 --- a/www/public/rss.xml +++ b/www/public/rss.xml @@ -10,7 +10,7 @@ https://supabase.com/blog/2021/11/26/supabase-launch-week-the-trilogy - Supabase Launch Week III: Holiday Special. + Supabase Launch Week III: Holiday Special https://supabase.com/blog/2021/11/26/supabase-launch-week-the-trilogy Tis the season to be shipping. Thu, 25 Nov 2021 16:00:00 GMT @@ -18,7 +18,7 @@ https://supabase.com/blog/2021/11/26/supabase-how-we-launch - How we launch at Supabase. + How we launch at Supabase https://supabase.com/blog/2021/11/26/supabase-how-we-launch The history and methodology of Supabase Launch Week. Thu, 25 Nov 2021 16:00:00 GMT From 21416f6dfee107ddde24a8640694e6e2f772d905 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 29 Nov 2021 22:42:41 +0800 Subject: [PATCH 024/166] chore: remove old files --- www/_case-studies/epsilon3.mdx | 97 -------- www/_case-studies/mobbin.mdx | 96 -------- www/_case-studies/replenysh.mdx | 84 ------- www/_case-studies/xendit.mdx | 39 ---- www/pages/case-studies.tsx | 101 --------- www/pages/case-studies/[slug].module.css | 46 ---- www/pages/case-studies/[slug].tsx | 277 ----------------------- www/public/sitemap_www.xml | 26 +-- 8 files changed, 13 insertions(+), 753 deletions(-) delete mode 100644 www/_case-studies/epsilon3.mdx delete mode 100644 www/_case-studies/mobbin.mdx delete mode 100644 www/_case-studies/replenysh.mdx delete mode 100644 www/_case-studies/xendit.mdx delete mode 100644 www/pages/case-studies.tsx delete mode 100644 www/pages/case-studies/[slug].module.css delete mode 100644 www/pages/case-studies/[slug].tsx diff --git a/www/_case-studies/epsilon3.mdx b/www/_case-studies/epsilon3.mdx deleted file mode 100644 index a5cce8e2bc1..00000000000 --- a/www/_case-studies/epsilon3.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Epsilon3 -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/epsilon3.png -tags: - - supabase -date: '28-10-2020' -company_url: 'https://epsilon3.io' -stats: - [ - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -Epsilon3 is a USA-based Y Combinator startup. They digitize paper-based procedures in the space industry using telemetry data, -simplifying testing and operations. Their product is rapidly becoming the OS for space projects and complex operations. - -Learn how the team at Epsilon3 uses Supabase to help teams execute secure and reliable operations in an industry where project -spend runs into the billions. - -### Space Operations - -Epsilon3's customers run testing and operational procedures in real-time. Epsilon3's solution allows online collaboration as a team, -instead of being siloed and separated which is an increasingly important requirement in a post-pandemic working world. -Epsilon3 is powering an industry where reliability is paramount. In the space industry, missions cost billions and need to run reliably. - -![Epsilon3 digitizes paper-based processes.](/images/blog/epsilon3/epsilon3-product.gif) - -Epsilon3's software saves operators time and reduces errors to improve complex operations. Their customers are using their software and -successfully sending satellites into space and are about to use Epsilon3's software for an operational Rocket Launch. As a result, their -reputation for improving the quality standard for complex operations has led to demand from other industries. The team is receiving -enquiries from clients in the robotics, logistics and medical equipment sectors who need a structured and standardized way of running -procedures and keeping audit trails. - -## Moving fast in regulated markets - -As a startup, Epsilon3 needs to move fast and scale. They require security, reliability, and performance. - -The team has a background in engineering from Northrop, Google, and SpaceX and understands the technical benefits Postgres offers as a -battle-tested open-source relational database. - -Real-time functionality is also a key for their customers to see how running procedures are progressing as the changes occur. - -The space industry is highly regulated, adding complexity. For example, in the USA, deployments must be in an ITAR-compliant way -(for instance AWS GovCloud supports ITAR compliance) while customers in countries outside the USA may need to host their data within their own -country. These customer requirements mean Epsilon3 must be able to offer flexible hosting options, including on-premises deployment. - - -

Billion dollar missions need to run reliably and securely.

-

- We didn’t just want something that works, we wanted a solution implementing best practices. We - also needed a setup that we could self-host to meet compliance needs and allow on-premises - deployment options for our customers. -

-

- We use Supabase because they give us an open-source scalable back-end built by database experts - that we can self-host. -

-

- Supabase takes out the mental effort from our back-end infrastructure so we can focus on our - customers needs. -

-
- -### Supabase gives Postgres users Superpowers - -The team implemented a self-hosted Supabase setup. They use AWS with a self-hosted Supabase API powering an RDS Postgres instance. -This setup gives a balance of rapid development, reduced DevOps, and flexible hosting options. As Supabase uniquely offers real-time for -Postgres, it allows their customers to see updates from running procedures. Supabase offers well-supported client libraries that make -Postgres Row Level Security easy to use, which is a critical item on the Epsilon3 roadmap. - -All this was easy for the team to set up, even with self-hosting, so the team was able to focus on what they do best—helping their customers -run complex operations smoothly. With this implementation, Epsilon3 gets all the benefits of Postgres, plus the smooth developer experience and -support that Supabase is known for, without compromising their compliance needs. - -![Epsilon3 uses Supabase for hosting their critical infrastructure.](/images/blog/epsilon3/supabase-epsilon3-architecture.png) - -### Self-hosted Supabase, a superpower - -Self-hosting Supabase allows the crew at Epsilon3 to move fast. They are revolutionizing space operations securely and reliably in real-time whilst -staying compliant. The team is now seeing demand from other industries and is confident in their scaling capability because they know it's -just Postgres under the hood. - -Check out the [Epsilon3 website](https://www.epsilon3.io/) to learn more about the team and their OS for space operations. If you are interested -in self-hosting Supabase then you can **contact us** to learn more. diff --git a/www/_case-studies/mobbin.mdx b/www/_case-studies/mobbin.mdx deleted file mode 100644 index adc3a67c496..00000000000 --- a/www/_case-studies/mobbin.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Mobbin -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/mobbin.png -tags: - - supabase -date: '28-10-2020' -company_url: 'https://mobbin.design' -stats: - [ - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience. - -Mobbin helps over 200,000 creators globally search and view the latest design patterns from well-known apps. -Their platform allows creators to search screenshots of mobile apps to inspire product development. -Creators use Mobbin to combine inspiration and develop new experiences. - -## From Idea to 30,000 users in one Product Hunt launch - -The initial concept for Mobbin was just a Dropbox full of screenshots. After sharing with their early users, -the team tried organizing them into folders but this quickly became unscalable. Clear interest from users encouraged them to build a full website. They used Firebase for the backend and launched on -[Product Hunt](https://www.producthunt.com/posts/mobbin-1). - -Mobbin went viral, and within the first week they had 30,000 users. In just over two years, they have grown to over 200,000 -registered users through word of mouth. Their curation continues to attract designers and creators globally. - -![Mobbin cover](/images/blog/mobbin/mobbin-cover.png) - -## Scaling issues put Mobbin growth at risk - -Firebase helped the team launch quickly, but at scale, they found Firebase lacked the functionality required for a high-quality user experience. - -The first problem was duplicate user logins. Firebase Authentication doesn't automatically merge users with the same email address. -For example, users cannot log in with Google and Facebook if they share the same email address. -Users struggled to upgrade to a paid account because they couldn't remember which authentication provider they signed up with. - -Next, they had issues with data integrity. While Firebase has 99.95% uptime, application code can (and does) fail. -Mobbin didn't want to implement idempotence for every mutative Firebase Function. Between a failed Function execution and a retry, -a document state might change without strict validation. The team could never be confident their data had the level of integrity they required. - -Finally, the team grew concerned with their increasing Firebase bill. Because of the document-based data structure, -their API requests required several round trips. At one point, they were making 5 million API requests per month. -These round trips made their website slow and led to a notable time investment hacking together a fix. - -![Mobbing screenshots](/images/blog/mobbin/mobbin-screenshots.jpg) - -## Migrating to Supabase - -Mobbin's initial product gave them a comprehensive understanding of customer requirements. For their second version, -they needed a better authentication experience, fairer pricing, and a relational database to deliver a quality -application sustainable for their business model. - -The team found Supabase and realized it covered all the bases. Not only that, their team had experience with the -tools open source tools that Supabase is built with. - -Auth, built using [GoTrue](https://github.com/supabase/gotrue), instantly solved their users' login issues. -Under the hood, Supabase is just Postgres, and Jian Jie (co-founder and CTO of Mobbin) knows this is one of the best battle-tested -open source relational databases. - -They decided that moving to Supabase was a no-brainer. The process itself was smooth - the real challenge was validating their -data integrity due to historical failures on their serverless functions. - -Mobbin is now successfully running on top of Supabase, with superior performance compared to their old Firebase setup. -Because Supabase does not charge based on API requests, Mobbin significantly reduced their monthly spending without maintaining a custom backend. - - -

Migrating to Supabase meant that we could instantly fix our Auth problems and save money.

-

- Just being on Supabase alone gives us confidence we can deliver on whatever users need in the - future. -

-

- The cool thing is now we know under the hood it's just Postgres, it really does feel like - anything is possible for the future of our product -

-
- -## Supabase saves Mobbin time and money - -Migrating to Supabase helped the team at Mobbin instantly improve the end-user experience and save costs. -They now add new features with confidence, and they continue to help creators all over the globe find inspiration for their next project. -You can [check out Mobbin on their website](https://mobbin.design/browse/ios/apps). - -Sign up to Supabase's free tier and set up a scalable backend in less than 2 minutes. diff --git a/www/_case-studies/replenysh.mdx b/www/_case-studies/replenysh.mdx deleted file mode 100644 index c974125e548..00000000000 --- a/www/_case-studies/replenysh.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Replenysh -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/replenysh.png -tags: - - supabase -date: '28-10-2020' -company_url: https://replenysh.com/ -stats: - [ - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -Replenysh connects brands who want to recover their products and packaging with communities looking to monetize used materials. - -Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers & products. - -## Material recovery offers brands a new way to connect to their customers - -At the end of a linear economy, products usually end up in landfills or the ocean. Every year, 8 million metric tons of plastics enter our ocean. This is on top of the estimated 150 million metric tons that currently circulate our marine environments. In the USA alone, every year, 139 million tons of waste is sent to landfills. - -The problem is our current waste and recycling infrastructure can't support that demand. With less than 10% of material actually getting recycled, the vast majority just ends up in a landfill or as pollution. - -Replenysh is building a solution to this problem by creating entirely new infrastructure to help brands get their materials back. They're building an ecosystem of tools to enable any community in the world to do the right thing. - -Whenever material is dropped off at a host, brands have the opportunity to engage with that person, resulting in a win-win situation for the planet, the brands, and the individual who all want to make a positive impact. Anyone in the community can take their used products and materials to the hosts — with that material being tracked all the way back to the brands and manufacturers who will reuse it. Brands have the opportunity to engage with that person, resulting in a win-win situation for the planet, the brands, and the individual who all want to make a positive impact. This turns a traditional consumption model into an opportunity for brands and customers to participate in the circular economy. - -Brands are adopting Replenysh to demonstrate their commitment to making a positive environmental impact, while seeking to engage with consumers in a new, authentic way. Replenysh provides the technology to communities that are helping build the future infrastructure where all materials are traceable and reused. - -![Linear vs Circular economy](/images/blog/replenysh/circular-economy.png) - -## Refactoring code leads to a better way forward - -Historically the team created their own backend infrastructure, setting up APIs and Authentication to run their own OTP system with Twilio and passwords. Postgres is essential to their requirements because Replenysh use Row Level Security for authorization. Before adopting Supabase, the team used a Haskell server with a different Postgres instance deployed on Heroku. - -The team decided to do a large refactor of their codebase and began investigating alternative hosting options to help speed up development time and reduce maintenance. - -Firebase seemed appealing due to its ability to get started quickly, but the team didn't want to migrate away from a relational database. Specifically, Postgres and RLS fit their requirements. - -When the team discovered Supabase on Hacker News they felt excitement. Supabase has a reputation for a smooth developer experience, providing Postgres and Row Level Security as a core feature. - -As a bonus, Supabase provided more than just a database, reducing their DevOps overhead. After reading the [Supabase Auth documentation](https://supabase.io/docs/guides/auth) the team determined they can have the functionality they need, like SMS OTP. When they saw [Mobbin are using Supabase at scale](https://supabase.io/blog/2021/07/28/mobbin-supabase-200000-users), they decided to migrate to Supabase. - -## Globally recognised brands need quality at scale - -Less than a day after beginning development with Supabase, the team completed their SMS OTP implementation, and deployed their app to the app store a few weeks later. - -![Replenysh-Mobile-App](/images/blog/replenysh/Replenysh-Mobile-App.png) - -Replenysh clients include brands with global recognition and millions of customers. With their reputation at stake, major brands have a high-quality threshold. If a global brand asks its customers to adopt a technology, the user experience must be high quality and reliable. Their customers' primary interaction point is mobile-first. This means a robust and smooth mobile Auth experience is non-negotiable. After switching to Supabase, when they demo, clients are instantly impressed with just how easy it is for users to log in with an SMS OTP and start participating in the circular economy. As a result, some of the world's largest retailers and beverage companies have recently joined Replenysh and the circular economy. - -![Replenysh-large-screen-view](/images/blog/replenysh/Replenysh-large-screen-view.png) - -## Supabase means faster development and reduced maintenance - - -

- We saw the Auth update for launch week we thought it was the perfect time to get going with - Supabase. -

-

- We implemented & pushed live phone (OTP) auth and had something ready to deploy to the app store - in less than 24-hours! -

-

- Supabase's developer experience lived up to its reputation. Our app is ready to launch with - major brands to help them reach sustainability goals and connect with their customers in a - meaningful way -

-
- -## Supabase help Replenysh continue to scale - -Supabase turbo-charged Replenysh's development time with a seamless end-user mobile login experience. They are ready to help major brands engage with their users through participation in the circular economy. With Supabase, the team knows they have a slick auth experience, reduced DevOps overhead, and can continue to scale with Postgres. You can test out the Supabase developer experience today by [starting a new project on the free tier!.](https://app.supabase.io/api/login) diff --git a/www/_case-studies/xendit.mdx b/www/_case-studies/xendit.mdx deleted file mode 100644 index 0f529ad4fb0..00000000000 --- a/www/_case-studies/xendit.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Xendit -description: Two months of building -author: rory_wilding -author_title: Supabase -author_url: https://github.com/kiwicopple -author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4 -authorURL: https://github.com/kiwicopple -logo: /images/case-studies/logos/xendit.png -tags: - - supabase -date: '28-10-2020' -stats: - [ - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - { stat: '00,000', label: Example stat }, - ] -misc: [{ label: 'Founded', text: San Francisco }] -about: Vercel combines the best developer experience with an obsessive focus on end-user performance. Our platform enables frontend teams to do their best work. ---- - -### Challenge - -As a payment processor, Xendit are responsible for verifying that all transactions are legal. Any transactions which are suspicions must be verified against a strict set of criteria, and the parties involved need to be checked against international sanctions lists. This is a critical anti-money-laundering operation and needs to be performed in realtime to prevent any delays on legitimate payments. - -### Why they chose Supabase - -Xendit needed something fast. Something that was cheaper than using the global players like Worldcheck or Refinitiv. Xendit already uses Postgres for a lot of their critical infrastructure, and so Xendit team are familiar with the technology and comfortable in it's ability to scale. - -### What they built - -Xendit parses international sanctions lists from the UN and the Indonesian government and loads them into Supabase. Since Supabase provides a full Postgres server, they can then use the [Trigram](https://www.postgresql.org/docs/current/pgtrgm.html) extension to perform full-text search on the lists, with a relevance score on every search. - -Supabase was perfect for their use case, as they needed something built fast. The full solution was built and in production in less than one week. - -> The full solution was built and in production in less than one week. - -Xendit created a database function for searching, which they are able to call directly using their Python clients. They have plans to iterate on the current implementation using more advanced techniques, like machine learning, but for now the Supabase system has been in Production for 9 months without a problem. diff --git a/www/pages/case-studies.tsx b/www/pages/case-studies.tsx deleted file mode 100644 index 9ee3204f554..00000000000 --- a/www/pages/case-studies.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import fs from 'fs' -import { useEffect, useState } from 'react' - -import { useRouter } from 'next/router' -import Head from 'next/head' - -import { NextSeo } from 'next-seo' -import { generateRss } from '~/lib/rss' -import { getSortedPosts, getAllCategories } from '~/lib/posts' -import authors from 'lib/authors.json' - -import DefaultLayout from '~/components/Layouts/Default' -import { Typography, Badge, Space, Select } from '@supabase/ui' -import PostTypes from '~/types/post' -import BlogListItem from '~/components/Blog/BlogListItem' -import BlogHeader from '~/components/Blog/BlogHeader' -import ImageGrid from '~/components/ImageGrid' - -export async function getStaticProps() { - const allPostsData = getSortedPosts('_case-studies') - const categories = getAllCategories('_case-studies') - const rss = generateRss(allPostsData) - - // create a rss feed in public directory - // rss feed is added via component in render return - fs.writeFileSync('./public/case-studies-rss.xml', rss) - - return { - props: { - blogs: allPostsData, - categories, - }, - } -} - -function Blog(props: any) { - const [category, setCategory] = useState('all') - const [blogs, setBlogs] = useState(props.blogs) - - const { basePath } = useRouter() - - useEffect(() => { - // Update the document title using the browser API - setBlogs( - category === 'all' - ? props.blogs - : props.blogs.filter((post: any) => { - const found = post.tags.includes(category) - return found - }) - ) - }, [category]) - - console.log(blogs) - - const caseStudyThumbs = blogs.map((blog: PostTypes, idx: number) => { - return { - image: blog.logo, - name: blog.title, - link: blog.url, - } - }) - - // console.log('caseStudyThumbs', caseStudyThumbs) - - return ( - <> - - - - - -
-
-
-
- Case studies - -

- Learn how teams behind everyone’s favorite products use Radix to save time, - boost quality, and set the bar for accessibility. -

-
-
-
- -
-
-
-
-
- - ) -} - -export default Blog diff --git a/www/pages/case-studies/[slug].module.css b/www/pages/case-studies/[slug].module.css deleted file mode 100644 index 66da7170e6c..00000000000 --- a/www/pages/case-studies/[slug].module.css +++ /dev/null @@ -1,46 +0,0 @@ -.toc a { - text-decoration: none !important; - font-weight: 400 !important; -} - -.toc > ul > li { - padding-left: 0 !important; -} - -.toc li { - @apply text-sm !important; - padding-left: 1rem !important; -} - -.toc ul > li:before { - content: ''; - position: absolute; - background-color: none; - border-radius: 50%; - width: 0 !important; - height: 0 !important; - top: 0.6875em; - left: 0.25em; -} - -.header:hover svg, -.header svg:hover { - display: inline-block; -} - -.article h1, -.article h2, -.article h3, -.article h4, -.article h5 { - font-weight: 500 !important; -} - -.article { - @apply mb-16; -} - -.article > div > pre { - padding: 0; - background: none; -} diff --git a/www/pages/case-studies/[slug].tsx b/www/pages/case-studies/[slug].tsx deleted file mode 100644 index 8cb924bffc2..00000000000 --- a/www/pages/case-studies/[slug].tsx +++ /dev/null @@ -1,277 +0,0 @@ -import { - Badge, - Card, - Divider, - IconFile, - Space, - Typography, - Button, - IconChevronRight, - IconChevronLeft, - IconGlobe, - IconLink, - IconExternalLink, -} from '@supabase/ui' -import matter from 'gray-matter' -import authors from 'lib/authors.json' -import hydrate from 'next-mdx-remote/hydrate' -import renderToString from 'next-mdx-remote/render-to-string' -import { NextSeo } from 'next-seo' -import Link from 'next/link' -import { useRouter } from 'next/router' -import React from 'react' -import ReactMarkdown from 'react-markdown' -import CodeBlock from '~/components/CodeBlock/CodeBlock' -import CTABanner from '~/components/CTABanner' -import DefaultLayout from '~/components/Layouts/Default' -import Quote from '~/components/Quote' -import ImageGrid from '~/components/ImageGrid' -import { generateReadingTime } from '~/lib/helpers' -import { getAllPostSlugs, getPostdata, getSortedPosts } from '~/lib/posts' -import blogStyles from './[slug].module.css' -import Image from 'next/image' - -// import all components used in blog articles here -// for instance, if you use a button, you must add `Button` in the components object below. -const components = { - CodeBlock, - Quote, - code: (props: any) => { - return - }, - ImageGrid, -} - -// plugins for next-mdx-remote -const gfm = require('remark-gfm') -const slug = require('rehype-slug') - -// table of contents extractor -const toc = require('markdown-toc') - -export async function getStaticPaths() { - const paths = getAllPostSlugs('_case-studies') - console.log('paths', paths) - return { - paths, - fallback: false, - } -} - -export async function getStaticProps({ params }: any) { - console.log('params', params) - - const filePath = `${params.slug}` - const postContent = await getPostdata(filePath, '_case-studies') - const { data, content } = matter(postContent) - - const mdxSource: any = await renderToString(content, { - components, - scope: data, - mdxOptions: { - remarkPlugins: [gfm], - rehypePlugins: [slug], - }, - }) - - const relatedPosts = getSortedPosts('_case-studies', 5, mdxSource.scope.tags) - - const allPosts = getSortedPosts('_case-studies') - - const currentIndex = allPosts - .map(function (e) { - return e.slug - }) - .indexOf(filePath) - - const nextPost = allPosts[currentIndex + 1] - const prevPost = allPosts[currentIndex - 1] - - const payload = { - props: { - prevPost: currentIndex === 0 ? null : prevPost ? prevPost : null, - nextPost: currentIndex === allPosts.length ? null : nextPost ? nextPost : null, - relatedPosts, - blog: { - slug: `${params.year}/${params.month}/${params.day}/${params.slug}`, - content: mdxSource, - ...data, - toc: toc(content, { maxdepth: data.toc_depth ? data.toc_depth : 2 }), - }, - }, - } - - console.log(payload) - return payload -} - -function BlogPostPage(props: any) { - // @ts-ignore - const author = props.blog.author ? authors[props.blog.author] : authors['supabase'] - const content = hydrate(props.blog.content, { components }) - - const { basePath } = useRouter() - - const NextCard = (props: any) => { - const { post, label, className } = props - return ( - -
- - -
- {label} -
-
- {post.title} - {post.date} -
-
- {post.tags.map((tag: string) => { - return {tag} - })} -
-
-
-
- - ) - } - - return ( - <> - - -
-
-
- {/* Back button */} - - - - Back - - -
-
- {/* Title and description */} -
- Case study - {props.blog.title} -
- {/* Quote can go here */} -
- {/* Content */} -
-
- {content} -
-
- {/* Sidebar */} -
- {/* Logo */} -
- {`${props.blog.title} -
- -
- About - {props.blog.about} - - {props.blog.company_url} - - -
- {props.blog.misc.map((x: any) => { - return ( -
- {x.label} - {x.text} -
- ) - })} -
- {props.blog.stats.map((x: any) => { - return ( -
-
-
- - {x.stat} - - {x.label} -
-
- ) - })} -
- -
- Ready to get started? - -
-
-
-
- -
{props.prevPost && }
-
- {props.nextPost && ( - - )} -
-
-
- -
- - ) -} - -// function BlogPostPage() { -// return

blog post

-// } - -export default BlogPostPage diff --git a/www/public/sitemap_www.xml b/www/public/sitemap_www.xml index ed59be78388..56b759d6ef0 100644 --- a/www/public/sitemap_www.xml +++ b/www/public/sitemap_www.xml @@ -24,12 +24,6 @@ 0.5 - - https://supabase.com/case-studies - weekly - 0.5 - - https://supabase.com/company weekly @@ -49,7 +43,7 @@ - https://supabase.com/case-studies/[slug] + https://supabase.com/database weekly 0.5 @@ -60,12 +54,6 @@ 0.5 - - https://supabase.com/database - weekly - 0.5 - - https://supabase.com/blog/2020/05/01/supabase-alpha-april-2020 weekly @@ -463,4 +451,16 @@ weekly 0.5 + + + https://supabase.com/blog/2021/11/26/supabase-how-we-launch + weekly + 0.5 + + + + https://supabase.com/blog/2021/11/26/supabase-launch-week-the-trilogy + weekly + 0.5 + From 3a87d1e00ef56a34020682b9c22c3dd16a5fe49e Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 29 Nov 2021 22:46:52 +0800 Subject: [PATCH 025/166] fix: next/prev buttons fixed --- www/pages/blog/[year]/[month]/[day]/[slug].tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/www/pages/blog/[year]/[month]/[day]/[slug].tsx b/www/pages/blog/[year]/[month]/[day]/[slug].tsx index 0d135a92186..e9d061acb71 100644 --- a/www/pages/blog/[year]/[month]/[day]/[slug].tsx +++ b/www/pages/blog/[year]/[month]/[day]/[slug].tsx @@ -242,6 +242,16 @@ function BlogPostPage(props: any) {
{content}
+
+
+ {props.prevPost && } +
+
+ {props.nextPost && ( + + )} +
+
{/* Sidebar */}
@@ -283,7 +293,7 @@ function BlogPostPage(props: any) {
-
+ {/*
@@ -345,7 +355,8 @@ function BlogPostPage(props: any) {
-
+
*/} + From 884c999b6c09dd907ee82b544a51d1edcc3cf46a Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 29 Nov 2021 22:57:52 +0800 Subject: [PATCH 026/166] fix: sticky sidebar --- .../blog/[year]/[month]/[day]/[slug].tsx | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/www/pages/blog/[year]/[month]/[day]/[slug].tsx b/www/pages/blog/[year]/[month]/[day]/[slug].tsx index e9d061acb71..54e5e54e3ea 100644 --- a/www/pages/blog/[year]/[month]/[day]/[slug].tsx +++ b/www/pages/blog/[year]/[month]/[day]/[slug].tsx @@ -255,38 +255,40 @@ function BlogPostPage(props: any) {
{/* Sidebar */}
-
{toc}
-
- - Related articles - - - {props.relatedPosts.map((post: any) => ( - + +
{toc}
+
+ + Related articles + + + {props.relatedPosts.map((post: any) => ( + +
+ + + + + {post.title} + + + + +
+ + ))} +
- - - - - {post.title} - - + + + View all posts + -
- ))} - -
- - - View all posts - - -
- -
-
+
+
+
From 49d49c0f17bd9c31d3ab689a2f4c56c0599d0bdf Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Fri, 3 Dec 2021 23:19:48 +0800 Subject: [PATCH 027/166] remove case studies rss --- www/public/case-studies-rss.xml | 44 --------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 www/public/case-studies-rss.xml diff --git a/www/public/case-studies-rss.xml b/www/public/case-studies-rss.xml deleted file mode 100644 index ad3ecb66444..00000000000 --- a/www/public/case-studies-rss.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - Blog - Supabase - https://supabase.com - Latest news from Supabase - en - Invalid Date - - - - https://supabase.com/blog//case-studies/xendit - Xendit - https://supabase.com/blog//case-studies/xendit - Two months of building - Invalid Date - - - - https://supabase.com/blog//case-studies/replenysh - Replenysh - https://supabase.com/blog//case-studies/replenysh - Two months of building - Invalid Date - - - - https://supabase.com/blog//case-studies/mobbin - Mobbin - https://supabase.com/blog//case-studies/mobbin - Two months of building - Invalid Date - - - - https://supabase.com/blog//case-studies/epsilon3 - Epsilon3 - https://supabase.com/blog//case-studies/epsilon3 - Two months of building - Invalid Date - - - - From db099d683ec50fc2357a7395c10368a688bfccd5 Mon Sep 17 00:00:00 2001 From: Junaid Rahim Date: Sun, 5 Dec 2021 14:54:53 +0530 Subject: [PATCH 028/166] update self hosting faq in pricing page with respect to availability of supabase studio --- www/data/PricingFAQ.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/data/PricingFAQ.json b/www/data/PricingFAQ.json index fc206fd0c05..3db0dcca5ad 100644 --- a/www/data/PricingFAQ.json +++ b/www/data/PricingFAQ.json @@ -121,6 +121,6 @@ }, { "question": "Can I self host Supabase for free?", - "answer": "Yes, our Docker setup can be found [here](https://github.com/supabase/supabase), or in our [CLI](https://github.com/supabase/cli). Note that our Dashboard is not available in the Docker set up." + "answer": "Yes, our Docker setup can be found [here](https://github.com/supabase/supabase), or in our [CLI](https://github.com/supabase/cli). Supabase Studio is available in the docker setup, read more about it [here](https://supabase.com/blog/2021/11/30/supabase-studio)" } ] From b01f6f08923d2100032147a9072c8f3a85d4843e Mon Sep 17 00:00:00 2001 From: Kang Ming Date: Mon, 6 Dec 2021 20:33:10 +0800 Subject: [PATCH 029/166] chore: bump supabase-js version to ^1.28.0 --- studio/package-lock.json | 13860 ++++++++++++++++++++++++++++++++++++- studio/package.json | 2 +- 2 files changed, 13758 insertions(+), 104 deletions(-) diff --git a/studio/package-lock.json b/studio/package-lock.json index 1891ce3d2b6..2675c821232 100644 --- a/studio/package-lock.json +++ b/studio/package-lock.json @@ -1,8 +1,13696 @@ { "name": "studio", "version": "0.0.3", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "studio", + "version": "0.0.3", + "dependencies": { + "@auth0/nextjs-auth0": "^1.6.1", + "@headlessui/react": "^1.4.1", + "@monaco-editor/react": "^4.3.1", + "@next/bundle-analyzer": "^12.0.4", + "@radix-ui/react-portal": "^0.1.1", + "@sentry/browser": "^6.15.0", + "@sentry/nextjs": "^6.15.0", + "@supabase/grid": "^2.3.9", + "@supabase/postgres-meta": "^0.26.1", + "@supabase/react-data-grid": "^7.1.0-beta.7", + "@supabase/supabase-js": "^1.28.0", + "@supabase/ui": "^0.35.0", + "ajv": "^8.6.3", + "analytics-node": "^3.5.0", + "clipboard": "^2.0.8", + "configcat-js": "^5.6.0", + "crypto-js": "^4.1.1", + "dayjs": "^1.10.7", + "lodash": "^4.17.21", + "lottie-react": "^2.1.0", + "markdown-table": "=2.0.0", + "mobx": "^6.3.2", + "mobx-react-lite": "^3.2.0", + "next": "11.1.1", + "next-compose-plugins": "^2.2.1", + "openapi-types": "^9.1.0", + "papaparse": "^5.3.1", + "parse-numeric-range": "^1.3.0", + "path-to-regexp": "^6.2.0", + "prism-react-renderer": "^1.2.1", + "react": "^17.0.2", + "react-beautiful-dnd": "^13.1.0", + "react-csv": "^2.0.3", + "react-dom": "^17.0.2", + "react-grid-layout": "^1.3.0", + "react-hot-toast": "^2.1.1", + "react-inlinesvg": "^2.3.0", + "react-split": "^2.0.13", + "react-virtualized-auto-sizer": "^1.0.6", + "react-window": "^1.8.6", + "react-window-infinite-loader": "^1.0.7", + "recharts": "^2.1.6", + "sass": "^1.43.4", + "semver": "^6.3.0", + "sqlstring": "^2.3.2", + "swr": "^1.0.1", + "uniforms-bootstrap4": "^3.6.2", + "uniforms-bridge-json-schema": "^3.6.2", + "zxcvbn": "^4.4.2" + }, + "devDependencies": { + "@testing-library/dom": "^8.11.1", + "@testing-library/react": "^12.1.2", + "@testing-library/user-event": "^13.5.0", + "@types/crypto-js": "^4.0.2", + "@types/lodash": "^4.14.172", + "@types/markdown-table": "^3.0.0", + "@types/papaparse": "^5.3.1", + "@types/react": "17.0.11", + "@types/react-beautiful-dnd": "^13.1.2", + "@types/react-csv": "^1.1.2", + "@types/react-dom": "^17.0.11", + "@types/react-grid-layout": "^1.3.0", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/react-window-infinite-loader": "^1.0.5", + "@types/semver": "^7.3.9", + "@types/sqlstring": "^2.3.0", + "@types/zxcvbn": "^4.4.1", + "autoprefixer": "^10.2.6", + "jest": "^27.4.0", + "jest-canvas-mock": "^2.3.1", + "postcss": "^8.3.5", + "tailwindcss": "^2.2.4", + "ts-jest": "^27.0.7", + "typescript": "4.3.4" + } + }, + "node_modules/@auth0/nextjs-auth0": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@auth0/nextjs-auth0/-/nextjs-auth0-1.6.1.tgz", + "integrity": "sha512-xecYNjI1KvFerzarMUS6p7coWWAI7/JeJ9iMxj+ztIo+VJfR9CkYV2b/Fu3A2iy+UYbIoG78YV2plOynAIUOwQ==", + "dependencies": { + "base64url": "^3.0.1", + "cookie": "^0.4.1", + "debug": "^4.3.2", + "futoin-hkdf": "^1.4.2", + "http-errors": "^1.8.0", + "joi": "^17.4.1", + "jose": "^2.0.5", + "on-headers": "^1.0.2", + "openid-client": "^4.9.0", + "tslib": "^2.3.1", + "url-join": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || >=12.0.0" + }, + "peerDependencies": { + "next": ">=10" + } + }, + "node_modules/@auth0/nextjs-auth0/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@auth0/nextjs-auth0/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@auth0/nextjs-auth0/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@auth0/nextjs-auth0/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/@auth0/nextjs-auth0/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dependencies": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", + "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz", + "integrity": "sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "dependencies": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@headlessui/react": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz", + "integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", + "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.4.2", + "jest-util": "^27.4.2", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.2.tgz", + "integrity": "sha512-0mPM61tDbu8yc9CMKH9bvV+g+17VUpdWQtU1x6P1gk4AKj8iywWi8zBmEIl7pTGjUtYA92CNc/LlBfKCioBOow==", + "dev": true, + "dependencies": { + "@jest/console": "^27.4.2", + "@jest/reporters": "^27.4.2", + "@jest/test-result": "^27.4.2", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.4.2", + "jest-config": "^27.4.2", + "jest-haste-map": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.2", + "jest-resolve-dependencies": "^27.4.2", + "jest-runner": "^27.4.2", + "jest-runtime": "^27.4.2", + "jest-snapshot": "^27.4.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.2", + "jest-watcher": "^27.4.2", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/jest-snapshot": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", + "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.2", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-validate": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", + "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-watcher": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", + "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.4.2", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz", + "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "jest-mock": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", + "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.4.2", + "jest-mock": "^27.4.2", + "jest-util": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/fake-timers/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/fake-timers/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/fake-timers/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/fake-timers/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/globals": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz", + "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.4.2", + "@jest/types": "^27.4.2", + "expect": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz", + "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.4.2", + "@jest/test-result": "^27.4.2", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.2", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", + "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", + "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", + "dev": true, + "dependencies": { + "@jest/console": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz", + "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.2", + "jest-runtime": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz", + "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.4.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-util": "^27.4.2", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@monaco-editor/loader": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.2.0.tgz", + "integrity": "sha512-cJVCG/T/KxXgzYnjKqyAgsKDbH9mGLjcXxN6AmwumBwa2rVFkwvGcUj1RJtD0ko4XqLqJxwqsN/Z/KURB5f1OQ==", + "dependencies": { + "state-local": "^1.0.6" + }, + "peerDependencies": { + "monaco-editor": ">= 0.21.0 < 1" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.3.1.tgz", + "integrity": "sha512-f+0BK1PP/W5I50hHHmwf11+Ea92E5H1VZXs+wvKplWUWOfyMa1VVwqkJrXjRvbcqHL+XdIGYWhWNdi4McEvnZg==", + "dependencies": { + "@monaco-editor/loader": "^1.2.0", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@napi-rs/triples": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz", + "integrity": "sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA==" + }, + "node_modules/@next/bundle-analyzer": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.4.tgz", + "integrity": "sha512-hl9SmruSHMMMjmcUXJYdP12HbencBOpuy4gHPpQLbRmfErUsY7ia+eF5Xt9vAkim7s6HKByoDg7cu6HJQzfpfg==", + "dependencies": { + "webpack-bundle-analyzer": "4.3.0" + } + }, + "node_modules/@next/env": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-11.1.1.tgz", + "integrity": "sha512-UEAzlfKofotLmj9LIgNixAfXpRck9rt/1CU9Q4ZtNDueGBJQP3HUzPHlrLChltWY2TA5MOzDQGL82H0a3+i5Ag==" + }, + "node_modules/@next/polyfill-module": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.1.1.tgz", + "integrity": "sha512-9FyVSnz00WGdlLsgc2w1xL1Lm/Q25y6FYIyA+1WlJvT6LA2lbR78GKiHgedzUvrAatVGAcg/Og+d0d7B4tsJOg==" + }, + "node_modules/@next/react-dev-overlay": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.1.1.tgz", + "integrity": "sha512-CXc/A0DbSk5VXYu4+zr0fHm52Zh/LhPlLyVPEctJOZL64ccxkls5xGoXvgolJCku9L0pLjJzvdfAmhNLOp5dyw==", + "dependencies": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.2", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.0" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@next/react-dev-overlay/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-refresh-utils": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.1.1.tgz", + "integrity": "sha512-j186y+lWc8BHAuysAWvlOqO9Bp7E3BLK/d/Ju3W2sP5BCH5ZLyLG/p308zSy/O0MGTag0B038ZA1dCy/msouRQ==", + "peerDependencies": { + "react-refresh": "0.8.3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-11.1.1.tgz", + "integrity": "sha512-KyB0aLpfQ+B2dsyGYpkM0ZwK3PV0t4C4b9yjgQc1VoTVnIjzXdDPnNOuVvmD849ZNOHfj3x8e2rlbxkj0lPm3A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-11.1.1.tgz", + "integrity": "sha512-B3ZXgrGx0bQplbrk2oggPjKPPsmyg8Fl0PJLMTVQ+erQ8g1m5QzyS9P6tB3SiIZa180JgENuguTHlVK5qEj4UA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-11.1.1.tgz", + "integrity": "sha512-qvZL7gSKF+E+GZ3L1XiTnE3cOh9rk0wkqimT/q+wwcZA4E720Lu4lrT79I3HPuj6i/JPgGvmNskcnYrDeaoFaw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-11.1.1.tgz", + "integrity": "sha512-jhnCiA1De1L+kA0gmHG1AJijHoxOcrETWziDWy8fcqSrM1NlC4aJ5Mnu6k0QMcM9MnmXTA4TQZOEv3kF7vhJUQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/helper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz", + "integrity": "sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg==", + "dependencies": { + "@napi-rs/triples": "^1.0.3" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", + "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.1.tgz", + "integrity": "sha512-ZJFgUBsaFS4cryONfRZXuYxtv87ziRGqFu+wP91rVKF8TpkeQgvPP2QBLIfIGzotr3G1n8t7gHaNJkZtKVeXvw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "0.1.1", + "@radix-ui/react-use-layout-effect": "0.1.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0", + "react-dom": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.1.tgz", + "integrity": "sha512-65GCHeDV/ikicXKR2rLSO6w+dyUQwSG2J1JD2qm4suK1259nTuRvPsPBrbhZpoXWQKj2drMZfhhclXVfzwW1Kw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "0.1.1" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.1.tgz", + "integrity": "sha512-deq3K7cCXQ+tWMZF2GKl3zGMcwVbyQDiMY/UcPI0Q1DDudRG2dWrEwcYbYajEelc07oOxzNyKpaXZLOpNxquuA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "0.1.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", + "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@react-dnd/asap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", + "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" + }, + "node_modules/@react-dnd/invariant": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", + "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", + "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" + }, + "node_modules/@scaleleap/pg-format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@scaleleap/pg-format/-/pg-format-1.0.0.tgz", + "integrity": "sha512-gFkcYMnpeylF2OJ30FsDBjwICB9JTiZ5i3guPwdiBDrJFwIKr+Zk6jwI8Mg22a4FwXn5ezd5cHEFMKqBqBz4RQ==" + }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", + "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "node_modules/@sentry/browser": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.15.0.tgz", + "integrity": "sha512-ZiqfHK5DMVgDsgMTuSwxilWIqEnZzy4yuJ9Sr6Iap1yZddPSiKHYjbBieSHn57UsWHViRB3ojbwu44LfvXKJdQ==", + "dependencies": { + "@sentry/core": "6.15.0", + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/cli": { + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.71.0.tgz", + "integrity": "sha512-Z8TzH7PkiRfjWSzjXOfPWWp6wxjr+n39Jdrt26OcInVQZM1sx/gZULrDiQZ1L2dy9Fe9AR4SF4nt2/7h2GmLQQ==", + "hasInstallScript": true, + "dependencies": { + "https-proxy-agent": "^5.0.0", + "mkdirp": "^0.5.5", + "node-fetch": "^2.6.0", + "npmlog": "^4.1.2", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0" + }, + "bin": { + "sentry-cli": "bin/sentry-cli" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sentry/cli/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/@sentry/core": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.15.0.tgz", + "integrity": "sha512-mCbKyqvD1G3Re6gv6N8tRkBz84gvVWDfLtC6d1WBArIopzter6ktEbvq0cMT6EOvGI2OLXuJ6mtHA93/Q0gGpw==", + "dependencies": { + "@sentry/hub": "6.15.0", + "@sentry/minimal": "6.15.0", + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/hub": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.15.0.tgz", + "integrity": "sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA==", + "dependencies": { + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/integrations": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.15.0.tgz", + "integrity": "sha512-fSBAipas6zwyYo4U91pyQOnaTcRCfwvH6ZFwu0Fqmkm64nU9rYpbTNiKkwOWbbiXXT6+LEF6RzBpsyhm4QvgmQ==", + "dependencies": { + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/integrations/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/minimal": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.15.0.tgz", + "integrity": "sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg==", + "dependencies": { + "@sentry/hub": "6.15.0", + "@sentry/types": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/nextjs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-6.15.0.tgz", + "integrity": "sha512-6QpU9YFW+flO/iOepFBGliaPeUOGaQn4SmKwRnB5P0iuQc+jEm8ZB6ORi4QYqGahrXqN++sOSYNzT/KaectlAA==", + "dependencies": { + "@sentry/core": "6.15.0", + "@sentry/hub": "6.15.0", + "@sentry/integrations": "6.15.0", + "@sentry/node": "6.15.0", + "@sentry/react": "6.15.0", + "@sentry/tracing": "6.15.0", + "@sentry/utils": "6.15.0", + "@sentry/webpack-plugin": "1.18.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "next": "^10.0.8 || ^11.0", + "react": "15.x || 16.x || 17.x", + "webpack": ">= 4.0.0" + } + }, + "node_modules/@sentry/nextjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/node": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.15.0.tgz", + "integrity": "sha512-V1GeupWi9ClmoMy5eBWdVTv3k+Yx/JpddT4zCzzYY9QfjYtEvQI7R3SWFtlgXuaQQaZNU0WUoE2UgJV2N/vS8g==", + "dependencies": { + "@sentry/core": "6.15.0", + "@sentry/hub": "6.15.0", + "@sentry/tracing": "6.15.0", + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/react": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.15.0.tgz", + "integrity": "sha512-vrrFF/KtPJQ41tmDCWpaR+bN+/TqPwqncsGLfbClE2irY3x3eCJjT2qPstlB7NQ6rTYtScyekbB0fOoNkq9FFg==", + "dependencies": { + "@sentry/browser": "6.15.0", + "@sentry/minimal": "6.15.0", + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "hoist-non-react-statics": "^3.3.2", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "react": "15.x || 16.x || 17.x" + } + }, + "node_modules/@sentry/react/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/tracing": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.15.0.tgz", + "integrity": "sha512-V5unvX8qNEfdawX+m2n0jKgmH/YR2ItWZLH+3UevBTptO+xyfvRtpgGXYWUCo3iGvFgWb1C+iIC7LViR9rTvBg==", + "dependencies": { + "@sentry/hub": "6.15.0", + "@sentry/minimal": "6.15.0", + "@sentry/types": "6.15.0", + "@sentry/utils": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/types": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.15.0.tgz", + "integrity": "sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw==", + "dependencies": { + "@sentry/types": "6.15.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/webpack-plugin": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.18.3.tgz", + "integrity": "sha512-Qk3Jevislc5DZK0X/WwRVcOtO7iatnWARsEgTV/TuXvDN+fUDDpD/2MytAWAbpLaLy3xEB/cXGeLsbv6d1XNkQ==", + "dependencies": { + "@sentry/cli": "^1.70.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", + "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.19.2.tgz", + "integrity": "sha512-0U/RVPZQw1QxhrbKV0o281ZWI1Ve3osJnyEYnwOp3slydIQHyXumbJANJeNv9BqABDiHWlmzsxSVopPHMvt3Aw==" + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@supabase/gotrue-js": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.21.7.tgz", + "integrity": "sha512-YnL4cO3Q+ugatWEtgCEnLt+Wwi0VpOVTPSSjSSUho2x3cH7+juRBTrVbYky/W6YVgAw/ZJrVUFPh/NcUCUhdmw==", + "dependencies": { + "cross-fetch": "^3.0.6" + } + }, + "node_modules/@supabase/grid": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@supabase/grid/-/grid-2.3.9.tgz", + "integrity": "sha512-z0QxBUUIZ1UoZ2L8XGAUaMURDfL+l9gc0qRDCmpWRpQF0RNg43i5lFTUi7T7+lJGGr8vuotXuIzDfNrmBkbFCw==", + "dependencies": { + "@monaco-editor/react": "^4.3.1", + "@scaleleap/pg-format": "^1.0.0", + "awesome-debounce-promise": "^2.1.0", + "dayjs": "^1.10.4", + "file-saver": "^2.0.5", + "immutability-helper": "^3.1.1", + "p-queue": "6.6.2", + "react-contexify": "^5.0.0", + "react-dnd": "^14.0.3", + "react-dnd-html5-backend": "^14.0.1", + "react-tiny-popover": "^6.0.5", + "react-tracked": "^1.7.4", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "@supabase/react-data-grid": "^7.1.0-beta.7", + "@supabase/ui": "^0.35.0", + "react": "^16.14 || ^17.0.0", + "react-dom": "^16.14 || ^17.0.0" + } + }, + "node_modules/@supabase/postgres-meta": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/@supabase/postgres-meta/-/postgres-meta-0.26.1.tgz", + "integrity": "sha512-z4ws1fD+sPwb+J2PRMe2/Oe4HuVwGjPESjFqCR8uiWauTlfbtYR0bXFPMxPA6SkJFqOq/86uJPwzHgHURWZDiA==", + "dependencies": { + "@sinclair/typebox": "^0.19.2", + "pg": "^8.7.1", + "pg-format": "^1.0.4" + }, + "engines": { + "node": ">=14 <15", + "npm": ">=7" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.35.0.tgz", + "integrity": "sha512-z+XKJ2oXuGEAEBVXseeQUXaM3ekQZK4XF0Kc399Glyg+rZaBTwNeJtY+Q/23NcIE5uNMYbTnEXm80jZbLBnWdw==", + "dependencies": { + "cross-fetch": "^3.0.6" + } + }, + "node_modules/@supabase/react-data-grid": { + "version": "7.1.0-beta.7", + "resolved": "https://registry.npmjs.org/@supabase/react-data-grid/-/react-data-grid-7.1.0-beta.7.tgz", + "integrity": "sha512-6Kjdk9Z3N2mycq63L22VFM4zY0w9HNdpB0HgaUcM3nIMtMxA3cldLnHDVMD2R0zNV7+1wlOr8hz3vsbS+zlOXQ==", + "dependencies": { + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.14 || ^17.0.0", + "react-dom": "^16.14 || ^17.0.0" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.3.tgz", + "integrity": "sha512-9D79jlo/56VQf/U7TWhu24epCoj0vWJ7ALkGcqci8Luk/iOcdCxY1NJ76BbS1UnpXEIvQxQGb1R5NSexriKcUA==", + "dependencies": { + "@types/websocket": "^1.0.3", + "websocket": "^1.0.34" + } + }, + "node_modules/@supabase/storage-js": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.5.0.tgz", + "integrity": "sha512-ki2HT9FrCYRN3yoqWqX+u47TUHQ8lgSStAqV/97kMov1z2d+iIlqGBGVcaGDqq4NvK8CipG8IJARYM72oX+afA==", + "dependencies": { + "cross-fetch": "^3.1.0" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "1.28.5", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.28.5.tgz", + "integrity": "sha512-RZFSkj0tC6YppUVOBDldLLko4BgV8ASY+OiXC1ZxpcwmNInPgGiDkv59kVPN1UC96vnRQ/1fbFngPcwTtb1Qjw==", + "dependencies": { + "@supabase/gotrue-js": "^1.21.7", + "@supabase/postgrest-js": "^0.35.0", + "@supabase/realtime-js": "^1.3.3", + "@supabase/storage-js": "^1.5.0" + } + }, + "node_modules/@supabase/ui": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.35.0.tgz", + "integrity": "sha512-bftQoDcX2Vl6Gcu6IYUjteN7ZKNs5YhvhOz3c/8kTYU6DuD33VKOYCMQBKwU4IuBbEsNXVRlJxHK4RjXIiS4ww==", + "dependencies": { + "lodash": "^4.17.20", + "prop-types": "^15.7.2" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.1", + "react-dom": "^16.13.1 || ^17.0.1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.1.tgz", + "integrity": "sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", + "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.16", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", + "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/crypto-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.0.2.tgz", + "integrity": "sha512-sCVniU+h3GcGqxOmng11BRvf9TfN9yIs8KKjB8C8d75W69cpTfZG80gau9yTx5SxF3gvHGbJhdESzzvnjtf3Og==", + "dev": true + }, + "node_modules/@types/d3-color": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.3.tgz", + "integrity": "sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w==" + }, + "node_modules/@types/d3-interpolate": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz", + "integrity": "sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw==", + "dependencies": { + "@types/d3-color": "^2" + } + }, + "node_modules/@types/d3-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz", + "integrity": "sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==" + }, + "node_modules/@types/d3-scale": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.2.tgz", + "integrity": "sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-shape": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz", + "integrity": "sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==", + "dependencies": { + "@types/d3-path": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==" + }, + "node_modules/@types/debounce-promise": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/debounce-promise/-/debounce-promise-3.1.4.tgz", + "integrity": "sha512-9SEVY3nsz+uMN2DwDocftB5TAgZe7D0cOzxxRhpotWs6T4QFqRaTXpXbOSzbk31/7iYcfCkJJPwWGzTxyuGhCg==" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "16.2.13", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.13.tgz", + "integrity": "sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/parse5": "*", + "@types/tough-cookie": "*" + } + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.173", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.173.tgz", + "integrity": "sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==", + "dev": true + }, + "node_modules/@types/markdown-table": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/markdown-table/-/markdown-table-3.0.0.tgz", + "integrity": "sha512-vX5zya26rnLLHdAKA3E9ZOT07CJslYp2gZfAZiXKUY5vd2RRiJyOQKrSlmUjyJ+eNoDAPkHflebG3PsfqC32aA==", + "deprecated": "This is a stub types definition. markdown-table provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "markdown-table": "*" + } + }, + "node_modules/@types/node": { + "version": "16.9.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.4.tgz", + "integrity": "sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA==" + }, + "node_modules/@types/papaparse": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.1.tgz", + "integrity": "sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", + "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + }, + "node_modules/@types/react": { + "version": "17.0.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", + "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-beautiful-dnd": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.2.tgz", + "integrity": "sha512-+OvPkB8CdE/bGdXKyIhc/Lm2U7UAYCCJgsqmopFmh9gbAudmslkI8eOrPDjg4JhwSE6wytz4a3/wRjKtovHVJg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-csv": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/react-csv/-/react-csv-1.1.2.tgz", + "integrity": "sha512-hCtZyXAubxBtn3Oi3I9kNAx2liRTaMtl1eWpO2M98aYkHuoSTbYO8OcZEjyr9aJJ30Xnoxj+uES3G6L6O1qgtg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-dom": { + "version": "17.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", + "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-grid-layout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.0.tgz", + "integrity": "sha512-Pytm7lvm4h91yN9CpdjV8IpU/hgVRHrUhDEIX593e4Mx9V14Pr3gWtj21WHzy5bDqU//jnGGVVSYJ3QVuI1NaQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-redux": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", + "integrity": "sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-virtualized-auto-sizer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz", + "integrity": "sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.5.tgz", + "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window-infinite-loader": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/react-window-infinite-loader/-/react-window-infinite-loader-1.0.5.tgz", + "integrity": "sha512-3v45+4oBNJpSroULtb2EgTJyyK4pCjOMCg+RT/HnA3or5zY4jYufv6uH9NWPyLv0nx8dqt1s4nJqHilfthwKSw==", + "dev": true, + "dependencies": { + "@types/react": "*", + "@types/react-window": "*" + } + }, + "node_modules/@types/resize-observer-browser": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz", + "integrity": "sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg==" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", + "dev": true + }, + "node_modules/@types/sqlstring": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@types/sqlstring/-/sqlstring-2.3.0.tgz", + "integrity": "sha512-kMFecDYYFk/f5fljO0UFrSPwU1JxY4mIjX6ic7MHv5nD6sEd3NYLoWcOV/3s6Drs7RHdCwTQdD5NdgVl0I2zzg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", + "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==", + "dev": true + }, + "node_modules/@types/websocket": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", + "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "node_modules/@types/zxcvbn": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@types/zxcvbn/-/zxcvbn-4.4.1.tgz", + "integrity": "sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/analytics-node": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/analytics-node/-/analytics-node-3.5.0.tgz", + "integrity": "sha512-XgQq6ejZHCehUSnZS4V7QJPLIP7S9OAWwQDYl4WTLtsRvc5fCxIwzK/yihzmIW51v9PnyBmrl9dMcqvwfOE8WA==", + "dependencies": { + "@segment/loosely-validate-event": "^2.0.0", + "axios": "^0.21.1", + "axios-retry": "^3.0.2", + "lodash.isstring": "^4.0.1", + "md5": "^2.2.1", + "ms": "^2.0.0", + "remove-trailing-slash": "^0.1.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.4.tgz", + "integrity": "sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.8", + "caniuse-lite": "^1.0.30001252", + "colorette": "^1.3.0", + "fraction.js": "^4.1.1", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/awesome-debounce-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/awesome-debounce-promise/-/awesome-debounce-promise-2.1.0.tgz", + "integrity": "sha512-0Dv4j2wKk5BrNZh4jgV2HUdznaeVgEK/WTvcHhZWUElhmQ1RR+iURRoLEwICFyR0S/5VtxfcvY6gR+qSe95jNg==", + "dependencies": { + "@types/debounce-promise": "^3.1.1", + "awesome-imperative-promise": "^1.0.1", + "awesome-only-resolves-last-promise": "^1.0.3", + "debounce-promise": "^3.1.0" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/awesome-imperative-promise": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/awesome-imperative-promise/-/awesome-imperative-promise-1.0.1.tgz", + "integrity": "sha512-EmPr3FqbQGqlNh+WxMNcF9pO9uDQJnOC4/3rLBQNH9m4E9qI+8lbfHCmHpVAsmGqPJPKhCjJLHUQzQW/RBHRdQ==", + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/awesome-only-resolves-last-promise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/awesome-only-resolves-last-promise/-/awesome-only-resolves-last-promise-1.0.3.tgz", + "integrity": "sha512-7q4WPsYiD8Omvi/yHL314DkvsD/lM//Z2/KcU1vWk0xJotiV0GMJTgHTpWl3n90HJqpXKg7qX+VVNs5YbQyPRQ==", + "dependencies": { + "awesome-imperative-promise": "^1.0.1" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/axios-retry": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.4.tgz", + "integrity": "sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/babel-jest": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz", + "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.4.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", + "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", + "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.4.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", + "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", + "dependencies": { + "caniuse-lite": "^1.0.30001274", + "electron-to-chromium": "^1.3.886", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserslist/node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001279", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001279.tgz", + "integrity": "sha512-VfEHpzHEXj6/CxggTwSFoZBBYGQfQv9Cf42KPlO79sWXCD1QNKWKsKzFeWL7QpZHJQYAvocqV6Rty1yJMkqWLQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboard": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", + "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz", + "integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-string": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", + "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/component-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", + "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configcat-common": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/configcat-common/-/configcat-common-4.5.0.tgz", + "integrity": "sha512-RZA0C1BVRlXJaavehPXk8q2YpmZyLovUFz0SHHdfePteDJjZ2iL7USahQi0SwpPK+BA5PKUvHZMkchMV2UGuPA==" + }, + "node_modules/configcat-js": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/configcat-js/-/configcat-js-5.6.0.tgz", + "integrity": "sha512-lMNdspGPCTSoIqtNQojXCKi4wjX1hl0vnTN3FMUKJQjCY32A6b9kBlbEocsVgzXEoArktRuMzOaXOVmY9+J8Tg==", + "dependencies": { + "configcat-common": "^4.5.0" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "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" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfontparser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", + "integrity": "sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=", + "dev": true + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", + "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "node_modules/d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "node_modules/d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/d3-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + }, + "node_modules/d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "dependencies": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "node_modules/d3-shape": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "dependencies": { + "d3-path": "1 - 2" + } + }, + "node_modules/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "dependencies": { + "d3-time": "1 - 2" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-urls/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dayjs": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + }, + "node_modules/debounce-promise": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", + "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", + "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dnd-core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-14.0.0.tgz", + "integrity": "sha512-wTDYKyjSqWuYw3ZG0GJ7k+UIfzxTNoZLjDrut37PbcPGNfwhlKYlPUqjAKUjOOv80izshUiqusaKgJPItXSevA==", + "dependencies": { + "@react-dnd/asap": "^4.0.0", + "@react-dnd/invariant": "^2.0.0", + "redux": "^4.0.5" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz", + "integrity": "sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g==", + "dev": true + }, + "node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/electron-to-chromium": { + "version": "1.3.893", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.893.tgz", + "integrity": "sha512-ChtwF7qB03INq1SyMpue08wc6cve+ktj2UC/Y7se9vB+JryfzziJeYwsgb8jLaCA5GMkHCdn5M62PfSMWhifZg==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", + "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-string": "^1.0.7", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", + "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.4.0", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-regex-util": "^27.4.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-equals": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.3.tgz", + "integrity": "sha512-0EMw4TTUxsMDpDkCg0rXor2gsg+npVrMIHbEhvD0HZyIhUX6AktC/yasm+qKwfyswd06Qy95ZKk8p2crTo0iPA==" + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", + "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/futoin-hkdf": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.4.2.tgz", + "integrity": "sha512-2BggwLEJOTfXzKq4Tl2bIT37p0IqqKkblH4e0cMp2sXTdmwg/ADBKMxvxaEytYYcgdxgng8+acsi3WgMVUl6CQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "dependencies": { + "stream-parser": "^0.3.1" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "node_modules/immutability-helper": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz", + "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==" + }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.0.tgz", + "integrity": "sha512-rgeP8yMlXeH4mfd9K/sQXZv1lvcS7xo379zntcotPDdMwkcGYwMxGHGZYo0/+YW5B/nor2YGKz2BH5ume405ow==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.2.tgz", + "integrity": "sha512-TAReynFYCfHNcrL+8Z74WPGafLFLF++bGkrpcsk6cO5G9S2VuJGhu2c44YFForMgF0GlYmtbpmeznkvZpNgTxg==", + "dev": true, + "dependencies": { + "@jest/core": "^27.4.2", + "import-local": "^3.0.2", + "jest-cli": "^27.4.2" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-canvas-mock": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz", + "integrity": "sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg==", + "dev": true, + "dependencies": { + "cssfontparser": "^1.2.1", + "moo-color": "^1.0.2" + } + }, + "node_modules/jest-changed-files": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", + "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz", + "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.4.2", + "@jest/test-result": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.4.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-runtime": "^27.4.2", + "jest-snapshot": "^27.4.2", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/jest-snapshot": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", + "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.2", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.2.tgz", + "integrity": "sha512-2vKqelsfHPnIzrPTpE9hImqxZLp5l9Vszpci19RdVB2i5OwoM+OkPExZMQb8aGrpEGXoKtlzvdqCL1GObiz8JQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.4.2", + "@jest/types": "^27.4.2", + "babel-jest": "^27.4.2", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-circus": "^27.4.2", + "jest-environment-jsdom": "^27.4.2", + "jest-environment-node": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-jasmine2": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.2", + "jest-runner": "^27.4.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.4.2", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/jest-validate": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", + "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", + "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.4.0", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", + "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", + "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.2.tgz", + "integrity": "sha512-L0dV4oq4+Ll7hZ8QCGvSELn8uOr938/QKOg6o70kMHiZOpWOjAqSf7fMVAtGhG/BVSvk1GTzhGJNOWsxtH5KbQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.4.2", + "@jest/fake-timers": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^27.4.2", + "jest-util": "^27.4.2", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz", + "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.4.2", + "@jest/fake-timers": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "jest-mock": "^27.4.2", + "jest-util": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-node/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-node/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-environment-node/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-get-type": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", + "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz", + "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.4.0", + "jest-serializer": "^27.4.0", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.2", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-haste-map/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-haste-map/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-haste-map/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz", + "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^27.4.2", + "@jest/source-map": "^27.4.0", + "@jest/test-result": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.4.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-runtime": "^27.4.2", + "jest-snapshot": "^27.4.2", + "jest-util": "^27.4.2", + "pretty-format": "^27.4.2", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-snapshot": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", + "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.2", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", + "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", + "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", + "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.4.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.4.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", + "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", + "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz", + "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.2", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.2", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz", + "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-snapshot": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve-dependencies/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/jest-snapshot": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", + "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.2", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/jest-validate": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", + "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.2.tgz", + "integrity": "sha512-YsgbYKk8V7J5BQPINXhdzNLoqIwUWrJkV9h6/ccsn6fbmC3n3ax1K5cDWzAU9qXyaQhetwFqPpHmAHIACscRKQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.4.2", + "@jest/environment": "^27.4.2", + "@jest/test-result": "^27.4.2", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.4.0", + "jest-environment-jsdom": "^27.4.2", + "jest-environment-node": "^27.4.2", + "jest-haste-map": "^27.4.2", + "jest-leak-detector": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-runtime": "^27.4.2", + "jest-util": "^27.4.2", + "jest-worker": "^27.4.2", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz", + "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.4.2", + "@jest/environment": "^27.4.2", + "@jest/globals": "^27.4.2", + "@jest/source-map": "^27.4.0", + "@jest/test-result": "^27.4.2", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-mock": "^27.4.2", + "jest-regex-util": "^27.4.0", + "jest-resolve": "^27.4.2", + "jest-snapshot": "^27.4.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.2.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/jest-snapshot": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", + "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.4.2", + "@jest/types": "^27.4.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.4.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "jest-haste-map": "^27.4.2", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-resolve": "^27.4.2", + "jest-util": "^27.4.2", + "natural-compare": "^1.4.0", + "pretty-format": "^27.4.2", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/jest-validate": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", + "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", + "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.0.tgz", + "integrity": "sha512-9HL5h/IWeg2u2dt0UIiseVRCnadh7CMPD4B9AeoEO23/NofaEfcPzIfl8dw45CpGHjP+xenw1viQYMd25DWquA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest/node_modules/camelcase": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.2.tgz", + "integrity": "sha512-Ex2WhCj4s0XFntTKTnyLgV/CZKgQaZBYrKz02XOZ4nUjFD+26Fji/M1SgHm+2IWEIsQqoipNRx9RJH56p8d7MQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.4.2", + "@jest/test-result": "^27.4.2", + "@jest/types": "^27.4.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.4.2", + "jest-util": "^27.4.2", + "jest-validate": "^27.4.2", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest/node_modules/jest-util": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", + "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.4", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest/node_modules/jest-validate": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", + "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.4.0", + "leven": "^3.1.0", + "pretty-format": "^27.4.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest/node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/joi": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/join-component": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", + "integrity": "sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU=" + }, + "node_modules/jose": { + "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" + }, + "engines": { + "node": ">=10.13.0 < 13 || >=13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json5": { + "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" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lottie-react": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.1.0.tgz", + "integrity": "sha512-sHDJb5aeh1letUIWqwidHoHZj07ZOZQoLuUgy0gqt9FB/XiCtAZ2+421Cn+ZkHR7anVvWljKhGgctQCtgFloUA==", + "dependencies": { + "lottie-web": "^5.7.3" + }, + "peerDependencies": { + "prop-types": "^15.5.7", + "react": "^16.8.0", + "react-dom": "^16.8.0" + } + }, + "node_modules/lottie-web": { + "version": "5.7.14", + "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.7.14.tgz", + "integrity": "sha512-J+QEPse7Rws0XvTqRJNtcE8cszb5FWYFHubEK6bgDJtw64/AQJ40aazbWXsWGBM4sm/PgLBLgmmhDU4QpLiieg==" + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mobx": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.3.tgz", + "integrity": "sha512-JoNU50rO6d1wHwKPJqKq4rmUMbYnI9CsJmBo+Cu4exBYenFvIN77LWrZENpzW6reZPADtXMmB1DicbDSfy8Clw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react-lite": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.1.tgz", + "integrity": "sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/modern-normalize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", + "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/moo-color": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.2.tgz", + "integrity": "sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg==", + "dev": true, + "dependencies": { + "color-name": "^1.1.4" + } + }, + "node_modules/moo-color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-url": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz", + "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==", + "dependencies": { + "querystring": "^0.2.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/next": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/next/-/next-11.1.1.tgz", + "integrity": "sha512-vfLJDkwAHsZUho5R1K4w49nfYhftUMWNmeNSjCtulOvnRBuEFb7ROyRZOQk7f29rMz02eLQrPZ9yiAmPsexL2g==", + "dependencies": { + "@babel/runtime": "7.15.3", + "@hapi/accept": "5.0.2", + "@next/env": "11.1.1", + "@next/polyfill-module": "11.1.1", + "@next/react-dev-overlay": "11.1.1", + "@next/react-refresh-utils": "11.1.1", + "@node-rs/helper": "1.2.1", + "assert": "2.0.0", + "ast-types": "0.13.2", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "3.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "native-url": "0.3.4", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "node-libs-browser": "^2.2.1", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.15", + "process": "0.11.10", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "4.0.0", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.4", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "11.1.1", + "@next/swc-darwin-x64": "11.1.1", + "@next/swc-linux-x64-gnu": "11.1.1", + "@next/swc-win32-x64-msvc": "11.1.1" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-compose-plugins": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz", + "integrity": "sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg==" + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/next/node_modules/@babel/runtime": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz", + "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/next/node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/next/node_modules/cssnano-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-3.0.0.tgz", + "integrity": "sha512-oU3ueli5Dtwgh0DyeohcIEE00QVfbPR3HzyXdAl89SfnQG3y0/qcpfLVW+jPIh3/rgMZGwuW96rejZGaYE9eUg==", + "dependencies": { + "cssnano-preset-simple": "^3.0.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/next/node_modules/cssnano-simple/node_modules/cssnano-preset-simple": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-3.0.0.tgz", + "integrity": "sha512-vxQPeoMRqUT3c/9f0vWeVa2nKQIHFpogtoBvFdW4GQ3IvEJ6uauCP6p3Y5zQDLFcI7/+40FTgX12o7XUL0Ko+w==", + "dependencies": { + "caniuse-lite": "^1.0.30001202" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.2.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", + "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==", + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/next/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "dependencies": { + "he": "1.2.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/node-libs-browser/node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/node-libs-browser/node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/node-libs-browser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/node-libs-browser/node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/node-libs-browser/node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/node-libs-browser/node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-libs-browser/node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "node_modules/node-libs-browser/node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.76", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", + "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oidc-token-hash": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz", + "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-types": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-9.3.0.tgz", + "integrity": "sha512-sR23YjmuwDSMsQVZDHbV9mPgi0RyniQlqR0AQxTC2/F3cpSjRFMH3CFPjoWvNqhC4OxPkDYNb2l8Mc1Me6D/KQ==" + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/openid-client": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-4.9.1.tgz", + "integrity": "sha512-DYUF07AHjI3QDKqKbn2F7RqozT4hyi4JvmpodLrq0HHoNP7t/AjeG/uqiBK1/N2PZSAQEThVjDLHSmJN4iqu/w==", + "dependencies": { + "aggregate-error": "^3.1.0", + "got": "^11.8.0", + "jose": "^2.0.5", + "lru-cache": "^6.0.0", + "make-error": "^1.3.6", + "object-hash": "^2.0.1", + "oidc-token-hash": "^5.0.1" + }, + "engines": { + "node": "^10.19.0 || >=12.0.0 < 13 || >=13.7.0 < 14 || >= 14.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/papaparse": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.1.tgz", + "integrity": "sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", + "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/pg": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz", + "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.4.1", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=2.0.0" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "node_modules/pg-format": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", + "integrity": "sha1-J3NCNsKtP05QZJFaWTNOIAQKgo4=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz", + "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", + "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", + "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", + "dependencies": { + "split2": "^3.1.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "dev": true, + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-js": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", + "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1", + "postcss": "^8.1.6" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "dependencies": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.4.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prism-react-renderer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz", + "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==", + "peerDependencies": { + "react": ">=0.14.9" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-compare": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.0.2.tgz", + "integrity": "sha512-3qUXJBariEj3eO90M3Rgqq3+/P5Efl0t/dl9g/1uVzIQmO3M+ql4hvNH3mYdu8H+1zcKv07YvL55tsY74jmH1A==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/purgecss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", + "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", + "dev": true, + "dependencies": { + "commander": "^6.0.0", + "glob": "^7.0.0", + "postcss": "^8.2.1", + "postcss-selector-parser": "^6.0.2" + }, + "bin": { + "purgecss": "bin/purgecss.js" + } + }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-beautiful-dnd": { + "version": "13.1.0", + "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", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0", + "react-dom": "^16.8.5 || ^17.0.0" + } + }, + "node_modules/react-contexify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-contexify/-/react-contexify-5.0.0.tgz", + "integrity": "sha512-2FIp7lxJ6dtfGr8EZ4uVV5p5TQjd0n2h/JU7PrejNIMiCeZWvSVPFh4lj1ZvjXosglBvP7q5JQQ8yUCdSaMSaw==", + "dependencies": { + "clsx": "^1.1.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-csv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.0.3.tgz", + "integrity": "sha512-exyAdFLAxtuM4wNwLYrlKyPYLiJ7e0mv9tqPAd3kq+k1CiJFtznevR3yP0icv5q/y200w+lzNgi7TQn1Wrhu0w==" + }, + "node_modules/react-dnd": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-14.0.3.tgz", + "integrity": "sha512-i73Hx5SKfDRdwXe30+CjF/DidiRdt/gwpPN14ajkPR20t/0osnNKFNHg3DLV6RZym+DJ0pO9H5APeMsBWGU3+Q==", + "dependencies": { + "@react-dnd/invariant": "^2.0.0", + "@react-dnd/shallowequal": "^2.0.0", + "dnd-core": "14.0.0", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-14.0.1.tgz", + "integrity": "sha512-ZDmpvFpd1NR4riw/CMbr8C3mgP6ZhsTf0c48a36kw4ZW8emgiugNlAz/qhhZ4/Pz9TO6DZ63sQohUTTl+AWGiA==", + "dependencies": { + "dnd-core": "14.0.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-draggable": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", + "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-from-dom": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.1.tgz", + "integrity": "sha512-7aAZx7LhRnmR51W5XtmTBYHGFl2n1AdEk1uoXLuzHa1OoGXrxOW/iwLcudvgp6BGX/l4Yh1rtMrIzvhlvbVddg==", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-grid-layout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.3.0.tgz", + "integrity": "sha512-WqFwybAItXu0AaSt9YL8+9xE5YotIzMcCYE0Q9XBqSKNyShTxPbC0LjObV/tOWZoADNWJ+osseVfRoZsjzwWXg==", + "dependencies": { + "classnames": "2.3.1", + "lodash.isequal": "^4.0.0", + "prop-types": "^15.0.0", + "react-draggable": "^4.0.0", + "react-resizable": "^3.0.4" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-grid-layout/node_modules/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "node_modules/react-hot-toast": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.1.1.tgz", + "integrity": "sha512-Odrp4wue0fHh0pOfZt5H+9nWCMtqs3wdlFSzZPp7qsxfzmbE26QmGWIh6hG43CukiPeOjA8WQhBJU8JwtWvWbQ==", + "dependencies": { + "goober": "^2.0.35" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-hot-toast/node_modules/csstype": { + "version": "2.6.18", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", + "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==", + "peer": true + }, + "node_modules/react-hot-toast/node_modules/goober": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.0.41.tgz", + "integrity": "sha512-kwjegMT5018zWydhOQlQneCgCtrKJaPsru7TaBWmTYV0nsMeUrM6L6O8JmNYb9UbPMgWcmtf+9p4Y3oJabIH1A==", + "peerDependencies": { + "csstype": "^2.6.2" + } + }, + "node_modules/react-inlinesvg": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-2.3.0.tgz", + "integrity": "sha512-fEGOdDf4k4bcveArbEpj01pJcH8pOCKLxmSj2POFdGvEk5YK0NZVnH6BXpW/PzACHPRsuh1YKAhNZyFnD28oxg==", + "dependencies": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-redux": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz", + "integrity": "sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-resizable": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.4.tgz", + "integrity": "sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA==", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, + "node_modules/react-resize-detector": { + "version": "6.7.6", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.7.6.tgz", + "integrity": "sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ==", + "dependencies": { + "@types/resize-observer-browser": "^0.1.6", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-smooth": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz", + "integrity": "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==", + "dependencies": { + "fast-equals": "^2.0.0", + "raf": "^3.4.0", + "react-transition-group": "2.9.0" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-split": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/react-split/-/react-split-2.0.13.tgz", + "integrity": "sha512-suq/UH4epMu2aF4NBh+imlpUvntsIvU3li9EBBLdxqNtYEg+nY7TGl8Ij65mD1qYyhs3dQhA1Pv3rLXd1s5/lQ==", + "dependencies": { + "prop-types": "^15.5.7", + "split.js": "^1.6.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-tiny-popover": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-6.0.10.tgz", + "integrity": "sha512-ECMucd701SxWHGa+2YuVvccCxxTjmhomcD0ZYTF+Qmi5qNAj8pdlExFN+k+p1G78QTYIGPGNLocxRb9f6cZ0Mw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/react-tracked": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/react-tracked/-/react-tracked-1.7.4.tgz", + "integrity": "sha512-iWiH7ZNImKJW5UGZZnEKtoDcdxffMZVxr6LDoMNZOSJKrwMCpYF8RuP9hwtiFjNog2WjF1Zjp2IpPMj5JVAVnA==", + "dependencies": { + "proxy-compare": "2.0.2", + "use-context-selector": "1.3.7" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": "*", + "react-native": "*", + "scheduler": ">=0.19.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/react-virtualized-auto-sizer": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", + "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" + } + }, + "node_modules/react-window": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.6.tgz", + "integrity": "sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-window-infinite-loader": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/react-window-infinite-loader/-/react-window-infinite-loader-1.0.7.tgz", + "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==", + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.1.6.tgz", + "integrity": "sha512-KnRNnCum1hL27DYhUfcdcKUEQkYnda6G+KDN4n/nCiTKp7UzJSgHfFHQvCkBujPi/U98dGd430DA2/8RJpkPlg==", + "dependencies": { + "@types/d3-interpolate": "^2.0.0", + "@types/d3-scale": "^3.0.0", + "@types/d3-shape": "^2.0.0", + "classnames": "^2.2.5", + "d3-interpolate": "^2.0.0", + "d3-scale": "^3.0.0", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "^16.10.2", + "react-resize-detector": "^6.6.3", + "react-smooth": "^2.0.0", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "node_modules/redux": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz", + "integrity": "sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/remove-trailing-slash": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", + "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.43.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", + "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz", + "integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split.js": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/split.js/-/split.js-1.6.4.tgz", + "integrity": "sha512-kYmQZprRJrF1IOjg/E+gdBEsKFv5kbgUE6RJVJZvrIzTOK/IHzKSqIeiJnWs7IP5D9TnpTQ2CbanuDuIWcyDUQ==" + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sqlstring": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", + "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "dependencies": { + "debug": "2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/styled-jsx": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-4.0.0.tgz", + "integrity": "sha512-2USeoWMoJ/Lx5s2y1PxuvLy/cz2Yrr8cTySV3ILHU1Vmaw1bnV7suKdblLPjnyhMD+qzN7B1SWyh4UZTARn/WA==", + "dependencies": { + "@babel/plugin-syntax-jsx": "7.14.5", + "@babel/types": "7.15.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || 18.x.x" + } + }, + "node_modules/styled-jsx/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/swr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/swr/-/swr-1.0.1.tgz", + "integrity": "sha512-EPQAxSjoD4IaM49rpRHK0q+/NzcwoT8c0/Ylu/u3/6mFj/CWnQVjNJ0MV2Iuw/U+EJSd2TX5czdAwKPYZIG0YA==", + "dependencies": { + "dequal": "2.0.2" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tailwindcss": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.15.tgz", + "integrity": "sha512-WgV41xTMbnSoTNMNnJvShQZ+8GmY86DmXTrCgnsveNZJdlybfwCItV8kAqjYmU49YiFr+ofzmT1JlAKajBZboQ==", + "dev": true, + "dependencies": { + "arg": "^5.0.1", + "bytes": "^3.0.0", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "color": "^4.0.1", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.7", + "fs-extra": "^10.0.0", + "glob-parent": "^6.0.1", + "html-tags": "^3.1.0", + "is-color-stop": "^1.1.0", + "is-glob": "^4.0.1", + "lodash": "^4.17.21", + "lodash.topath": "^4.5.2", + "modern-normalize": "^1.1.0", + "node-emoji": "^1.11.0", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss-js": "^3.0.3", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0", + "pretty-hrtime": "^1.0.3", + "purgecss": "^4.0.3", + "quick-lru": "^5.1.1", + "reduce-css-calc": "^2.1.8", + "resolve": "^1.20.0", + "tmp": "^0.2.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "autoprefixer": "^10.0.2", + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz", + "integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tailwindcss/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/ts-jest": { + "version": "27.0.7", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", + "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@types/jest": "^27.0.0", + "babel-jest": ">=27.0.0 <28", + "jest": "^27.0.0", + "typescript": ">=3.8 <5.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "babel-jest": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz", + "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uniforms": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/uniforms/-/uniforms-3.6.2.tgz", + "integrity": "sha512-3mPd7xRkL5MHdV18z/+xYDayCMr4Ed675FFOQG7bPWQ1sHXMoM3YGhx/rz3h8sqWKyOetbPeQKiHnCSWq1AxgQ==", + "dependencies": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + }, + "peerDependencies": { + "react": "^17.0.0 || ^16.8.0" + } + }, + "node_modules/uniforms-bootstrap4": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/uniforms-bootstrap4/-/uniforms-bootstrap4-3.6.2.tgz", + "integrity": "sha512-rdQClzTs171OLV/cxT5Ggl5fhx0cteVrOWVs6Jgbk3Wl1LUMBrZCynwz5TLVvM+Ayj7F47/DjoKYREF/HOE/5Q==", + "dependencies": { + "classnames": "^2.0.0", + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.6.2", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + }, + "peerDependencies": { + "react": "^17.0.0 || ^16.8.0" + } + }, + "node_modules/uniforms-bridge-json-schema": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/uniforms-bridge-json-schema/-/uniforms-bridge-json-schema-3.6.2.tgz", + "integrity": "sha512-NI9qfFpImxsljw+k17D/QEAQwKlQHVtJlTVRlcMI00pHf3bx+3Kg2E3f/b5OLHKiM0eK3xF1hldBU0zpopuw3g==", + "dependencies": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.6.2" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/url/node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/use-context-selector": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/use-context-selector/-/use-context-selector-1.3.7.tgz", + "integrity": "sha512-O94hcN9UDAPTC4Fsm3p6Og5PVlhTEeKqxJX3HuBbVSuevOSPLDZxowFUmx49/fnu9jpgY83Nd3TALJVDRtYzdQ==", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": "*", + "react-native": "*", + "scheduler": ">=0.19.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/use-memo-one": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", + "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", + "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz", + "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zxcvbn": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz", + "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=" + } + }, "dependencies": { "@auth0/nextjs-auth0": { "version": "1.6.1", @@ -70,14 +13758,12 @@ "@babel/compat-data": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==" }, "@babel/core": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, "requires": { "@babel/code-frame": "^7.16.0", "@babel/generator": "^7.16.0", @@ -100,7 +13786,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, "requires": { "@babel/highlight": "^7.16.0" } @@ -109,7 +13794,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -119,7 +13803,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -127,14 +13810,12 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -142,7 +13823,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, "requires": { "@babel/types": "^7.16.0", "jsesc": "^2.5.1", @@ -153,7 +13833,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -162,8 +13841,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -171,7 +13849,6 @@ "version": "7.16.3", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, "requires": { "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", @@ -183,7 +13860,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.16.0", "@babel/template": "^7.16.0", @@ -194,7 +13870,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -206,7 +13881,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -215,7 +13889,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -227,7 +13900,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -236,7 +13908,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -248,7 +13919,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -257,7 +13927,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -269,7 +13938,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -278,7 +13946,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -290,7 +13957,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, "requires": { "@babel/helper-module-imports": "^7.16.0", "@babel/helper-replace-supers": "^7.16.0", @@ -306,7 +13972,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -318,7 +13983,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -327,7 +13991,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -344,7 +14007,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.16.0", "@babel/helper-optimise-call-expression": "^7.16.0", @@ -356,7 +14018,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -368,7 +14029,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -377,7 +14037,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -389,7 +14048,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, "requires": { "@babel/types": "^7.16.0" }, @@ -398,7 +14056,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -414,14 +14071,12 @@ "@babel/helper-validator-option": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" }, "@babel/helpers": { "version": "7.16.3", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, "requires": { "@babel/template": "^7.16.0", "@babel/traverse": "^7.16.3", @@ -432,7 +14087,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -453,8 +14107,7 @@ "@babel/parser": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==" }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -593,7 +14246,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, "requires": { "@babel/code-frame": "^7.16.0", "@babel/parser": "^7.16.0", @@ -604,7 +14256,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, "requires": { "@babel/highlight": "^7.16.0" } @@ -613,7 +14264,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -625,7 +14275,6 @@ "version": "7.16.3", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, "requires": { "@babel/code-frame": "^7.16.0", "@babel/generator": "^7.16.0", @@ -642,7 +14291,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, "requires": { "@babel/highlight": "^7.16.0" } @@ -651,7 +14299,6 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" @@ -661,7 +14308,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -669,8 +14315,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -722,7 +14367,8 @@ "@headlessui/react": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz", - "integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==" + "integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==", + "requires": {} }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -1562,7 +15208,8 @@ "@next/react-refresh-utils": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.1.1.tgz", - "integrity": "sha512-j186y+lWc8BHAuysAWvlOqO9Bp7E3BLK/d/Ju3W2sP5BCH5ZLyLG/p308zSy/O0MGTag0B038ZA1dCy/msouRQ==" + "integrity": "sha512-j186y+lWc8BHAuysAWvlOqO9Bp7E3BLK/d/Ju3W2sP5BCH5ZLyLG/p308zSy/O0MGTag0B038ZA1dCy/msouRQ==", + "requires": {} }, "@next/swc-darwin-arm64": { "version": "11.1.1", @@ -1978,9 +15625,9 @@ } }, "@supabase/gotrue-js": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.20.0.tgz", - "integrity": "sha512-udv6o44JPqQWc8dh9bJnvvUpPKFtzVpSpsTKiS541gjR9kNCgdxkMMYBh5653W9gKfcmqN5mYf9/hYzDOoB6ww==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.21.7.tgz", + "integrity": "sha512-YnL4cO3Q+ugatWEtgCEnLt+Wwi0VpOVTPSSjSSUho2x3cH7+juRBTrVbYky/W6YVgAw/ZJrVUFPh/NcUCUhdmw==", "requires": { "cross-fetch": "^3.0.6" } @@ -2032,9 +15679,9 @@ } }, "@supabase/realtime-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.2.1.tgz", - "integrity": "sha512-nhwSvizonT8hiMoQHOqs+2MZNV8qkhKn552g7NIJktVmqpz//O1dGjdcXyjhbAurW18z0Y7Qa9G7UXfEYJKRPQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.3.3.tgz", + "integrity": "sha512-9D79jlo/56VQf/U7TWhu24epCoj0vWJ7ALkGcqci8Luk/iOcdCxY1NJ76BbS1UnpXEIvQxQGb1R5NSexriKcUA==", "requires": { "@types/websocket": "^1.0.3", "websocket": "^1.0.34" @@ -2049,13 +15696,13 @@ } }, "@supabase/supabase-js": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.27.0.tgz", - "integrity": "sha512-oAm111Y1t7X+S5GeJWw9NdzAn1A1Cz5WAB/evYjM4ut7ZVWpeaEAlQ2p34MAjDrRVAcCfEr75rQwLTCqPcmMMQ==", + "version": "1.28.5", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.28.5.tgz", + "integrity": "sha512-RZFSkj0tC6YppUVOBDldLLko4BgV8ASY+OiXC1ZxpcwmNInPgGiDkv59kVPN1UC96vnRQ/1fbFngPcwTtb1Qjw==", "requires": { - "@supabase/gotrue-js": "^1.20.0", + "@supabase/gotrue-js": "^1.21.7", "@supabase/postgrest-js": "^0.35.0", - "@supabase/realtime-js": "^1.2.1", + "@supabase/realtime-js": "^1.3.3", "@supabase/storage-js": "^1.5.0" } }, @@ -3124,7 +16771,6 @@ "version": "4.17.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.6.tgz", "integrity": "sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001274", "electron-to-chromium": "^1.3.886", @@ -3136,8 +16782,7 @@ "node-releases": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" } } }, @@ -4505,8 +18150,7 @@ "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-caller-file": { "version": "2.0.5", @@ -4585,8 +18229,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "good-listener": { "version": "1.2.2", @@ -6554,7 +20197,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "27.4.0", @@ -7331,8 +20975,7 @@ "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-buffer": { "version": "3.0.1", @@ -7354,7 +20997,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -7523,6 +21165,11 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7531,11 +21178,6 @@ "yallist": "^4.0.0" } }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" - }, "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -7697,7 +21339,8 @@ "mobx-react-lite": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.1.tgz", - "integrity": "sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA==" + "integrity": "sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA==", + "requires": {} }, "modern-normalize": { "version": "1.1.0", @@ -8425,7 +22068,8 @@ "pg-pool": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz", - "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==" + "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", + "requires": {} }, "pg-protocol": { "version": "1.5.0", @@ -8455,8 +22099,7 @@ "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { "version": "2.3.0", @@ -8608,7 +22251,8 @@ "prism-react-renderer": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz", - "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==" + "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==", + "requires": {} }, "process": { "version": "0.11.10", @@ -8872,7 +22516,8 @@ "react-from-dom": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.1.tgz", - "integrity": "sha512-7aAZx7LhRnmR51W5XtmTBYHGFl2n1AdEk1uoXLuzHa1OoGXrxOW/iwLcudvgp6BGX/l4Yh1rtMrIzvhlvbVddg==" + "integrity": "sha512-7aAZx7LhRnmR51W5XtmTBYHGFl2n1AdEk1uoXLuzHa1OoGXrxOW/iwLcudvgp6BGX/l4Yh1rtMrIzvhlvbVddg==", + "requires": {} }, "react-grid-layout": { "version": "1.3.0", @@ -8904,12 +22549,14 @@ "csstype": { "version": "2.6.18", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", - "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==" + "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==", + "peer": true }, "goober": { "version": "2.0.41", "resolved": "https://registry.npmjs.org/goober/-/goober-2.0.41.tgz", - "integrity": "sha512-kwjegMT5018zWydhOQlQneCgCtrKJaPsru7TaBWmTYV0nsMeUrM6L6O8JmNYb9UbPMgWcmtf+9p4Y3oJabIH1A==" + "integrity": "sha512-kwjegMT5018zWydhOQlQneCgCtrKJaPsru7TaBWmTYV0nsMeUrM6L6O8JmNYb9UbPMgWcmtf+9p4Y3oJabIH1A==", + "requires": {} } } }, @@ -8992,7 +22639,8 @@ "react-tiny-popover": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/react-tiny-popover/-/react-tiny-popover-6.0.10.tgz", - "integrity": "sha512-ECMucd701SxWHGa+2YuVvccCxxTjmhomcD0ZYTF+Qmi5qNAj8pdlExFN+k+p1G78QTYIGPGNLocxRb9f6cZ0Mw==" + "integrity": "sha512-ECMucd701SxWHGa+2YuVvccCxxTjmhomcD0ZYTF+Qmi5qNAj8pdlExFN+k+p1G78QTYIGPGNLocxRb9f6cZ0Mw==", + "requires": {} }, "react-tracked": { "version": "1.7.4", @@ -9017,7 +22665,8 @@ "react-virtualized-auto-sizer": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==" + "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", + "requires": {} }, "react-window": { "version": "1.8.6", @@ -9031,7 +22680,8 @@ "react-window-infinite-loader": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/react-window-infinite-loader/-/react-window-infinite-loader-1.0.7.tgz", - "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==" + "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==", + "requires": {} }, "readable-stream": { "version": "3.6.0", @@ -9502,6 +23152,14 @@ "debug": "2" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", @@ -9560,14 +23218,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -9618,7 +23268,8 @@ "stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} }, "supports-color": { "version": "5.5.0", @@ -10094,12 +23745,14 @@ "use-context-selector": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/use-context-selector/-/use-context-selector-1.3.7.tgz", - "integrity": "sha512-O94hcN9UDAPTC4Fsm3p6Og5PVlhTEeKqxJX3HuBbVSuevOSPLDZxowFUmx49/fnu9jpgY83Nd3TALJVDRtYzdQ==" + "integrity": "sha512-O94hcN9UDAPTC4Fsm3p6Og5PVlhTEeKqxJX3HuBbVSuevOSPLDZxowFUmx49/fnu9jpgY83Nd3TALJVDRtYzdQ==", + "requires": {} }, "use-memo-one": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==" + "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", + "requires": {} }, "use-subscription": { "version": "1.5.1", @@ -10466,7 +24119,8 @@ "ws": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" + "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "requires": {} }, "xml-name-validator": { "version": "3.0.0", diff --git a/studio/package.json b/studio/package.json index 79a4e83f158..6d748151181 100644 --- a/studio/package.json +++ b/studio/package.json @@ -20,7 +20,7 @@ "@supabase/grid": "^2.3.9", "@supabase/postgres-meta": "^0.26.1", "@supabase/react-data-grid": "^7.1.0-beta.7", - "@supabase/supabase-js": "^1.27.0", + "@supabase/supabase-js": "^1.28.0", "@supabase/ui": "^0.35.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", From 95cc1ee9b5d6cc67affaffc5dd780ccc25639c0c Mon Sep 17 00:00:00 2001 From: Kang Ming Date: Mon, 6 Dec 2021 20:35:24 +0800 Subject: [PATCH 030/166] fix: update http methods to send authorization header --- studio/lib/common/fetch/base.ts | 11 +++++++++++ studio/lib/common/fetch/delete.ts | 4 +++- studio/lib/common/fetch/get.ts | 4 +++- studio/lib/common/fetch/patch.ts | 4 +++- studio/lib/common/fetch/post.ts | 4 +++- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/studio/lib/common/fetch/base.ts b/studio/lib/common/fetch/base.ts index 63eec4a3664..d408d5813ff 100644 --- a/studio/lib/common/fetch/base.ts +++ b/studio/lib/common/fetch/base.ts @@ -1,3 +1,4 @@ +import { tryParseJson } from 'lib/helpers' import { SupaResponse } from 'types/base' export function handleError(e: any, requestId: string): SupaResponse { @@ -62,3 +63,13 @@ export async function handleResponseError( return { error } as unknown as SupaResponse } } + +export function getAccessToken() { + const tokenData = window?.localStorage['supabase.auth.token'] + if (!tokenData) return undefined + const tokenObj = tryParseJson(tokenData) + if (tokenObj === false) { + return "" + } + return tokenObj.currentSession.access_token +} diff --git a/studio/lib/common/fetch/delete.ts b/studio/lib/common/fetch/delete.ts index be40673d20e..7befcbdcf40 100644 --- a/studio/lib/common/fetch/delete.ts +++ b/studio/lib/common/fetch/delete.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError } from './base' +import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -9,6 +9,7 @@ export async function delete_( ): Promise> { const requestId = uuidv4() const { headers, ...otherOptions } = options ?? {} + const accessToken = getAccessToken() try { const response = await fetch(url, { method: 'DELETE', @@ -19,6 +20,7 @@ export async function delete_( 'Content-Type': 'application/json', Accept: 'application/json', 'X-Request-Id': requestId, + 'Authorization': `Bearer ${accessToken}`, ...headers, }, ...otherOptions, diff --git a/studio/lib/common/fetch/get.ts b/studio/lib/common/fetch/get.ts index 393fcd6989c..e1c2c954578 100644 --- a/studio/lib/common/fetch/get.ts +++ b/studio/lib/common/fetch/get.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError } from './base' +import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -9,6 +9,7 @@ export async function get( const requestId = uuidv4() try { const { headers, ...otherOptions } = options ?? {} + const accessToken = getAccessToken() const response = await fetch(url, { method: 'GET', credentials: 'include', @@ -17,6 +18,7 @@ export async function get( 'Content-Type': 'application/json', Accept: 'application/json', 'X-Request-Id': requestId, + 'Authorization': `Bearer ${accessToken}`, ...headers, }, ...otherOptions, diff --git a/studio/lib/common/fetch/patch.ts b/studio/lib/common/fetch/patch.ts index e64f5f9ebf4..5c5ca12adf4 100644 --- a/studio/lib/common/fetch/patch.ts +++ b/studio/lib/common/fetch/patch.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError } from './base' +import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -10,6 +10,7 @@ export async function patch( const requestId = uuidv4() try { const { headers, ...otherOptions } = options ?? {} + const accessToken = getAccessToken() const response = await fetch(url, { method: 'PATCH', body: JSON.stringify(data), @@ -19,6 +20,7 @@ export async function patch( 'Content-Type': 'application/json', Accept: 'application/json', 'X-Request-Id': requestId, + 'Authorization': `Bearer ${accessToken}`, ...headers, }, ...otherOptions, diff --git a/studio/lib/common/fetch/post.ts b/studio/lib/common/fetch/post.ts index a58d3164aa9..890641c92d6 100644 --- a/studio/lib/common/fetch/post.ts +++ b/studio/lib/common/fetch/post.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError } from './base' +import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' import { uuidv4 } from 'lib/helpers' import { SupaResponse } from 'types/base' @@ -10,6 +10,7 @@ export async function post( const requestId = uuidv4() try { const { headers, ...otherOptions } = options ?? {} + const accessToken = getAccessToken() const response = await fetch(url, { method: 'POST', body: JSON.stringify(data), @@ -19,6 +20,7 @@ export async function post( 'Content-Type': 'application/json', Accept: 'application/json', 'X-Request-Id': requestId, + 'Authorization': `Bearer ${accessToken}`, ...headers, }, ...otherOptions, From 3293c5f3c04bb168ce97265e7193ed3549b6df0b Mon Sep 17 00:00:00 2001 From: Kang Ming Date: Mon, 6 Dec 2021 20:35:50 +0800 Subject: [PATCH 031/166] fix: add gotrue helper funcs --- studio/lib/gotrue.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 studio/lib/gotrue.ts diff --git a/studio/lib/gotrue.ts b/studio/lib/gotrue.ts new file mode 100644 index 00000000000..e0db401fc8f --- /dev/null +++ b/studio/lib/gotrue.ts @@ -0,0 +1,36 @@ +import { GoTrueClient, User } from '@supabase/gotrue-js' + +export const GOTRUE_ENABLED = (process.env.NEXT_PUBLIC_GOTRUE_ENABLED === 'true') || false +export const GOTRUE_URL = process.env.GOTRUE_URL || 'http://localhost:8000/auth/v1' + +export const auth = new GoTrueClient({ + url: process.env.NEXT_PUBLIC_GOTRUE_URL, + autoRefreshToken: true, +}) + +export const getAuthUser = async (token: String): Promise => { + try { + const { data: user, error } = await auth.api.getUser(token.replace('Bearer ', '')) + if (error) throw error + + return { user, error: null } + } catch (err) { + console.log(err) + return { user: null, error: err } + } +} + +export const getAuth0Id = (provider: String, providerId: String): String => { + return `${provider}|${providerId}` +} + +export const getIdentity = (gotrueUser: User) => { + try { + if (gotrueUser !== undefined && gotrueUser.identities !== undefined) { + return { identity: gotrueUser.identities[0], error: null } + } + throw 'Missing identity' + } catch (err) { + return { identity: null, error: err } + } +} From 5fb21c085e0e3acd01ac7fb1e86ecb5a8fd59a85 Mon Sep 17 00:00:00 2001 From: Kang Ming Date: Mon, 6 Dec 2021 20:49:36 +0800 Subject: [PATCH 032/166] fix: update apiAuthenticate to use gotrue --- studio/lib/api/apiAuthenticate.ts | 57 +++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/studio/lib/api/apiAuthenticate.ts b/studio/lib/api/apiAuthenticate.ts index 721a1a68ce4..79730ccd789 100644 --- a/studio/lib/api/apiAuthenticate.ts +++ b/studio/lib/api/apiAuthenticate.ts @@ -4,6 +4,8 @@ import { readOnly } from './supabaseClient' import { SupaResponse, User } from 'types' import { auth0 } from './auth0' import { flattenNamespaceOnUser } from './apiHelpers' +import { config } from 'process' +import { getAuth0Id, getAuthUser, getIdentity, GOTRUE_ENABLED } from 'lib/gotrue' /** * Use this method on api routes to check if user is authenticated and having required permissions. @@ -32,7 +34,7 @@ export async function apiAuthenticate( try { // Check that they are logged in // If no error throw from getAccessToken. That's good, we can continue - await auth0.getAccessToken(req, res) + if (!(GOTRUE_ENABLED)) await auth0.getAccessToken(req, res) const user = await fetchUser(req, res) if (!user) { @@ -53,16 +55,41 @@ export async function apiAuthenticate( * user with only id prop or detail object. It depends on requireUserDetail config */ async function fetchUser(req: NextApiRequest, res: NextApiResponse): Promise { - const session = auth0.getSession(req, res) + let user_id_supabase = null + let user_id_auth0 = null + let gotrue_id = null + let email = null + if (GOTRUE_ENABLED) { + const token = req.headers.authorization + if (!token) { + return res.status(401).end('Unauthorized: missing access token') + } + let { user: gotrue_user, error: authError } = await getAuthUser(token) + if (authError) { + throw authError + } + if (gotrue_user !== null) { + gotrue_id = gotrue_user?.id + email = gotrue_user.email - if (!session) { - return null + let { identity, error } = getIdentity(gotrue_user) + if (error) throw error + if (identity?.provider !== undefined) { + user_id_auth0 = getAuth0Id(identity?.provider, identity?.id) + } + } + } else { + const session = auth0.getSession(req, res) + if (!session) { + return null + } + const { user: auth0_user } = session + const flattened = flattenNamespaceOnUser('https://supabase.io', auth0_user) + user_id_supabase = flattened.user_id_supabase + user_id_auth0 = flattened.user_id_auth0 + email = flattened.email } - const { user: auth0_user } = session - const flattened = flattenNamespaceOnUser('https://supabase.io', auth0_user) - const { user_id_supabase, user_id_auth0, email } = flattened - if (user_id_supabase) { return { id: user_id_supabase, @@ -70,15 +97,15 @@ async function fetchUser(req: NextApiRequest, res: NextApiResponse): Promise Date: Mon, 6 Dec 2021 21:01:58 +0800 Subject: [PATCH 033/166] fix: use gotrue on client if enabled --- studio/components/interfaces/Home/Landing.tsx | 33 ++++++++++++++++--- .../layouts/AccountLayout/AccountLayout.tsx | 32 ++++++++++++++---- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/studio/components/interfaces/Home/Landing.tsx b/studio/components/interfaces/Home/Landing.tsx index cc6142e7b76..d22ee1371c7 100644 --- a/studio/components/interfaces/Home/Landing.tsx +++ b/studio/components/interfaces/Home/Landing.tsx @@ -2,15 +2,32 @@ import Image from 'next/image' import Link from 'next/link' import Head from 'next/head' import { observer } from 'mobx-react-lite' -import { Button, Typography } from '@supabase/ui' +import { Button, IconGitHub, Typography } from '@supabase/ui' import { API_URL } from 'lib/constants' import { useStore } from 'hooks' +import { auth, GOTRUE_ENABLED } from 'lib/gotrue' const Landing = () => { const { ui } = useStore() const { theme } = ui + async function handleGithubSignIn() { + try { + const { user, session, error } = await auth.signIn( + { + provider: 'github', + }, + { + redirectTo: process.env.NEXT_PUBLIC_SITE_URL, + } + ) + if (error) throw error + } catch (error) { + console.error(error) + } + } + return (
@@ -38,7 +55,10 @@ const Landing = () => { type="success" className="ml-8 font-medium hover:text-gray-300 focus:outline-none focus:text-gray-300 transition duration-150 ease-in-out" > - Sign In + {GOTRUE_ENABLED ? + + : Sign In + }
@@ -55,9 +75,12 @@ const Landing = () => {

- - - + {GOTRUE_ENABLED ? + + : + + + }
- ) : hasProjectData ? ( + ) : !usage.error && hasProjectData ? ( ) : ( From 404f95f32b80cf9d31447296c733b056623ca6e7 Mon Sep 17 00:00:00 2001 From: vluna Date: Tue, 7 Dec 2021 08:50:45 -0500 Subject: [PATCH 037/166] docs: add conditional chaining to filters --- web/spec/supabase.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/web/spec/supabase.yml b/web/spec/supabase.yml index d9d6124e714..73ce9098ec5 100644 --- a/web/spec/supabase.yml +++ b/web/spec/supabase.yml @@ -1689,6 +1689,26 @@ pages: .lt('population', 10000) ``` + ### Conditionally Chaining + + Filters can be built up one step at a time and then executed. For example: + + ```js + const filterByName = null + const filterPopLow = 1000 + const filterPopHigh = 10000 + + let query = supabase + .from('cities') + .select('name, country_id') + + if (filterByName) { query = query.eq('name', filterByName) } + if (filterPopLow) { query = query.gte('population', filterPopLow) } + if (filterPopHigh) { query = query.lt('population', filterPopHigh) } + + const { data, error } = await query + ``` + .or(): $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.or' examples: From 7f254bc9d5282386db9c35d0982167d1fbe64c21 Mon Sep 17 00:00:00 2001 From: vluna Date: Tue, 7 Dec 2021 08:53:37 -0500 Subject: [PATCH 038/166] docs: update title --- web/spec/supabase.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/spec/supabase.yml b/web/spec/supabase.yml index 73ce9098ec5..7db13321957 100644 --- a/web/spec/supabase.yml +++ b/web/spec/supabase.yml @@ -1689,7 +1689,7 @@ pages: .lt('population', 10000) ``` - ### Conditionally Chaining + ### Conditional Chaining Filters can be built up one step at a time and then executed. For example: From 14b272550da835ee7642a5f083fa01435601302a Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 8 Dec 2021 11:12:10 +0700 Subject: [PATCH 039/166] Remove excessive error checking in saveTable method --- studio/stores/pgmeta/MetaStore.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/studio/stores/pgmeta/MetaStore.ts b/studio/stores/pgmeta/MetaStore.ts index e842eda5d2e..3d8a1e30027 100644 --- a/studio/stores/pgmeta/MetaStore.ts +++ b/studio/stores/pgmeta/MetaStore.ts @@ -527,8 +527,7 @@ export default class MetaStore implements IMetaStore { ...column, isPrimaryKey: false, }) - const addedColumn: any = await this.createColumn(columnPayload, column.foreignKey) - if (addedColumn.error) throw addedColumn.error + await this.createColumn(columnPayload, column.foreignKey) } else { const originalColumn = find(originalColumns, { id: column.id }) if (originalColumn) { @@ -545,13 +544,7 @@ export default class MetaStore implements IMetaStore { category: 'loading', message: `Updating column ${column.name} from ${updatedTable.name}`, }) - const updatedColumn: any = await this.updateColumn( - column.id, - columnPayload, - updatedTable, - column.foreignKey - ) - if (updatedColumn.error) throw updatedColumn.error + await this.updateColumn(column.id, columnPayload, updatedTable, column.foreignKey) } } } From da694f140586d6a22096fc4cb6f280cf7deb81bc Mon Sep 17 00:00:00 2001 From: Harsh Karande Date: Wed, 8 Dec 2021 12:38:50 +0530 Subject: [PATCH 040/166] fix(example): javascript auth --- examples/javascript-auth/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/javascript-auth/index.js b/examples/javascript-auth/index.js index efc0e7442b4..6df938bf3c2 100644 --- a/examples/javascript-auth/index.js +++ b/examples/javascript-auth/index.js @@ -30,7 +30,7 @@ const signUpSubmitted = (event) => { response.error ? alert(response.error.message) : setToken(response) }) .catch((err) => { - alert(err.response.text) + alert(err) }) } @@ -58,7 +58,7 @@ const logoutSubmitted = (event) => { supabase.auth .signOut() - .then((response) => { + .then((_response) => { document.querySelector('#access-token').value = '' document.querySelector('#refresh-token').value = '' alert('Logout successful') @@ -69,7 +69,7 @@ const logoutSubmitted = (event) => { } function setToken(response) { - if (response.data.confirmation_sent_at && !response.data.access_token) { + if (response.user.confirmation_sent_at && !response?.data?.access_token) { alert('Confirmation Email Sent') } else { document.querySelector('#access-token').value = response.data.access_token From eb117c3ffa486611c0bd1799c0c3db70dbd37a2a Mon Sep 17 00:00:00 2001 From: Bobbie Soedirgo Date: Wed, 8 Dec 2021 17:23:17 +0800 Subject: [PATCH 041/166] fix(docker): update images --- docker/docker-compose.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 53f36bc21a0..67f617df007 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,4 +1,3 @@ - # Usage # Start: docker-compose up # With helpers: docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up @@ -37,7 +36,7 @@ services: auth: container_name: supabase-auth - image: supabase/gotrue:v2.2.6 + image: supabase/gotrue:v2.2.12 depends_on: - db restart: unless-stopped @@ -46,7 +45,7 @@ services: GOTRUE_API_PORT: 9999 GOTRUE_DB_DRIVER: postgres - GOTRUE_DB_DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres?sslmode=disable&search_path=auth + GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@db:5432/postgres?sslmode=disable GOTRUE_SITE_URL: ${SITE_URL} GOTRUE_URI_ALLOW_LIST: ${ADDITIONAL_REDIRECT_URLS} @@ -74,20 +73,20 @@ services: rest: container_name: supabase-rest - image: postgrest/postgrest:v8.0.0.20211102 + image: postgrest/postgrest:v9.0.0 depends_on: - db restart: unless-stopped environment: PGRST_DB_URI: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres - PGRST_DB_SCHEMA: public, storage + PGRST_DB_SCHEMA: public,storage PGRST_DB_ANON_ROLE: anon PGRST_JWT_SECRET: ${JWT_SECRET} PGRST_DB_USE_LEGACY_GUCS: "false" realtime: container_name: supabase-realtime - image: supabase/realtime:v0.19.0 + image: supabase/realtime:v0.19.3 depends_on: - db restart: unless-stopped @@ -111,7 +110,7 @@ services: storage: container_name: supabase-storage - image: supabase/storage-api:v0.9.3 + image: supabase/storage-api:v0.10.0 depends_on: - db - rest @@ -122,12 +121,11 @@ services: POSTGREST_URL: http://rest:3000 PGRST_JWT_SECRET: ${JWT_SECRET} DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD}@db:5432/postgres - PGOPTIONS: -c search_path=storage + PGOPTIONS: -c search_path=storage,public FILE_SIZE_LIMIT: 52428800 STORAGE_BACKEND: file FILE_STORAGE_BACKEND_PATH: /var/lib/storage - # TODO: https://github.com/supabase/storage-api/commit/a836fc9666c2434d89ca4b31402f74772d50fb6d - PROJECT_REF: stub + TENANT_ID: stub # TODO: https://github.com/supabase/storage-api/issues/55 REGION: stub GLOBAL_S3_BUCKET: stub @@ -136,7 +134,7 @@ services: meta: container_name: supabase-meta - image: supabase/postgres-meta:v0.28.0 + image: supabase/postgres-meta:v0.29.0 depends_on: - db restart: unless-stopped @@ -147,8 +145,8 @@ services: db: container_name: supabase-db - image: supabase/postgres:13.3.0 - command: postgres -c wal_level=logical + image: supabase/postgres:14.1.0 + command: postgres -c config_file=/etc/postgresql/postgresql.conf restart: unless-stopped ports: - ${POSTGRES_PORT}:5432 From 2982bc0a91921eb082c66b1628a7f61fb5db6bee Mon Sep 17 00:00:00 2001 From: Avneesh Agarwal Date: Wed, 8 Dec 2021 20:44:56 +0530 Subject: [PATCH 042/166] Add Twitter auth with Supabase in Next.js blog --- web/docs/guides/examples.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/web/docs/guides/examples.mdx b/web/docs/guides/examples.mdx index 49d714a3d93..ffedef4ad26 100644 --- a/web/docs/guides/examples.mdx +++ b/web/docs/guides/examples.mdx @@ -86,3 +86,4 @@ Build a basic Todo List with Supabase and your favorite frontend framework: - Authentication with Supabase and React. [Blog](https://hyperfoo.io/posts/supabase-authentication-react) - Supabase Schema Visualizer. [Blog](https://dev.to/zernonia/supabase-schema-visualizer-no-installation-login-49kg) - Create a real-time UI using Next.js + Supabase. [Blog](https://pablopunk.com/posts/how-to-create-a-real-time-ui-with-nextjs-and-supabase) +- How to add Twitter auth quickly with Supabase to your Next.js site ⚡ [Blog](https://blog.avneesh.tech/how-to-add-twitter-auth-quickly-with-supabase-to-your-nextjs-site) From 9c0c4449477b8bd8444b9607d35cdb30a693ccd5 Mon Sep 17 00:00:00 2001 From: phamhieu Date: Thu, 9 Dec 2021 07:22:49 +0700 Subject: [PATCH 043/166] fix: only set headers.Authorization when access token is available to prevent token has wrong format error --- studio/lib/common/fetch/base.ts | 18 +++++++++++++++++- studio/lib/common/fetch/delete.ts | 14 ++++---------- studio/lib/common/fetch/get.ts | 14 ++++---------- studio/lib/common/fetch/patch.ts | 14 ++++---------- studio/lib/common/fetch/post.ts | 14 ++++---------- 5 files changed, 33 insertions(+), 41 deletions(-) diff --git a/studio/lib/common/fetch/base.ts b/studio/lib/common/fetch/base.ts index d408d5813ff..0d517e85bdb 100644 --- a/studio/lib/common/fetch/base.ts +++ b/studio/lib/common/fetch/base.ts @@ -69,7 +69,23 @@ export function getAccessToken() { if (!tokenData) return undefined const tokenObj = tryParseJson(tokenData) if (tokenObj === false) { - return "" + return '' } return tokenObj.currentSession.access_token } + +export function constructHeaders(requestId: string, optionHeaders?: { [prop: string]: any }) { + let headers: { [prop: string]: any } = { + 'Content-Type': 'application/json', + Accept: 'application/json', + 'X-Request-Id': requestId, + ...optionHeaders, + } + + if (process.env.NEXT_PUBLIC_GOTRUE_ENABLED) { + const accessToken = getAccessToken() + if (accessToken) headers.Authorization = `Bearer ${accessToken}` + } + + return headers +} diff --git a/studio/lib/common/fetch/delete.ts b/studio/lib/common/fetch/delete.ts index 7befcbdcf40..d9b27abc1a4 100644 --- a/studio/lib/common/fetch/delete.ts +++ b/studio/lib/common/fetch/delete.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' +import { handleError, handleResponse, handleResponseError, constructHeaders } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -8,21 +8,15 @@ export async function delete_( options?: { [prop: string]: any } ): Promise> { const requestId = uuidv4() - const { headers, ...otherOptions } = options ?? {} - const accessToken = getAccessToken() try { + const { headers: optionHeaders, ...otherOptions } = options ?? {} + const headers = constructHeaders(requestId, optionHeaders) const response = await fetch(url, { method: 'DELETE', body: JSON.stringify(data), credentials: 'include', referrerPolicy: 'no-referrer-when-downgrade', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - 'X-Request-Id': requestId, - 'Authorization': `Bearer ${accessToken}`, - ...headers, - }, + headers, ...otherOptions, }) diff --git a/studio/lib/common/fetch/get.ts b/studio/lib/common/fetch/get.ts index e1c2c954578..50d389e23d1 100644 --- a/studio/lib/common/fetch/get.ts +++ b/studio/lib/common/fetch/get.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' +import { handleError, handleResponse, handleResponseError, constructHeaders } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -8,19 +8,13 @@ export async function get( ): Promise> { const requestId = uuidv4() try { - const { headers, ...otherOptions } = options ?? {} - const accessToken = getAccessToken() + const { headers: optionHeaders, ...otherOptions } = options ?? {} + const headers = constructHeaders(requestId, optionHeaders) const response = await fetch(url, { method: 'GET', credentials: 'include', referrerPolicy: 'no-referrer-when-downgrade', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - 'X-Request-Id': requestId, - 'Authorization': `Bearer ${accessToken}`, - ...headers, - }, + headers, ...otherOptions, }) if (!response.ok) return handleResponseError(response, requestId) diff --git a/studio/lib/common/fetch/patch.ts b/studio/lib/common/fetch/patch.ts index 5c5ca12adf4..6a6be18d24a 100644 --- a/studio/lib/common/fetch/patch.ts +++ b/studio/lib/common/fetch/patch.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' +import { constructHeaders, handleError, handleResponse, handleResponseError } from './base' import { uuidv4 } from '../../helpers' import { SupaResponse } from 'types/base' @@ -9,20 +9,14 @@ export async function patch( ): Promise> { const requestId = uuidv4() try { - const { headers, ...otherOptions } = options ?? {} - const accessToken = getAccessToken() + const { headers: optionHeaders, ...otherOptions } = options ?? {} + const headers = constructHeaders(requestId, optionHeaders) const response = await fetch(url, { method: 'PATCH', body: JSON.stringify(data), credentials: 'include', referrerPolicy: 'no-referrer-when-downgrade', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - 'X-Request-Id': requestId, - 'Authorization': `Bearer ${accessToken}`, - ...headers, - }, + headers, ...otherOptions, }) diff --git a/studio/lib/common/fetch/post.ts b/studio/lib/common/fetch/post.ts index 890641c92d6..69c12dd0204 100644 --- a/studio/lib/common/fetch/post.ts +++ b/studio/lib/common/fetch/post.ts @@ -1,4 +1,4 @@ -import { handleError, handleResponse, handleResponseError, getAccessToken } from './base' +import { handleError, handleResponse, handleResponseError, constructHeaders } from './base' import { uuidv4 } from 'lib/helpers' import { SupaResponse } from 'types/base' @@ -9,20 +9,14 @@ export async function post( ): Promise> { const requestId = uuidv4() try { - const { headers, ...otherOptions } = options ?? {} - const accessToken = getAccessToken() + const { headers: optionHeaders, ...otherOptions } = options ?? {} + const headers = constructHeaders(requestId, optionHeaders) const response = await fetch(url, { method: 'POST', body: JSON.stringify(data), credentials: 'include', referrerPolicy: 'no-referrer-when-downgrade', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json', - 'X-Request-Id': requestId, - 'Authorization': `Bearer ${accessToken}`, - ...headers, - }, + headers, ...otherOptions, }) if (!response.ok) return handleResponseError(response, requestId) From 76e1254a91cd5c6b1eb80d3faf19cfd6a3735a95 Mon Sep 17 00:00:00 2001 From: 0xflotus <0xflotus@gmail.com> Date: Wed, 8 Dec 2021 17:19:20 +0100 Subject: [PATCH 044/166] chore: change case in initial db script for convenience reasons --- docker/volumes/db/init/00-initial-schema.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/volumes/db/init/00-initial-schema.sql b/docker/volumes/db/init/00-initial-schema.sql index 81a2ed4fc40..474b866773a 100644 --- a/docker/volumes/db/init/00-initial-schema.sql +++ b/docker/volumes/db/init/00-initial-schema.sql @@ -8,7 +8,7 @@ create user supabase_admin; alter user supabase_admin with superuser createdb createrole replication bypassrls; -- Extension namespacing -create SCHEMA IF NOT exists extensions; +create schema if not exists extensions; create extension if not exists "uuid-ossp" with schema extensions; create extension if not exists pgcrypto with schema extensions; create extension if not exists pgjwt with schema extensions; From db7b55d6654c6992990954675b5cbdf9ea22cc6c Mon Sep 17 00:00:00 2001 From: TzeYiing Date: Tue, 7 Dec 2021 03:05:47 +0800 Subject: [PATCH 045/166] Uncomments and adds log links to sidebar nav for settings. --- .../SettingsLayout/SettingsMenu.utils.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts index d20a1f7ca45..047fd38ce6a 100644 --- a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts +++ b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts @@ -1,14 +1,14 @@ import { ProductMenuGroup } from 'components/ui/ProductMenu/ProductMenu.types' -// import { LOG_TYPE_LABEL_MAPPING } from "lib/constants" +import { LOG_TYPE_LABEL_MAPPING } from "lib/constants" export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { - // const logItems = ['rest', 'realtime', 'auth', 'storage', 'database'].map((type: string) => { - // return { - // name: LOG_TYPE_LABEL_MAPPING[type], - // key: `logs-${type}`, - // url: `/project/${ref}/settings/logs/${type}`, - // items: [] - // } - // }) + const logItems = ['rest', 'realtime', 'auth', 'storage', 'database'].map((type: string) => { + return { + name: LOG_TYPE_LABEL_MAPPING[type], + key: `logs-${type}`, + url: `/project/${ref}/settings/logs/${type}`, + items: [] + } + }) return [ { @@ -26,9 +26,9 @@ export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { }, ], }, - // { - // title: 'Logs', - // items: logItems, - // }, + { + title: 'Logs', + items: logItems, + }, ] } From 0994d1cee960807ce0d1c17fdb744e5064328da7 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 8 Dec 2021 10:59:04 +0700 Subject: [PATCH 046/166] Small fixes --- .../layouts/SettingsLayout/SettingsLayout.tsx | 10 +- .../SettingsLayout/SettingsMenu.utils.ts | 21 +- studio/lib/constants.tsx | 811 ------------------ studio/lib/constants/index.ts | 8 + .../project/[ref]/settings/logs/[type].tsx | 40 +- 5 files changed, 52 insertions(+), 838 deletions(-) delete mode 100644 studio/lib/constants.tsx diff --git a/studio/components/layouts/SettingsLayout/SettingsLayout.tsx b/studio/components/layouts/SettingsLayout/SettingsLayout.tsx index cb18b1b291e..53a78a920a6 100644 --- a/studio/components/layouts/SettingsLayout/SettingsLayout.tsx +++ b/studio/components/layouts/SettingsLayout/SettingsLayout.tsx @@ -1,4 +1,5 @@ import { FC, ReactNode } from 'react' +import { isUndefined } from 'lodash' import { observer } from 'mobx-react-lite' import { useStore } from 'hooks' @@ -13,20 +14,23 @@ interface Props { children: ReactNode } -const SettingsLayout: FC = ({ title, className = "", children }) => { +const SettingsLayout: FC = ({ title, className = '', children }) => { const { ui } = useStore() const projectRef = ui.selectedProject?.ref ?? 'default' const router = useRouter() const page = router.pathname.split('/')[4] + const logType = router.query.type + + const pageKey = !isUndefined(logType) ? `logs-${logType}` : page return ( } + productMenu={} > -
+
{children}
diff --git a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts index 047fd38ce6a..768b787ab42 100644 --- a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts +++ b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts @@ -1,15 +1,7 @@ import { ProductMenuGroup } from 'components/ui/ProductMenu/ProductMenu.types' -import { LOG_TYPE_LABEL_MAPPING } from "lib/constants" -export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { - const logItems = ['rest', 'realtime', 'auth', 'storage', 'database'].map((type: string) => { - return { - name: LOG_TYPE_LABEL_MAPPING[type], - key: `logs-${type}`, - url: `/project/${ref}/settings/logs/${type}`, - items: [] - } - }) +import { LOG_TYPE_LABEL_MAPPING } from 'lib/constants' +export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { return [ { title: 'Project settings', @@ -28,7 +20,14 @@ export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { }, { title: 'Logs', - items: logItems, + items: ['rest', 'realtime', 'auth', 'storage', 'database'].map((type: string) => { + return { + name: LOG_TYPE_LABEL_MAPPING[type], + key: `logs-${type}`, + url: `/project/${ref}/settings/logs/${type}`, + items: [], + } + }), }, ] } diff --git a/studio/lib/constants.tsx b/studio/lib/constants.tsx deleted file mode 100644 index 773ba9a9f21..00000000000 --- a/studio/lib/constants.tsx +++ /dev/null @@ -1,811 +0,0 @@ -// @ts-nocheck -import { IconArchive, IconDatabase, IconHeart, IconKey } from '@supabase/ui' -import { concat, sortBy } from 'lodash' - -// Ideally we'd split this into smaller, more scoped and easily readable files -// And shift them under common/constants/xxx.ts - -export const IS_PLATFORM = process.env.NEXT_PUBLIC_IS_PLATFORM === 'true' -export const API_URL = IS_PLATFORM ? process.env.NEXT_PUBLIC_API_URL : '/api' -export const PG_META_URL = IS_PLATFORM - ? process.env.PLATFORM_PG_META_URL - : process.env.STUDIO_PG_META_URL - -export const POSTGRES_SUPER_ADMIN = 'supabase_admin' -export const POSTGRES_AUTH_ADMIN = 'supabase_auth_admin' -export const POSTGRES_STORAGE_ADMIN = 'supabase_storage_admin' -export const POSTGRES_POSTGREST = 'authenticator' -export const POSTGRES_PGBOUNCER = 'pgbouncer' - -export const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ' - -export const QUEUES = { - // All infra tasks - INFRA: { - id: 'infra', - tasks: { - CREATE: 'create', // initialises a new server - DELETE: 'delete', // destroys a server - UPDATE: 'update', // updates the server's config - REPLACE: 'replace', // replace the server - }, - }, - DB: { - id: 'database', - tasks: { - CREATE: 'create', // initialises a new server - DELETE: 'delete', // destroys a server - UPDATE: 'update', // updates the server's config - RESTORE: 'restore', // restore a db with a given backup file - }, - }, - DUMP: { - id: 'dump', - tasks: { - BULK_PREPARE: 'bulk_prepare', - DUMP: 'dump', - PREPARE: 'prepare', - }, - }, - RESTORE: { - id: 'restore', - tasks: { - PREPARE: 'prepare', - RESTORE: 'restore', - }, - }, - EVENTS: { - id: 'events', - tasks: { - organization_created: 'organization.created', - organization_updated: 'organization.updated', - organization_deleted: 'organization.deleted', - project_created: 'project.created', - project_updated: 'project.updated', - project_deleted: 'project.deleted', - }, - }, -} - -// alias regions remain as the starting point for project creation -// they are immediately translated to their respective cloud regions -// and are afterward never referred to -export const REGIONS = { - WEST_US: 'West US (North California)', - EAST_US: 'East US (North Virginia)', - CENTRAL_CANADA: 'Canada (Central)', - WEST_EU: 'West EU (Ireland)', - WEST_EU_2: 'West EU (London)', - // 'North EU': 'North EU', - CENTRAL_EU: 'Central EU (Frankfurt)', - SOUTH_ASIA: 'South Asia (Mumbai)', - SOUTHEAST_ASIA: 'Southeast Asia (Singapore)', - NORTHEAST_ASIA: 'Northeast Asia (Tokyo)', - NORTHEAST_ASIA_2: 'Northeast Asia (Seoul)', - OCEANIA: 'Oceania (Sydney)', - SOUTH_AMERICA: 'South America (São Paulo)', - // SOUTH_AFRICA: 'South Africa (Cape Town)', -} - -export const REGIONS_DEFAULT = REGIONS.EAST_US - -export const PROVIDERS = { - // Digital Ocean - DO: { - id: 'DO', - name: 'digitalocean', - DEFAULT_SSH_KEY: '26347828', - regions: { - EAST_US: 'nyc1', // New York City, United States - // 'North EU': 'ams3', //Amsterdam, the Netherlands - WEST_US: 'sfo2', // San Francisco, United States - SOUTHEAST_ASIA: 'sgp1', // Singapore - WEST_US: 'lon1', // London - CENTRAL_EU: 'fra1', // Frankfurt - CENTRAL_CANADA: 'tor1', // Toronto - SOUTH_ASIA: 'blr1', // Bangalore - }, - sizes: { - 512: '512mb', // Don't use - https://developers.digitalocean.com/documentation/changelog/api-v2/new-size-slugs-for-droplet-plan-changes/ - 's-1vcpu-1gb': { - id: 's-1vcpu-1gb', - description: '', - }, - }, - }, - AWS: { - id: 'AWS', - name: 'aws', - DEFAULT_SSH_KEY: 'supabase-app-instance', - regions: { - EAST_US: 'us-east-1', // North Virginia - // 'North EU': 'eu-north-1', // Stockholm - WEST_US: 'us-west-1', // North California - SOUTHEAST_ASIA: 'ap-southeast-1', // Singapore - NORTHEAST_ASIA: 'ap-northeast-1', // Tokyo - NORTHEAST_ASIA_2: 'ap-northeast-2', //Seoul - OCEANIA: 'ap-southeast-2', // Sydney - WEST_EU: 'eu-west-1', // Ireland - WEST_EU_2: 'eu-west-2', // London - CENTRAL_EU: 'eu-central-1', // Frankfurt - CENTRAL_CANADA: 'ca-central-1', // Central Canada - SOUTH_ASIA: 'ap-south-1', // Mumbai - SOUTH_AMERICA: 'sa-east-1', // Sao Paulo - // SOUTH_AFRICA: 'af-south-1', // Cape Town - }, - sizes: { - nano: { - x86_64: 't3.nano', - arm64: 't4g.nano', - description: '512mb RAM', - }, - micro: { - x86_64: 't3.micro', - arm64: 't4g.micro', - description: '1gb RAM', - }, - medium: { - x86_64: 'm5a.large', - arm64: 'm6g.medium', - description: '4gb RAM', - }, - }, - }, -} - -// @todo ini update for prod -export const AWS_SUPPORTED_AZ = { - EAST_US: ['us-east-1a', 'us-east-1b', 'us-east-1c', 'us-east-1d', 'us-east-1e', 'us-east-1f'], - SOUTHEAST_ASIA: ['ap-southeast-1a', 'ap-southeast-1b', 'ap-southeast-1c'], - WEST_EU: ['eu-west-1a', 'eu-west-1b', 'eu-west-1c'], -} - -export const SERVICE_STATUS = { - INACTIVE: 'INACTIVE', - ACTIVE_HEALTHY: 'ACTIVE_HEALTHY', - ACTIVE_UNHEALTHY: 'ACTIVE_UNHEALTHY', - COMING_UP: 'COMING_UP', - UNKNOWN: 'UNKNOWN', - GOING_DOWN: 'GOING_DOWN', - INIT_FAILED: 'INIT_FAILED', - REMOVED: 'REMOVED', -} - -export const PROJECT_STATUS = { - INACTIVE: 'INACTIVE', - ACTIVE_HEALTHY: 'ACTIVE_HEALTHY', - ACTIVE_UNHEALTHY: 'ACTIVE_UNHEALTHY', - COMING_UP: 'COMING_UP', - UNKNOWN: 'UNKNOWN', - GOING_DOWN: 'GOING_DOWN', - INIT_FAILED: 'INIT_FAILED', - REMOVED: 'REMOVED', - RESTORING: 'RESTORING', -} - -// Not used anywhere but referenced in a comment in interfaces.js (L12) -export const APPS = { - AUTO_API: { - id: 'AUTO_API', - name: 'Auto API', - }, -} - -export const SIDE_PANEL_KEYS = { - ROW: 'ROW', - TABLE: 'TABLE', - COLUMN: 'COLUMN', -} - -export const FILTER_CONDITIONS = { - EQ: { - name: 'EQ', - tooltip: 'Equals to', - }, - NEQ: { - name: 'NEQ', - tooltip: 'Not equals to', - }, - GT: { - name: 'GT', - tooltip: 'Greater than', - }, - LT: { - name: 'LT', - tooltip: 'Less than', - }, - GTE: { - name: 'GTE', - tooltip: 'Greater than or equals to', - }, - LTE: { - name: 'LTE', - tooltip: 'Less than or equals to', - }, - LIKE: { - name: 'LIKE', - tooltip: 'Pattern matching with %', - }, - ILIKE: { - name: 'ILIKE', - tooltip: 'Case sensitive matching', - }, - IS: { - name: 'IS', - tooltip: 'Checks for exact quality', - }, - IN: { - name: 'IN', - tooltip: 'Checks if value in list', - }, -} - -// Data types primarily for mapping icon in editor - -export const NUMERICAL_TYPES = ['int2', 'int4', 'int8', 'float4', 'float8'] -export const JSON_TYPES = ['json', 'jsonb'] -export const TEXT_TYPES = ['text', 'varchar'] -export const TIMESTAMP_TYPES = ['date', 'time', 'timestamp', 'timetz', 'timestamptz'] -export const OTHER_DATA_TYPES = ['uuid', 'bool'] -export const POSTGRES_DATA_TYPES = sortBy( - concat(NUMERICAL_TYPES, JSON_TYPES, TEXT_TYPES, TIMESTAMP_TYPES, OTHER_DATA_TYPES) -) - -// Keyboard Shortcuts Related -export const SHORTCUT_KEYS = { - VIEW_ALL_SHORTCUTS: 'VIEW_ALL_SHORTCUTS', - TOGGLE_FILTER_MENU: 'TOGGLE_FILTER_MENU', - TOGGLE_SORT_MENU: 'TOGGLE_SORT_MENU', - CLOSE_SIDE_PANEL: 'CLOSE_SIDE_PANEL', - EDIT_CELL: 'EDIT_CELL', - COPY_CELL: 'COPY_CELL', - PASTE_CELL: 'PASTE_CELL', - CREATE_ROW: 'CREATE_ROW', - EDIT_ROW: 'EDIT_ROW', - DELETE_ROW: 'DELETE_ROW', - SCROLL_EDGES: 'SCROLL_EDGES', -} - -export const GENERAL_SHORTCUTS = [ - { - key: SHORTCUT_KEYS.VIEW_ALL_SHORTCUTS, - name: 'View all shortcuts', - keys: ['Shift+/'], - }, - { - key: SHORTCUT_KEYS.CLOSE_SIDE_PANEL, - name: 'Close side panel', - keys: ['Esc'], - }, -] - -export const generateEditorShortcuts = (clientOS) => { - let metaKey = '⌘' - if (clientOS === 'windows') metaKey = 'Ctrl' - return [ - { - key: SHORTCUT_KEYS.EDIT_CELL, - name: 'Edit current cell', - keys: ['Enter'], - }, - { - key: SHORTCUT_KEYS.COPY_CELL, - name: 'Copy value of current cell', - keys: [`${metaKey}+C`], - }, - { - key: SHORTCUT_KEYS.PASTE_CELL, - name: 'Paste value into current cell', - keys: [`${metaKey}+V`], - }, - { - key: SHORTCUT_KEYS.CREATE_ROW, - name: 'Create a new row', - keys: ['Shift+Enter'], - }, - { - key: SHORTCUT_KEYS.SCROLL_EDGES, - name: 'Scroll to edges of the table', - keys: [`${metaKey}+↑`, `${metaKey}+→`, `${metaKey}+↓`, `${metaKey}+←`], - }, - ] -} - -export const EDITOR_STATUS = { - SAVING: 'SAVING', - READY: 'READY', -} - -export const POLICY_MODAL_VIEWS = { - SELECTION: 'SELECTION', - TEMPLATES: 'TEMPLATES', - EDITOR: 'EDITOR', - REVIEW: 'REVIEW', -} - -export const STRIPE_PRODUCT_IDS = { - PAYG: process?.env?.NEXT_PUBLIC_STRIPE_PAYG_TIER_ID, - PRO: process?.env?.NEXT_PUBLIC_STRIPE_PRO_TIER_ID, - FREE: process?.env?.NEXT_PUBLIC_STRIPE_FREE_TIER_ID, -} - -export const TIER_NAMES = { - PAYG: 'Pay as you go', - PRO: 'Pro', - FREE: 'Free', -} - -export const DEFAULT_PRODUCTS = [ - { - // Free tier - price: process?.env?.NEXT_PUBLIC_STRIPE_PRODUCT_FREE_TIER_PRICE_FREE, - }, -] - -export const PGBOUNCER_CONFIG = { - pool_mode: 'transaction', - default_pool_size: 15, - ignore_startup_parameters: 'extra_float_digits', -} - -export const DEFAULT_ORG_PROJECTS_LIMIT = 3 -export const DEFAULT_MINIMUM_PASSWORD_STRENGTH = 4 - -const METRIC_CATEGORIES_ICON_SIZE = 16 - -export const METRIC_CATEGORIES = { - // API: { - // label: 'All API usage', - // icon: , - // key: 'api', - // }, - API_DATABASE: { - label: 'Database API', - icon: , -key: 'api_database', - }, -API_AUTH: { - label: 'Auth API', - icon: , - key: 'api_auth', - }, -API_STORAGE: { - label: 'Storage API', - icon: , - key: 'api_storage', - }, -// API_REALTIME: { -// label: 'Realtime API', -// icon: '', -// key: 'api_realtime', -// }, -INSTANCE: { - label: 'Instance health', - icon: , - key: 'instance', - }, - // POSTGRES: { - // label: 'Postgres usage', - // icon: '', - // key: 'postgres', - // }, -} - -export const METRICS = [ - { - key: 'cpu_usage', - label: 'CPU % usage', - provider: 'infra-monitoring', - category: METRIC_CATEGORIES.INSTANCE, - }, - { - key: 'ram_usage', - label: 'Memory % usage', - provider: 'infra-monitoring', - category: METRIC_CATEGORIES.INSTANCE, - }, - { - key: 'total_realtime_egress', - label: 'Realtime Connection Egress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - { - key: 'total_realtime_get_requests', - label: 'Realtime Connection Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_REALTIME, - }, - { - key: 'total_realtime_ingress', - label: 'Realtime Connection Ingress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_REALTIME, - }, - // { - // key: 'total_realtime_post_requests', - // label: 'total_realtime_post_requests', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API_REALTIME, - // }, - { - key: 'total_realtime_requests', - label: 'Connection Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_REALTIME, - }, - - /** - * API - */ - { - key: 'total_rest_ingress', - label: 'API Ingress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_egress', - label: 'API Egress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_requests', - label: 'API Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_get_requests', - label: 'API GET Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_post_requests', - label: 'API POST Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_patch_requests', - label: 'API PATCH Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_delete_requests', - label: 'API DELETE Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - { - key: 'total_rest_options_requests', - label: 'API OPTIONS Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_DATABASE, - }, - - /** - * Auth - */ - - // { - // key: 'total_auth_users', - // label: 'Total Auth Users', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API_AUTH, - // }, - { - key: 'total_auth_ingress', - label: 'Auth Ingress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_egress', - label: 'Auth Egress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_requests', - label: 'Auth Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_get_requests', - label: 'Auth GET Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_post_requests', - label: 'Auth POST Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_patch_requests', - label: 'Auth PATCH requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - { - key: 'total_auth_options_requests', - label: 'Auth OPTIONS requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - - /** - * Storage - */ - { - key: 'total_storage_ingress', - label: 'Storage Ingress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_egress', - label: 'Storage Egress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_requests', - label: 'Storage Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_get_requests', - label: 'Storage GET Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_post_requests', - label: 'Storage POST Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_delete_requests', - label: 'Storage DELETE Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_storage_options_requests', - label: 'Storage OPTIONS Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_auth_delete_requests', - label: 'Auth DELETE Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_AUTH, - }, - - { - key: 'total_egress', - label: 'All Egress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - // { - // key: 'total_auth_emails', - // name: 'total_auth_emails', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API, - // }, - // { - // key: 'total_auth_texts', - // name: 'total_auth_texts', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API, - // }, - - { - key: 'total_get_requests', - label: 'All GET Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - // { - // key: 'total_db_size_bytes', - // name: 'total_db_size_bytes', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API, - // }, - // { - // key: 'total_storage_size_bytes', - // name: 'total_storage_size_bytes', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API, - // }, - // { - // key: 'total_realtime_delete_requests', - // label: 'total_realtime_delete_requests', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API_REALTIME, - // }, - { - key: 'total_storage_patch_requests', - label: 'Storage PATCH Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API_STORAGE, - }, - { - key: 'total_requests', - label: 'All Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - // { - // key: 'total_realtime_options_requests', - // label: 'total_realtime_options_requests', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API_REALTIME, - // }, - - { - key: 'total_patch_requests', - label: 'All PATCH Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - { - key: 'total_post_requests', - label: 'All POST Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - - { - key: 'total_ingress', - label: 'All Ingress', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - // { - // key: 'total_realtime_patch_requests', - // label: 'total_realtime_patch_requests', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API_REALTIME, - // }, - { - key: 'total_delete_requests', - label: 'All DELETE Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - { - key: 'total_options_requests', - label: 'All OPTIONS Requests', - provider: 'daily-stats', - category: METRIC_CATEGORIES.API, - }, - // { - // key: 'total_db_egress_bytes', - // name: 'total_db_egress_bytes', - // provider: 'daily-stats', - // category: METRIC_CATEGORIES.API, - // }, -] - -export const TIME_PERIODS_BILLING = [ - { - key: 'currentBillingCycle', - label: 'Current billing cycle', - interval: '1d', - }, - { - key: 'previousBillingCycle', - label: 'Previous billing cycle', - interval: '1d', - }, -] - -export const TIME_PERIODS_REPORTS = [ - { - key: '7d', - label: 'Last 7 days', - interval: '1d', - }, - { - key: '30d', - label: 'Last 30 days', - interval: '1d', - }, - // { - // key: '60d', - // label: 'Last 60 days', - // interval: '1d', - // }, - // { - // key: '120d', - // label: 'Last 120 days', - // interval: '1d', - // }, - { - key: 'startMonth', - label: 'This month', - interval: '1d', - }, -] - -export const TIME_PERIODS_INFRA = [ - { - key: '1h', - label: 'Last hour', - interval: '1m', - }, - { - key: '3h', - label: 'Last 3 hours', - interval: '5m', - }, - { - key: '1d', - label: 'Last 24 hours', - interval: '30m', - }, -] - -export const NEW_REPORT_SKELETON = { - name: 'new report', - description: '', - type: 'report', - visibility: 'project', - content: { - schema_version: 1, - period_start: { - time_period: '7d', - date: '', - }, - period_end: { - time_period: 'today', - date: '', - }, - interval: '1d', - layout: [], - }, -} - -export const PASSWORD_STRENGTH = { - 0: 'This password is not acceptable.', - 1: 'This password is not secure enough.', - 2: 'This password is not secure enough.', - 3: 'Not bad, but your password must be harder to guess.', - 4: 'This password is strong.', -} - -export const PASSWORD_STRENGTH_COLOR = { - 0: 'bg-red-500', - 1: 'bg-red-400', - 2: 'bg-yellow-500', - 3: 'bg-yellow-500', - 4: 'bg-green-500', -} - -export const PASSWORD_STRENGTH_PERCENTAGE = { - 0: '10%', - 1: '30%', - 2: '50%', - 3: '80%', - 4: '100%', -} - -export const LOG_TYPE_LABEL_MAPPING: { [k: string]: string } = { - rest: 'Edge - PostgREST', - realtime: 'Edge - Realtime', - auth: 'Edge - Auth', - storage: 'Edge - Storage', - database: 'Database', -} \ No newline at end of file diff --git a/studio/lib/constants/index.ts b/studio/lib/constants/index.ts index 2a2742886ae..fade7083e76 100644 --- a/studio/lib/constants/index.ts +++ b/studio/lib/constants/index.ts @@ -87,3 +87,11 @@ export const POLICY_MODAL_VIEWS = { EDITOR: 'EDITOR', REVIEW: 'REVIEW', } + +export const LOG_TYPE_LABEL_MAPPING: { [k: string]: string } = { + rest: 'Edge - PostgREST', + realtime: 'Edge - Realtime', + auth: 'Edge - Auth', + storage: 'Edge - Storage', + database: 'Database', +} diff --git a/studio/pages/project/[ref]/settings/logs/[type].tsx b/studio/pages/project/[ref]/settings/logs/[type].tsx index 8939851d4f1..77291c44a15 100644 --- a/studio/pages/project/[ref]/settings/logs/[type].tsx +++ b/studio/pages/project/[ref]/settings/logs/[type].tsx @@ -62,7 +62,7 @@ export const LogPage = () => { const { data: countData } = useSWR<{ data: [CountData] | []; error?: any }>(countKey, get, { refreshInterval: 5000, }) - const newCount = countData?.data?.[0]?.count + const newCount = countData?.data?.[0]?.count ?? 0 const { data: logData, error } = data || {} const handleRefresh = () => { @@ -80,23 +80,32 @@ export const LogPage = () => { return ( { setWhere('') setSearch('') setMode('simple') // this is necessary to reset the value of the monaco editor }} templates={[ - { label: "Recent Errors", onClick: () => setSearch('[Ee]rror|\\s[45][0-9][0-9]\\s') }, - { label: "POST or PATCH", onClick: () => { - setSearch('') - setMode('custom') - setWhere("REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH') ") - } }, + { label: 'Recent Errors', onClick: () => setSearch('[Ee]rror|\\s[45][0-9][0-9]\\s') }, + { + label: 'POST or PATCH', + onClick: () => { + setSearch('') + setMode('custom') + setWhere( + "REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH') " + ) + }, + }, ]} searchValue={search} - onCustomClick={handleModeToggle} isLoading={isLoading} onRefresh={handleRefresh} onSearch={setSearch} /> - {mode === 'custom' && + onCustomClick={handleModeToggle} + isLoading={isLoading} + onRefresh={handleRefresh} + onSearch={setSearch} + /> + {mode === 'custom' && (
{ onInputChange={(v) => setWhere(v || '')} onInputRun={handleRefresh} /> -
} +
+ )} {error && ( Could not fetch data )} - {newCount && } + {newCount > 0 && } ) } -const LoadNewLogsButton = (props: ButtonProps) => +const LoadNewLogsButton = (props: ButtonProps) => ( + +) export default withAuth(observer(LogPage)) From f81cfe08c33bcf83a47ffc3f67726e8089df113c Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 8 Dec 2021 19:53:56 +0700 Subject: [PATCH 047/166] Update logs page UI --- .../interfaces/Settings/Logs/LogPanel.tsx | 104 ++++++++++ .../interfaces/Settings/Logs/LogSelection.tsx | 63 ++++++ .../interfaces/Settings/Logs/LogTable.tsx | 90 +++++++++ .../Settings/Logs/Logs.constants.ts | 11 + .../interfaces/Settings/Logs/Logs.types.ts | 16 ++ .../interfaces/Settings/Logs/index.ts | 6 + .../layouts/SettingsLayout/SettingsLayout.tsx | 5 +- .../SettingsLayout/SettingsMenu.utils.ts | 2 +- studio/components/to-be-cleaned/Panel.tsx | 2 +- .../components/ui/CodeEditor/CodeEditor.tsx | 17 +- studio/components/ui/Logs/LogPanel.tsx | 75 ------- studio/components/ui/Logs/LogSelection.tsx | 32 --- studio/components/ui/Logs/LogTable.tsx | 79 -------- studio/lib/constants/index.ts | 8 +- .../project/[ref]/settings/logs/[type].tsx | 188 ++++++++++-------- 15 files changed, 407 insertions(+), 291 deletions(-) create mode 100644 studio/components/interfaces/Settings/Logs/LogPanel.tsx create mode 100644 studio/components/interfaces/Settings/Logs/LogSelection.tsx create mode 100644 studio/components/interfaces/Settings/Logs/LogTable.tsx create mode 100644 studio/components/interfaces/Settings/Logs/Logs.constants.ts create mode 100644 studio/components/interfaces/Settings/Logs/Logs.types.ts create mode 100644 studio/components/interfaces/Settings/Logs/index.ts delete mode 100644 studio/components/ui/Logs/LogPanel.tsx delete mode 100644 studio/components/ui/Logs/LogSelection.tsx delete mode 100644 studio/components/ui/Logs/LogTable.tsx diff --git a/studio/components/interfaces/Settings/Logs/LogPanel.tsx b/studio/components/interfaces/Settings/Logs/LogPanel.tsx new file mode 100644 index 00000000000..7e9b0637728 --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/LogPanel.tsx @@ -0,0 +1,104 @@ +import { FC } from 'react' +import { + Button, + Input, + Dropdown, + Typography, + IconChevronDown, + IconRefreshCw, + IconX, + Toggle, +} from '@supabase/ui' +import { LogTemplate } from '.' + +interface Props { + searchValue?: string + templates?: any + isLoading: boolean + isCustomQuery: boolean + hasNewData: boolean + showReset: boolean + onReset: () => void + onRefresh?: () => void + onSearch?: (query: string) => void + onCustomClick?: () => void + onSelectTemplate: (template: LogTemplate) => void +} + +/** + * Logs control panel header + wrapper + */ +const LogPanel: FC = ({ + searchValue, + templates = [], + isLoading, + isCustomQuery, + hasNewData, + showReset, + onReset, + onRefresh, + onSearch = () => {}, + onCustomClick, + onSelectTemplate, +}) => { + return ( +
+
+
+
+ } + loading={isLoading} + onClick={onRefresh} + > + Refresh + + ( + onSelectTemplate(template)}> + {template.label} + + ))} + > + + + +
+ + Search via query + + +
+
+
+ onSearch(e.target.value)} + value={searchValue} + actions={ + showReset && + } + /> +
+
+
+ ) +} + +export default LogPanel diff --git a/studio/components/interfaces/Settings/Logs/LogSelection.tsx b/studio/components/interfaces/Settings/Logs/LogSelection.tsx new file mode 100644 index 00000000000..49f119f46dd --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/LogSelection.tsx @@ -0,0 +1,63 @@ +import dayjs from 'dayjs' +import { FC } from 'react' +import { Input, Typography, IconX } from '@supabase/ui' + +import { LogData } from './Logs.types' + +interface Props { + log: LogData + onClose: () => void +} + +/** + * Log selection display + */ +const LogSelection: FC = ({ log, onClose }) => { + return ( +
+
+
+
+ {dayjs(log.timestamp / 1000).toString()} +
+ +
+
+
+
+
+
+
+ Event message + + {log.event_message}{' '} + +
+
+ Metadata + +
+
+
+
+ ) +} + +export default LogSelection diff --git a/studio/components/interfaces/Settings/Logs/LogTable.tsx b/studio/components/interfaces/Settings/Logs/LogTable.tsx new file mode 100644 index 00000000000..fb02efb0c98 --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/LogTable.tsx @@ -0,0 +1,90 @@ +import dayjs from 'dayjs' +import { useEffect, useState } from 'react' +import { Typography } from '@supabase/ui' +import DataGrid from '@supabase/react-data-grid' + +import LogSelection from './LogSelection' +import { LogData } from './Logs.types' + +interface Props { + isCustomQuery: boolean + data?: LogData[] +} + +/** + * Logs table view with focus side panel + */ +const LogTable = ({ isCustomQuery, data }: Props) => { + const [focusedLog, setFocusedLog] = useState(null) + const columns = ['timestamp', 'event_message'].map((v) => ({ + key: v, + name: v, + width: v === 'timestamp' ? 210 : undefined, + resizable: true, + headerRenderer: () => { + return
{v}
+ }, + formatter: ({ row }: any) => { + let value = row[v] + if (v === 'timestamp') { + value = dayjs(Number(row['timestamp']) / 1000).toISOString() + } + return ( +

+ {value} +

+ ) + }, + })) + + const logMap = (data || []).reduce((acc: any, d) => { + acc[d.id] = d + return acc + }, {}) + + useEffect(() => { + if (!data) return + if (focusedLog && !(focusedLog.id in logMap)) { + setFocusedLog(null) + } + }, [Object.keys(logMap)]) + + if (!data) return null + + // [Joshen] Hmm quite hacky now, but will do + const maxHeight = isCustomQuery ? 'calc(100vh - 42px - 10rem)' : 'calc(100vh - 42px - 3rem)' + + return ( +
+ setFocusedLog(data[rowIdx])} + noRowsFallback={ +
+ + No data returned from query + +
+ } + columns={columns as any} + rowClass={(r) => `${r.id === focusedLog?.id ? 'bg-green-800' : 'cursor-pointer'}`} + rows={data} + rowKeyGetter={(r) => r.id} + onRowClick={(r) => setFocusedLog(logMap[r.id])} + /> + {focusedLog && ( +
+ setFocusedLog(null)} log={focusedLog} /> +
+ )} +
+ ) +} +export default LogTable diff --git a/studio/components/interfaces/Settings/Logs/Logs.constants.ts b/studio/components/interfaces/Settings/Logs/Logs.constants.ts new file mode 100644 index 00000000000..c81dd48fff1 --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/Logs.constants.ts @@ -0,0 +1,11 @@ +import { LogTemplate } from '.' + +export const TEMPLATES: LogTemplate[] = [ + { label: 'Recent Errors', mode: 'simple', searchString: '[Ee]rror|\\s[45][0-9][0-9]\\s' }, + { + label: 'POST or PATCH', + mode: 'custom', + searchString: + "REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH') ", + }, +] diff --git a/studio/components/interfaces/Settings/Logs/Logs.types.ts b/studio/components/interfaces/Settings/Logs/Logs.types.ts new file mode 100644 index 00000000000..ba9021d0bfb --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/Logs.types.ts @@ -0,0 +1,16 @@ +interface Metadata { + [key: string]: string | number | Object | Object[] +} + +export interface LogData { + id: string + timestamp: number + event_message: string + metadata: Metadata +} + +export interface LogTemplate { + label: string + mode: 'custom' | 'simple' + searchString: string +} diff --git a/studio/components/interfaces/Settings/Logs/index.ts b/studio/components/interfaces/Settings/Logs/index.ts new file mode 100644 index 00000000000..1f094158c52 --- /dev/null +++ b/studio/components/interfaces/Settings/Logs/index.ts @@ -0,0 +1,6 @@ +import LogPanel from './LogPanel' +import LogTable from './LogTable' + +export * from './Logs.types' +export * from './Logs.constants' +export { LogPanel, LogTable } diff --git a/studio/components/layouts/SettingsLayout/SettingsLayout.tsx b/studio/components/layouts/SettingsLayout/SettingsLayout.tsx index 53a78a920a6..bab5d9ef241 100644 --- a/studio/components/layouts/SettingsLayout/SettingsLayout.tsx +++ b/studio/components/layouts/SettingsLayout/SettingsLayout.tsx @@ -10,11 +10,10 @@ import { useRouter } from 'next/router' interface Props { title?: string - className?: string children: ReactNode } -const SettingsLayout: FC = ({ title, className = '', children }) => { +const SettingsLayout: FC = ({ title, children }) => { const { ui } = useStore() const projectRef = ui.selectedProject?.ref ?? 'default' @@ -30,7 +29,7 @@ const SettingsLayout: FC = ({ title, className = '', children }) => { product="Settings" productMenu={} > -
+
{children}
diff --git a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts index 768b787ab42..2dd092f8010 100644 --- a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts +++ b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts @@ -20,7 +20,7 @@ export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { }, { title: 'Logs', - items: ['rest', 'realtime', 'auth', 'storage', 'database'].map((type: string) => { + items: ['database', 'auth', 'realtime', 'rest', 'storage'].map((type: string) => { return { name: LOG_TYPE_LABEL_MAPPING[type], key: `logs-${type}`, diff --git a/studio/components/to-be-cleaned/Panel.tsx b/studio/components/to-be-cleaned/Panel.tsx index fc4d6fd3da9..ba6f1f802a0 100644 --- a/studio/components/to-be-cleaned/Panel.tsx +++ b/studio/components/to-be-cleaned/Panel.tsx @@ -22,7 +22,7 @@ function Panel(props: any) {
{props.title && (
diff --git a/studio/components/ui/CodeEditor/CodeEditor.tsx b/studio/components/ui/CodeEditor/CodeEditor.tsx index 4c533606c76..06d1d68a30b 100644 --- a/studio/components/ui/CodeEditor/CodeEditor.tsx +++ b/studio/components/ui/CodeEditor/CodeEditor.tsx @@ -1,5 +1,5 @@ import { FC, useEffect, useRef } from 'react' -import Editor, { useMonaco } from '@monaco-editor/react' +import Editor from '@monaco-editor/react' import { timeout } from 'lib/helpers' import Connecting from '../Loading' @@ -13,20 +13,17 @@ interface Props { onInputChange: (value?: string) => void onInputRun?: (value: string) => void hideLineNumbers?: boolean - className?: string } const CodeEditor: FC = ({ id, language, defaultValue, - isReadOnly, - onInputChange = () => { }, - onInputRun = () => { }, - hideLineNumbers, - className = "" + isReadOnly = false, + hideLineNumbers = false, + onInputChange = () => {}, + onInputRun = () => {}, }) => { - const monaco = useMonaco() const editorRef = useRef() useEffect(() => { @@ -60,7 +57,7 @@ const CodeEditor: FC = ({ } @@ -75,7 +72,7 @@ const CodeEditor: FC = ({ lineNumbers: hideLineNumbers ? 'off' : undefined, glyphMargin: hideLineNumbers ? false : undefined, lineNumbersMinChars: hideLineNumbers ? 0 : undefined, - folding: hideLineNumbers? false : undefined + folding: hideLineNumbers ? false : undefined, }} onMount={onMount} onChange={onInputChange} diff --git a/studio/components/ui/Logs/LogPanel.tsx b/studio/components/ui/Logs/LogPanel.tsx deleted file mode 100644 index 5a787855f0a..00000000000 --- a/studio/components/ui/Logs/LogPanel.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import React from 'react' -import { Button, Input, Dropdown, Typography, IconChevronDown } from '@supabase/ui' -import Panel from 'components/to-be-cleaned/Panel' - -interface Props { - showReset: boolean - onReset: () => void - onRefresh?: () => void - onSearch?: (query: string) => void - onCustomClick?: () => void - isLoading: boolean - children?: JSX.Element - searchValue?: string - templates?: { - label: string - onClick: () => void - }[] -} - -/** - * Logs control panel header + wrapper - */ -const LogPanel = ({ - onRefresh, - isLoading, - searchValue, - children, - onSearch, - onCustomClick, - showReset, - onReset, - templates = [] }: Props) => ( - -
- - - {p.label} - - )} - > - - - - - {showReset && ( - )} -
-
- { - if (onSearch) onSearch(e.target.value) - }} value={searchValue} /> - - -
-
- } - > - {children} - -) -export default LogPanel \ No newline at end of file diff --git a/studio/components/ui/Logs/LogSelection.tsx b/studio/components/ui/Logs/LogSelection.tsx deleted file mode 100644 index a004510568a..00000000000 --- a/studio/components/ui/Logs/LogSelection.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react' -import { Button, Input, Typography } from '@supabase/ui' -import Panel from 'components/to-be-cleaned/Panel' -import { LogData } from "./LogTable" -import dayjs from 'dayjs' - -interface Props { - log: LogData - onClose: () => void -} - -/** - * Log selection display - */ -const LogSelection = ({ log, onClose }: Props) => ( - - {dayjs(log.timestamp / 1000).toString()} - -
- } - > -
- {log.event_message} - -
- - - -) -export default LogSelection \ No newline at end of file diff --git a/studio/components/ui/Logs/LogTable.tsx b/studio/components/ui/Logs/LogTable.tsx deleted file mode 100644 index abd9f08be42..00000000000 --- a/studio/components/ui/Logs/LogTable.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { Typography } from '@supabase/ui' -import dayjs from 'dayjs' -import LogSelection from './LogSelection' -import DataGrid from '@supabase/react-data-grid' -interface Props { - data: LogData[] | null | undefined -} - -interface Metadata { - [key: string]: string | number | Object | Object[] -} -export interface LogData { - id: string - timestamp: number - event_message: string - metadata: Metadata -} - -interface Column { - key: string - name: string -} - -/** - * Logs table view with focus side panel - */ -const LogTable = ({ data }: Props) => { - const [focusedLog, setFocusedLog] = useState(null); - const columns = ["timestamp", "event_message"].map(v => ({ - key: v, name: v, - width: v === "timestamp" ? 240 : undefined, - resizable: true, - headerRenderer: () => { - return
{v}
- }, - formatter: ({ row }: any) => { - let value = row[v] - if (v === 'timestamp') { - value = dayjs(Number(row["timestamp"]) / 1000).toString() - } - return

{value}

- } - })) - - const logMap = (data || []).reduce((acc: any, d) => { - acc[d.id] = d - return acc - }, {}) - useEffect(() => { - if (!data) return - if (focusedLog && !(focusedLog.id in logMap)) { - setFocusedLog(null) - } - }, [Object.keys(logMap)]) - - if (!data) return null - - return (
- setFocusedLog(data[rowIdx])} - noRowsFallback={No data returned from query} - columns={columns as any} - rowClass={r => `${r.id === focusedLog?.id ? "bg-green-800" : "cursor-pointer"}`} - rows={data} - rowKeyGetter={r => r.id} - onRowClick={r => setFocusedLog(logMap[r.id])} - /> - {focusedLog && ( -
- setFocusedLog(null)} log={focusedLog} /> -
- )} -
- ) -} -export default LogTable \ No newline at end of file diff --git a/studio/lib/constants/index.ts b/studio/lib/constants/index.ts index fade7083e76..d14763cbb05 100644 --- a/studio/lib/constants/index.ts +++ b/studio/lib/constants/index.ts @@ -89,9 +89,9 @@ export const POLICY_MODAL_VIEWS = { } export const LOG_TYPE_LABEL_MAPPING: { [k: string]: string } = { - rest: 'Edge - PostgREST', - realtime: 'Edge - Realtime', - auth: 'Edge - Auth', - storage: 'Edge - Storage', + rest: 'PostgREST', + realtime: 'Realtime', + auth: 'Auth', + storage: 'Storage', database: 'Database', } diff --git a/studio/pages/project/[ref]/settings/logs/[type].tsx b/studio/pages/project/[ref]/settings/logs/[type].tsx index 77291c44a15..8f35603c383 100644 --- a/studio/pages/project/[ref]/settings/logs/[type].tsx +++ b/studio/pages/project/[ref]/settings/logs/[type].tsx @@ -1,22 +1,39 @@ -import React, { useEffect, useRef, useState } from 'react' -import { SettingsLayout } from 'components/layouts/' +import useSWR from 'swr' +import debounce from 'lodash/debounce' +import { useEffect, useRef, useState } from 'react' import { useRouter } from 'next/router' -import LogPanel from 'components/ui/Logs/LogPanel' -import { LOG_TYPE_LABEL_MAPPING } from 'lib/constants' import { observer } from 'mobx-react-lite' +import { Typography, Loading, IconLoader, IconAlertCircle } from '@supabase/ui' + import { withAuth } from 'hooks' import { get } from 'lib/common/fetch' -import LogTable, { LogData } from 'components/ui/Logs/LogTable' -import useSWR from 'swr' -import { API_URL } from 'lib/constants' -import { Typography, Button } from '@supabase/ui' -import debounce from 'lodash/debounce' +import { API_URL, LOG_TYPE_LABEL_MAPPING } from 'lib/constants' +import { SettingsLayout } from 'components/layouts/' import CodeEditor from 'components/ui/CodeEditor' -import { ButtonProps } from '@supabase/ui/dist/cjs/components/Button/Button' +import { + LogPanel, + LogTable, + LogData, + TEMPLATES, + LogTemplate, +} from 'components/interfaces/Settings/Logs' +import { uuidv4 } from 'lib/helpers' interface CountData { count: number } + +interface Count { + data: [CountData] | [] + error?: any +} + +interface Logs { + data: LogData[] + count: number + error: any +} + /** * Acts as a container component for the entire log display */ @@ -24,113 +41,112 @@ export const LogPage = () => { const router = useRouter() const { ref, type } = router.query + const [editorId, setEditorId] = useState(uuidv4()) const [search, setSearch] = useState('') const [queryParams, setQueryParams] = useState('') const [where, setWhere] = useState('') const [mode, setMode] = useState<'simple' | 'custom'>('simple') const [latestRefresh, setLatestRefresh] = useState(new Date().toISOString()) - const title = LOG_TYPE_LABEL_MAPPING[type as string] - - // handle log fetching - const { - data, - isValidating: isLoading, - mutate, - } = useSWR<{ data: LogData[]; count: number; error: any }>( - `${API_URL}/projects/${ref}/logs?${queryParams}`, - get, - { - revalidateOnFocus: false, - } - ) - + const title = `Logs - ${LOG_TYPE_LABEL_MAPPING[type as string]}` const debouncedQueryParams = useRef(debounce(setQueryParams, 600)).current useEffect(() => { const params = { type: type as string, search_query: search || '', - where: where || '', + where: mode === 'custom' ? where || '' : '', } const qs = new URLSearchParams(params).toString() debouncedQueryParams(qs) return () => debouncedQueryParams.cancel() - }, [search, where, type]) + }, [mode, search, where, type]) - const countKey = `${API_URL}/projects/${ref}/logs?${queryParams}&count=true&period_start=${latestRefresh}` - const { data: countData } = useSWR<{ data: [CountData] | []; error?: any }>(countKey, get, { - refreshInterval: 5000, - }) - const newCount = countData?.data?.[0]?.count ?? 0 + // handle log fetching + const logUrl = `${API_URL}/projects/${ref}/logs?${queryParams}` + const { data, isValidating, mutate } = useSWR(logUrl, get, { revalidateOnFocus: false }) const { data: logData, error } = data || {} + const countUrl = `${API_URL}/projects/${ref}/logs?${queryParams}&count=true&period_start=${latestRefresh}` + const { data: countData } = useSWR(countUrl, get, { refreshInterval: 5000 }) + const newCount = countData?.data?.[0]?.count ?? 0 + + const handleReset = () => { + setWhere('') + setSearch('') + setEditorId(uuidv4()) + } + const handleRefresh = () => { setLatestRefresh(new Date().toISOString()) mutate() } + const handleModeToggle = () => { - if (mode === 'simple') { - setMode('custom') - setSearch('') + setMode(mode === 'simple' ? 'custom' : 'simple') + } + + const onSelectTemplate = (template: LogTemplate) => { + setMode(template.mode) + if (template.mode === 'simple') { + setSearch(template.searchString) + setWhere('') } else { - setMode('simple') + setWhere(template.searchString) + setSearch('') + setEditorId(uuidv4()) } } + return ( - - { - setWhere('') - setSearch('') - setMode('simple') // this is necessary to reset the value of the monaco editor - }} - templates={[ - { label: 'Recent Errors', onClick: () => setSearch('[Ee]rror|\\s[45][0-9][0-9]\\s') }, - { - label: 'POST or PATCH', - onClick: () => { - setSearch('') - setMode('custom') - setWhere( - "REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH') " - ) - }, - }, - ]} - searchValue={search} - onCustomClick={handleModeToggle} - isLoading={isLoading} - onRefresh={handleRefresh} - onSearch={setSearch} - /> - {mode === 'custom' && ( -
- setWhere(v || '')} - onInputRun={handleRefresh} - /> + +
+ 0} + showReset={search.length > 0} + searchValue={search} + templates={TEMPLATES} + onReset={handleReset} + onRefresh={handleRefresh} + onSearch={setSearch} + onCustomClick={handleModeToggle} + onSelectTemplate={onSelectTemplate} + /> + {mode === 'custom' && ( +
+ setWhere(v || '')} + onInputRun={handleRefresh} + /> +
+ )} +
+ {isValidating && ( +
+ +
+ )} + {error && ( +
+ + Sorry! Could not fetch data +
+ )} +
- )} - {error && ( - Could not fetch data - )} - {newCount > 0 && } - +
) } -const LoadNewLogsButton = (props: ButtonProps) => ( - -) - export default withAuth(observer(LogPage)) From 20fc5ece4ddc89399d0008aa896ccf0bac36044e Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 8 Dec 2021 22:20:05 +0700 Subject: [PATCH 048/166] Small updates --- .../interfaces/Settings/Logs/LogPanel.tsx | 9 +++--- .../Settings/Logs/Logs.constants.ts | 4 ++- .../interfaces/Settings/Logs/Logs.types.ts | 15 +++++++++ .../project/[ref]/settings/logs/[type].tsx | 32 +++++++------------ 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/studio/components/interfaces/Settings/Logs/LogPanel.tsx b/studio/components/interfaces/Settings/Logs/LogPanel.tsx index 7e9b0637728..d5a4721d3ba 100644 --- a/studio/components/interfaces/Settings/Logs/LogPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/LogPanel.tsx @@ -8,6 +8,7 @@ import { IconRefreshCw, IconX, Toggle, + IconSearch, } from '@supabase/ui' import { LogTemplate } from '.' @@ -79,7 +80,7 @@ const LogPanel: FC = ({
- Search via query + Search logs via query
@@ -87,12 +88,12 @@ const LogPanel: FC = ({
} + placeholder="Search event messages" onChange={(e) => onSearch(e.target.value)} value={searchValue} actions={ - showReset && + showReset && } />
diff --git a/studio/components/interfaces/Settings/Logs/Logs.constants.ts b/studio/components/interfaces/Settings/Logs/Logs.constants.ts index c81dd48fff1..78b3c542e9c 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.constants.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.constants.ts @@ -6,6 +6,8 @@ export const TEMPLATES: LogTemplate[] = [ label: 'POST or PATCH', mode: 'custom', searchString: - "REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH') ", + "REGEXP_CONTAINS(event_message, 'POST') OR REGEXP_CONTAINS(event_message, 'PATCH')", }, ] + +export const DEFAULT_QUERY = 'SELECT timestamp, event_message FROM postgres_logs;' diff --git a/studio/components/interfaces/Settings/Logs/Logs.types.ts b/studio/components/interfaces/Settings/Logs/Logs.types.ts index ba9021d0bfb..dd36de04f80 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.types.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.types.ts @@ -14,3 +14,18 @@ export interface LogTemplate { mode: 'custom' | 'simple' searchString: string } + +export interface CountData { + count: number +} + +export interface Count { + data: [CountData] | [] + error?: any +} + +export interface Logs { + data: LogData[] + count: number + error: any +} diff --git a/studio/pages/project/[ref]/settings/logs/[type].tsx b/studio/pages/project/[ref]/settings/logs/[type].tsx index 8f35603c383..d9b2913e305 100644 --- a/studio/pages/project/[ref]/settings/logs/[type].tsx +++ b/studio/pages/project/[ref]/settings/logs/[type].tsx @@ -1,9 +1,10 @@ import useSWR from 'swr' import debounce from 'lodash/debounce' import { useEffect, useRef, useState } from 'react' +import { NextPage } from 'next' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Typography, Loading, IconLoader, IconAlertCircle } from '@supabase/ui' +import { Typography, IconLoader, IconAlertCircle } from '@supabase/ui' import { withAuth } from 'hooks' import { get } from 'lib/common/fetch' @@ -13,31 +14,17 @@ import CodeEditor from 'components/ui/CodeEditor' import { LogPanel, LogTable, - LogData, - TEMPLATES, + Count, + Logs, LogTemplate, + TEMPLATES, } from 'components/interfaces/Settings/Logs' import { uuidv4 } from 'lib/helpers' -interface CountData { - count: number -} - -interface Count { - data: [CountData] | [] - error?: any -} - -interface Logs { - data: LogData[] - count: number - error: any -} - /** * Acts as a container component for the entire log display */ -export const LogPage = () => { +export const LogPage: NextPage = () => { const router = useRouter() const { ref, type } = router.query @@ -83,7 +70,12 @@ export const LogPage = () => { } const handleModeToggle = () => { - setMode(mode === 'simple' ? 'custom' : 'simple') + if (mode === 'simple') { + setMode('custom') + // setWhere(DEFAULT_QUERY) + } else { + setMode('simple') + } } const onSelectTemplate = (template: LogTemplate) => { From 98451770f88968a9c5afe4f7e89042d08272ab57 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 9 Dec 2021 10:48:48 +0700 Subject: [PATCH 049/166] Hide logs in settings menu --- .../SettingsLayout/SettingsMenu.utils.ts | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts index 2dd092f8010..e45f48d6969 100644 --- a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts +++ b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts @@ -18,16 +18,16 @@ export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { }, ], }, - { - title: 'Logs', - items: ['database', 'auth', 'realtime', 'rest', 'storage'].map((type: string) => { - return { - name: LOG_TYPE_LABEL_MAPPING[type], - key: `logs-${type}`, - url: `/project/${ref}/settings/logs/${type}`, - items: [], - } - }), - }, + // { + // title: 'Logs', + // items: ['database', 'auth', 'realtime', 'rest', 'storage'].map((type: string) => { + // return { + // name: LOG_TYPE_LABEL_MAPPING[type], + // key: `logs-${type}`, + // url: `/project/${ref}/settings/logs/${type}`, + // items: [], + // } + // }), + // }, ] } From 28f176d90df9361f9bdc79271f424e164e4a37b8 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 9 Dec 2021 11:04:37 +0700 Subject: [PATCH 050/166] Show database and rest logs, and show new count in refresh button --- .../interfaces/Settings/Logs/LogPanel.tsx | 16 +++++++++---- .../SettingsLayout/SettingsMenu.utils.ts | 23 ++++++++++--------- studio/lib/constants/index.ts | 2 +- .../project/[ref]/settings/logs/[type].tsx | 2 +- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/studio/components/interfaces/Settings/Logs/LogPanel.tsx b/studio/components/interfaces/Settings/Logs/LogPanel.tsx index d5a4721d3ba..fb206ee38e6 100644 --- a/studio/components/interfaces/Settings/Logs/LogPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/LogPanel.tsx @@ -17,7 +17,7 @@ interface Props { templates?: any isLoading: boolean isCustomQuery: boolean - hasNewData: boolean + newCount: number showReset: boolean onReset: () => void onRefresh?: () => void @@ -34,7 +34,7 @@ const LogPanel: FC = ({ templates = [], isLoading, isCustomQuery, - hasNewData, + newCount, showReset, onReset, onRefresh, @@ -50,8 +50,16 @@ const LogPanel: FC = ({ type="text" icon={
- {hasNewData && ( -
+ {newCount > 0 && ( +
+
+ {newCount} +
diff --git a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts index e45f48d6969..a1547dfa076 100644 --- a/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts +++ b/studio/components/layouts/SettingsLayout/SettingsMenu.utils.ts @@ -18,16 +18,17 @@ export const generateSettingsMenu = (ref: string): ProductMenuGroup[] => { }, ], }, - // { - // title: 'Logs', - // items: ['database', 'auth', 'realtime', 'rest', 'storage'].map((type: string) => { - // return { - // name: LOG_TYPE_LABEL_MAPPING[type], - // key: `logs-${type}`, - // url: `/project/${ref}/settings/logs/${type}`, - // items: [], - // } - // }), - // }, + { + title: 'Logs', + // items: ['database', 'auth', 'realtime', 'rest', 'storage'].map((type: string) => { + items: ['database', 'rest'].map((type: string) => { + return { + name: LOG_TYPE_LABEL_MAPPING[type], + key: `logs-${type}`, + url: `/project/${ref}/settings/logs/${type}`, + items: [], + } + }), + }, ] } diff --git a/studio/lib/constants/index.ts b/studio/lib/constants/index.ts index d14763cbb05..6908b4af550 100644 --- a/studio/lib/constants/index.ts +++ b/studio/lib/constants/index.ts @@ -89,7 +89,7 @@ export const POLICY_MODAL_VIEWS = { } export const LOG_TYPE_LABEL_MAPPING: { [k: string]: string } = { - rest: 'PostgREST', + rest: 'API', realtime: 'Realtime', auth: 'Auth', storage: 'Storage', diff --git a/studio/pages/project/[ref]/settings/logs/[type].tsx b/studio/pages/project/[ref]/settings/logs/[type].tsx index d9b2913e305..ea65f2bcb66 100644 --- a/studio/pages/project/[ref]/settings/logs/[type].tsx +++ b/studio/pages/project/[ref]/settings/logs/[type].tsx @@ -96,7 +96,7 @@ export const LogPage: NextPage = () => { 0} + newCount={newCount} showReset={search.length > 0} searchValue={search} templates={TEMPLATES} From 175155eca1e0fb265795627bbe1d3be9c6ee3792 Mon Sep 17 00:00:00 2001 From: phamhieu Date: Thu, 9 Dec 2021 11:58:28 +0700 Subject: [PATCH 051/166] chore: tidy up --- studio/components/interfaces/Home/Landing.tsx | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/studio/components/interfaces/Home/Landing.tsx b/studio/components/interfaces/Home/Landing.tsx index d22ee1371c7..ec00c7236b0 100644 --- a/studio/components/interfaces/Home/Landing.tsx +++ b/studio/components/interfaces/Home/Landing.tsx @@ -14,8 +14,8 @@ const Landing = () => { async function handleGithubSignIn() { try { - const { user, session, error } = await auth.signIn( - { + const { error } = await auth.signIn( + { provider: 'github', }, { @@ -55,10 +55,13 @@ const Landing = () => { type="success" className="ml-8 font-medium hover:text-gray-300 focus:outline-none focus:text-gray-300 transition duration-150 ease-in-out" > - {GOTRUE_ENABLED ? - - : Sign In - } + {GOTRUE_ENABLED ? ( + + ) : ( + Sign In + )}
@@ -75,12 +78,15 @@ const Landing = () => {

- {GOTRUE_ENABLED ? - - : - - - } + {GOTRUE_ENABLED ? ( + + ) : ( + + + + )} @@ -141,8 +143,10 @@ const DocView: FC = observer(({}) => { type="button" onClick={() => setSelectedLang('bash')} className={`${ - selectedLang == 'bash' ? 'text-gray-300' : 'text-gray-400' - } relative inline-flex items-center p-1 px-2 bg-gray-600 border-r border-gray-500 dark:border-gray-500 text-sm font-medium hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} + selectedLang == 'bash' + ? 'text-gray-600 dark:text-gray-300' + : 'text-gray-400 dark:text-gray-400' + } relative inline-flex items-center p-1 px-2 bg-gray-100 dark:bg-gray-600 border-r border-gray-200 dark:border-gray-500 text-sm font-medium hover:text-gray-600 dark:hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} > Bash @@ -533,8 +537,8 @@ const ResourceContent = ({

- Supabase provides realtime functionality and broadcasts database changes to authorized users depending on Row Level - Security (RLS) policies. + Supabase provides realtime functionality and broadcasts database changes to authorized + users depending on Row Level Security (RLS) policies.

diff --git a/studio/styles/code.scss b/studio/styles/code.scss index 7942c67f67f..991d786f761 100644 --- a/studio/styles/code.scss +++ b/studio/styles/code.scss @@ -69,7 +69,6 @@ } .codeBlock { - @apply bg-gray-600; margin-bottom: 0; overflow: hidden; overflow-wrap: break-word; diff --git a/studio/styles/main.scss b/studio/styles/main.scss index 3e455a5941d..fad52b2d803 100644 --- a/studio/styles/main.scss +++ b/studio/styles/main.scss @@ -144,7 +144,7 @@ input[type='radio'] { } code { - @apply p-1 m-0 font-mono text-sm bg-gray-600 rounded; + @apply p-1 m-0 font-mono text-sm bg-gray-100 dark:bg-gray-600 rounded; } div[data-radix-portal]:not(.portal--toast) { diff --git a/studio/styles/ui.scss b/studio/styles/ui.scss index bafa4cbbc05..f924e6971ae 100644 --- a/studio/styles/ui.scss +++ b/studio/styles/ui.scss @@ -195,10 +195,14 @@ label:not(.sbui-formlayout__label):not(.sbui-checkbox__label-container__label):n /* Docs */ .Docs { &--inner-wrapper { - background: linear-gradient(90deg, #1f1f1f 50%, #2a2a2a 50%); + background: linear-gradient(90deg, #ffffff 50%, #eeeeee 50%); width: 100%; } + .dark &--inner-wrapper { + background: linear-gradient(90deg, #1f1f1f 50%, #2a2a2a 50%); + } + h1, h2, h3 { @@ -206,13 +210,13 @@ label:not(.sbui-formlayout__label):not(.sbui-checkbox__label-container__label):n } .doc-heading { - @apply text-white capitalize mt-4 w-1/2; + @apply text-black dark:text-white capitalize mt-4 w-1/2; hyphens: auto; max-width: 50%; } .doc-section { - @apply border-b dark:border-dark text-gray-300 flex; + @apply border-b dark:border-dark text-gray-600 dark:text-gray-300 flex; } .text { @@ -233,7 +237,7 @@ label:not(.sbui-formlayout__label):not(.sbui-checkbox__label-container__label):n } .code { - @apply flex-1 p-2 w-1/2 bg-gray-600 pb-4; + @apply flex-1 p-2 w-1/2 pb-4; max-width: 50%; h4 { From 34e40694db0f4cddcf0dd1a186b9fc7946e756da Mon Sep 17 00:00:00 2001 From: Harsh Karande Date: Sat, 11 Dec 2021 19:07:27 +0530 Subject: [PATCH 075/166] feat: add syntax highlighting for code blocks --- studio/components/to-be-cleaned/Docs/Param.js | 2 +- studio/pages/project/[ref]/api/index.tsx | 14 +++++------ studio/styles/code.scss | 23 +++++++++++-------- studio/styles/ui.scss | 4 ++-- studio/tailwind.config.js | 14 +++++++++++ 5 files changed, 38 insertions(+), 19 deletions(-) diff --git a/studio/components/to-be-cleaned/Docs/Param.js b/studio/components/to-be-cleaned/Docs/Param.js index b04d0ad0b17..ecdd172b5ca 100644 --- a/studio/components/to-be-cleaned/Docs/Param.js +++ b/studio/components/to-be-cleaned/Docs/Param.js @@ -22,7 +22,7 @@ const Param = ({ {format && format != type && (

)} {description !== false && ( diff --git a/studio/pages/project/[ref]/api/index.tsx b/studio/pages/project/[ref]/api/index.tsx index fd73c2c0999..49d594eb92c 100644 --- a/studio/pages/project/[ref]/api/index.tsx +++ b/studio/pages/project/[ref]/api/index.tsx @@ -134,8 +134,8 @@ const DocView: FC = observer(({}) => { className={`${ selectedLang == 'js' ? 'text-gray-600 dark:text-gray-300' - : 'text-gray-400 dark:text-gray-400' - } relative inline-flex items-center p-1 px-2 bg-gray-100 dark:bg-gray-600 border-r border-gray-200 dark:border-gray-500 text-sm font-medium hover:text-gray-600 dark:hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} + : 'text-gray-300 dark:text-gray-400' + } relative inline-flex items-center p-1 px-2 bg-coolGray-100 dark:bg-gray-600 border-r border-gray-200 dark:border-gray-500 text-sm font-medium hover:text-gray-600 dark:hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} > JavaScript @@ -145,16 +145,16 @@ const DocView: FC = observer(({}) => { className={`${ selectedLang == 'bash' ? 'text-gray-600 dark:text-gray-300' - : 'text-gray-400 dark:text-gray-400' - } relative inline-flex items-center p-1 px-2 bg-gray-100 dark:bg-gray-600 border-r border-gray-200 dark:border-gray-500 text-sm font-medium hover:text-gray-600 dark:hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} + : 'text-gray-300 dark:text-gray-400' + } relative inline-flex items-center p-1 px-2 bg-coolGray-100 dark:bg-gray-600 border-r border-gray-200 dark:border-gray-500 text-sm font-medium hover:text-gray-600 dark:hover:text-gray-300 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring-blue active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150`} > Bash {selectedLang == 'bash' && (
- Key: + Key: + ) }) -useMonaco.mockImplementation(v => v) +useMonaco.mockImplementation((v) => v) import { LogPage } from 'pages/project/[ref]/settings/logs/[type]' import { render, fireEvent, waitFor, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' +import {getToggleByText} from "../../helpers" beforeEach(() => { get.mockReset() }) test('can display log data and metadata', async () => { - const data = [{ - id: "seome-uuid", - timestamp: 1621323232312, - event_message: "some event happened", - metadata: { - my_key: "something_value" - } - }] + const data = [ + { + id: 'seome-uuid', + timestamp: 1621323232312, + event_message: 'some event happened', + metadata: { + my_key: 'something_value', + }, + }, + ] get.mockResolvedValue({ data }) render() @@ -59,15 +58,16 @@ test('can display log data and metadata', async () => { }) test('Refresh', async () => { - - const data = [{ - id: "some-uuid", - timestamp: 1621323232312, - event_message: "some event happened", - metadata: { - my_key: "something_value" - } - }] + const data = [ + { + id: 'some-uuid', + timestamp: 1621323232312, + event_message: 'some event happened', + metadata: { + my_key: 'something_value', + }, + }, + ] get.mockResolvedValueOnce({ data }).mockResolvedValueOnce({ data: [] }) render() @@ -82,84 +82,98 @@ test('Refresh', async () => { await waitFor(() => screen.queryByText(/happened/) === null, { timeout: 1000 }) }) - -test("Search will trigger a log refresh", async () => { +test('Search will trigger a log refresh', async () => { get.mockImplementation((url) => { - - if (url.includes("search_query") && url.includes("something")) { + if (url.includes('search_query') && url.includes('something')) { return { - data: [{ - id: "some-uuid", - timestamp: 1621323232312, - event_message: "some event happened", - metadata: {} - }] + data: [ + { + id: 'some-uuid', + timestamp: 1621323232312, + event_message: 'some event happened', + metadata: {}, + }, + ], } } return { data: [] } }) render() - userEvent.type(screen.getByPlaceholderText(/Filter/), "something") - await waitFor(() => { - expect(get).toHaveBeenCalledWith(expect.stringContaining("search_query")) - expect(get).toHaveBeenCalledWith(expect.stringContaining("something")) - }, { timeout: 1500 }) + userEvent.type(screen.getByPlaceholderText(/Search/), 'something') + await waitFor( + () => { + expect(get).toHaveBeenCalledWith(expect.stringContaining('search_query')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('something')) + }, + { timeout: 1500 } + ) await waitFor(() => screen.getByText(/happened/), { timeout: 1000 }) }) -test("poll count for new messages", async () => { +test('poll count for new messages', async () => { get.mockImplementation((url) => { - if (url.includes("count")) { - return { data: [{ count: 3 }] } + if (url.includes('count')) { + return { data: [{ count: 125 }] } } return { - data: [{ - id: "some-uuid", - timestamp: 1621323232312, - event_message: "some event happened", - metadata: {} - }] + data: [ + { + id: 'some-uuid', + timestamp: 1621323232312, + event_message: 'some event happened', + metadata: {}, + }, + ], } }) - render( - - ) + render() await waitFor(() => screen.queryByText(/happened/) === null) - await waitFor(() => screen.getByText(/Load new logs/)) + // should display new logs count + await waitFor(() => screen.getByText(/125/)) - userEvent.click(screen.getByText(/Load new logs/)) - await waitFor(() => screen.queryByText(/Load new logs/) === null) + userEvent.click(screen.getByText(/Refresh/)) + await waitFor(() => screen.queryByText(/125/) === null) await waitFor(() => screen.getByText(/happened/)) }) - -test("where clause will trigger a log refresh", async () => { +test('where clause will trigger a log refresh', async () => { get.mockImplementation((url) => { - - if (url.includes("where") && url.includes("something")) { + if (url.includes('where') && url.includes('something')) { return { - data: [{ - id: "some-uuid", - timestamp: 1621323232312, - event_message: "some event happened", - metadata: {} - }] + data: [ + { + id: 'some-uuid', + timestamp: 1621323232312, + event_message: 'some event happened', + metadata: {}, + }, + ], } } return { data: [] } }) const { container } = render() - let editor = container.querySelector('.monaco-editor'); + let editor = container.querySelector('.monaco-editor') expect(editor).toBeFalsy() - userEvent.click(screen.getByText("Custom query")) - editor = container.querySelector('.monaco-editor'); - userEvent.type(editor, "metadata.field = something") + // TODO: abstract this out into a toggle selection helper + const toggle = getToggleByText(/via query/) + expect(toggle).toBeTruthy() + userEvent.click(toggle) await waitFor(() => { - expect(get).toHaveBeenCalledWith(expect.stringContaining("where")) - expect(get).toHaveBeenCalledWith(expect.stringContaining("metadata.field")) - }, { timeout: 1000 }) + editor = container.querySelector('.monaco-editor') + expect(editor).toBeTruthy() + }) + editor = container.querySelector('.monaco-editor') + userEvent.type(editor, 'metadata.field = something') + await waitFor( + () => { + expect(get).toHaveBeenCalledWith(expect.stringContaining('where')) + expect(get).toHaveBeenCalledWith(expect.stringContaining('metadata.field')) + }, + { timeout: 1000 } + ) await waitFor(() => screen.getByText(/happened/)) -}) \ No newline at end of file +}) From 4723b8c231ee5fbc3341bc33d92df7d38227cdfe Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 14 Dec 2021 10:55:58 +0700 Subject: [PATCH 135/166] [Midway] Shift column inference logic for CSV import to CSV parsing step instead of saving CSV content step --- .../SpreadsheetImport/SpreadsheetImport.tsx | 11 +-- .../SpreadsheetImport.utils.ts | 73 +++++++++++++++++-- .../TableEditor/TableEditor.types.ts | 2 + .../TableEditor/TableEditor.utils.ts | 60 +-------------- .../TableEditorLayout/TableEditorMenu.tsx | 6 +- 5 files changed, 83 insertions(+), 69 deletions(-) diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx index 4425cd0e5e5..124e9bd783f 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx @@ -33,6 +33,7 @@ const SpreadsheetImport: FC = ({ headers: headers, rows: rows, rowCount: 0, + columnTypeMap: {}, }) const [input, setInput] = useState('') @@ -56,7 +57,7 @@ const SpreadsheetImport: FC = ({ }) } else { setUploadedFile(file) - const { headers, rowCount, rowPreview, errors } = await parseSpreadsheet( + const { headers, rowCount, columnTypeMap, errors } = await parseSpreadsheet( file, onProgressUpdate ) @@ -74,13 +75,13 @@ const SpreadsheetImport: FC = ({ message: `Multiple errors have been detected on ${errors.length} rows. Do check the file you have uploaded for any discrepancies.`, }) } - setSpreadsheetData({ headers, rowCount, rows: rowPreview }) + setSpreadsheetData({ headers, rows: [], rowCount, columnTypeMap }) } event.target.value = '' } const removeUploadedFile = () => { - setSpreadsheetData({ headers: [], rows: [], rowCount: 0 }) + setSpreadsheetData({ headers: [], rows: [], rowCount: 0, columnTypeMap: {} }) setUploadedFile(null) } @@ -102,9 +103,9 @@ const SpreadsheetImport: FC = ({ message: `Multiple errors have been detected on ${errors.length} rows. Do check your input for any discrepancies.`, }) } - setSpreadsheetData({ headers, rows, rowCount: rows.length }) + setSpreadsheetData({ headers, rows, rowCount: rows.length, columnTypeMap: {} }) } else { - setSpreadsheetData({ headers: [], rows: [], rowCount: 0 }) + setSpreadsheetData({ headers: [], rows: [], rowCount: 0, columnTypeMap: {} }) } } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.utils.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.utils.ts index 70d47ef9991..6459a7324c0 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.utils.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.utils.ts @@ -1,4 +1,7 @@ +import dayjs from 'dayjs' import Papa from 'papaparse' +import { has, includes } from 'lodash' +import { tryParseJson } from 'lib/helpers' const CHUNK_SIZE = 1024 * 1024 * 0.25 // 0.25MB @@ -30,8 +33,10 @@ export const parseSpreadsheet = (file: File, onProgressUpdate: (progress: number let headers: string[] = [] let chunkNumber = 0 let rowCount = 0 - const rowPreview: any[] = [] + + const columnTypeMap: any = {} const errors: any[] = [] + return new Promise((resolve) => { Papa.parse(file, { header: true, @@ -43,9 +48,14 @@ export const parseSpreadsheet = (file: File, onProgressUpdate: (progress: number chunk: (results) => { headers = results.meta.fields as string[] - if (rowCount === 0) { - rowPreview.push(...results.data.slice(0, 50)) - } + headers.forEach((header) => { + const type = inferColumnType(header, results.data as any[]) + if (!has(columnTypeMap, header)) { + columnTypeMap[header] = type + } else if (columnTypeMap[header] !== type) { + columnTypeMap[header] = 'text' + } + }) rowCount += results.data.length @@ -58,7 +68,7 @@ export const parseSpreadsheet = (file: File, onProgressUpdate: (progress: number onProgressUpdate(progress > 1 ? 100 : Number((progress * 100).toFixed(2))) }, complete: () => { - const data = { headers, rowCount, rowPreview, errors } + const data = { headers, rowCount, columnTypeMap, errors } resolve(data) }, }) @@ -68,3 +78,56 @@ export const parseSpreadsheet = (file: File, onProgressUpdate: (progress: number export const revertSpreadsheet = (headers: string[], rows: any[]) => { return Papa.unparse(rows, { columns: headers }) } + +const inferColumnType = (column: string, rows: object[]) => { + // General strategy is to check the first row first, before checking across all the rows + // to ensure uniformity in data type. Thinking we do this as an optimization instead of + // checking all the rows up front. + + // If there are no rows to infer for, default to text + if (rows.length === 0) return 'text' + + const columnData = (rows[0] as any)[column] + const columnDataAcrossRows = rows.map((row: object) => (row as any)[column]) + + // Unable to infer any type as there's no data, default to text + if (!columnData) { + return 'text' + } + + // Infer numerical data type (defaults to either int8 or float8) + if (Number(columnData)) { + const columnNumberCheck = rows.map((row: object) => Number((row as any)[column])) + if (columnNumberCheck.includes(NaN)) { + return 'text' + } else { + const columnFloatCheck = columnNumberCheck.map((num: number) => num % 1) + return columnFloatCheck.every((item) => item === 0) ? 'int8' : 'float8' + } + } + + // Infer boolean type + if (includes(['true', 'false'], columnData.toLowerCase())) { + const isAllBoolean = columnDataAcrossRows.every((item: any) => + includes(['true', 'false'], item.toLowerCase()) + ) + if (isAllBoolean) { + return 'boolean' + } + } + + // Infer json type + if (tryParseJson(columnData)) { + const isAllJson = columnDataAcrossRows.every((item: any) => tryParseJson(columnData)) + if (isAllJson) { + return 'jsonb' + } + } + + // Infer datetime type + if (dayjs(columnData, 'YYYY-MM-DD hh:mm:ss').isValid() && Date.parse(columnData)) { + return 'timestamptz' + } + + return 'text' +} diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.types.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.types.ts index 42949bb7b1d..42eb07ad32b 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.types.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.types.ts @@ -1,3 +1,4 @@ +import { Dictionary } from '@supabase/grid' import { ColumnField } from '../SidePanelEditor.types' export interface TableField { @@ -13,4 +14,5 @@ export interface ImportContent { headers: string[] rowCount: number rows: object[] + columnTypeMap: Dictionary } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.utils.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.utils.ts index 841bfc65d0d..2e02f1ff191 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.utils.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.utils.ts @@ -1,8 +1,6 @@ -import { some, includes } from 'lodash' -import dayjs from 'dayjs' +import { some } from 'lodash' import { PostgresColumn, PostgresTable } from '@supabase/postgres-meta' -import { tryParseJson } from 'lib/helpers' import { ImportContent, TableField } from './TableEditor.types' import { DEFAULT_COLUMNS } from './TableEditor.constants' import { ColumnField } from '../SidePanelEditor.types' @@ -43,6 +41,7 @@ export const generateTableFieldFromPostgresTable = ( id: table.id, name: isDuplicating ? `${table.name}_duplicate` : table.name, comment: isDuplicating ? `This is a duplicate of ${table.name}` : table?.comment ?? '', + // @ts-ignore columns: table.columns.map((column: PostgresColumn) => { return generateColumnFieldFromPostgresColumn(column, table) }), @@ -52,61 +51,8 @@ export const generateTableFieldFromPostgresTable = ( export const formatImportedContentToColumnFields = (importContent: ImportContent) => { const columnFields = importContent.headers.map((header: string) => { - const columnType = inferColumnType(header, importContent.rows) + const columnType = importContent.columnTypeMap[header] return generateColumnField({ name: header, format: columnType }) }) return columnFields } - -export const inferColumnType = (column: string, rows: object[]) => { - // General strategy is to check the first row first, before checking across all the rows - // to ensure uniformity in data type. Thinking we do this as an optimization instead of - // checking all the rows up front. - - // If there are no rows to infer for, default to text - if (rows.length === 0) return 'text' - - const columnData = (rows[0] as any)[column] - const columnDataAcrossRows = rows.map((row: object) => (row as any)[column]) - - // Unable to infer any type as there's no data, default to text - if (!columnData) { - return 'text' - } - - // Infer numerical data type (defaults to either int8 or float8) - if (Number(columnData)) { - const columnNumberCheck = rows.map((row: object) => Number((row as any)[column])) - if (columnNumberCheck.includes(NaN)) { - return 'text' - } else { - const columnFloatCheck = columnNumberCheck.map((num: number) => num % 1) - return columnFloatCheck.every((item) => item === 0) ? 'int8' : 'float8' - } - } - - // Infer boolean type - if (includes(['true', 'false'], columnData.toLowerCase())) { - const isAllBoolean = columnDataAcrossRows.every((item: any) => - includes(['true', 'false'], item.toLowerCase()) - ) - if (isAllBoolean) { - return 'boolean' - } - } - - // Infer json type - if (tryParseJson(columnData)) { - const isAllJson = columnDataAcrossRows.every((item: any) => tryParseJson(columnData)) - if (isAllJson) { - return 'jsonb' - } - } - - // Infer datetime type - if (dayjs(columnData, 'YYYY-MM-DD hh:mm:ss').isValid() && Date.parse(columnData)) { - return 'timestamptz' - } - - return 'text' -} diff --git a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index f799d59b177..b174bb2afd1 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -75,7 +75,9 @@ const TableEditorMenu: FC = ({ } const schemas: PostgresSchema[] = meta.schemas.list() - const tables: PostgresTable[] = meta.tables.list((table: PostgresTable) => table.schema === selectedSchema) + const tables: PostgresTable[] = meta.tables.list( + (table: PostgresTable) => table.schema === selectedSchema + ) const schemaTables = searchText.length === 0 @@ -89,7 +91,7 @@ const TableEditorMenu: FC = ({ // Temp fix - Ideally we'd just take up all the remaining space but // can't seem to figure that out immediately - const maxScrollHeight = schemaViews.length > 0 ? 270 : 520 + const maxScrollHeight = schemaViews.length > 0 ? 270 : 515 return (
From e4cead0e3341225501ac3ce07b7cf0e1ad290743 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 14 Dec 2021 11:27:39 +0700 Subject: [PATCH 136/166] Ensure that removing content in table editor properly clears the spreadsheet import panel --- .../SpreadsheetImport.constants.ts | 9 +++++++ .../SpreadsheetImport/SpreadsheetImport.tsx | 26 +++++++++++++------ .../SpreadsheetImport.types.ts | 8 ++++++ 3 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.types.ts diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.constants.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.constants.ts index 163ab7e04a9..df48b1dab40 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.constants.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.constants.ts @@ -1,5 +1,14 @@ +import { SpreadsheetData } from './SpreadsheetImport.types' + export const UPLOAD_FILE_TYPES = [ 'text/csv', 'text/tab-separated-values', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', ] + +export const EMPTY_SPREADSHEET_DATA: SpreadsheetData = { + headers: [], + rows: [], + rowCount: 0, + columnTypeMap: {}, +} diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx index 124e9bd783f..a257113262d 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.tsx @@ -1,14 +1,15 @@ -import { useCallback, useState, FC } from 'react' +import { useCallback, useState, FC, useEffect } from 'react' import { debounce, includes } from 'lodash' import { SidePanel, Typography } from '@supabase/ui' import { useStore } from 'hooks' import Telemetry from 'lib/telemetry' import ActionBar from '../../ActionBar' -import { parseSpreadsheet, parseSpreadsheetText } from './SpreadsheetImport.utils' -import { UPLOAD_FILE_TYPES } from './SpreadsheetImport.constants' import SpreadSheetTextInput from './SpreadSheetTextInput' import SpreadSheetFileUpload from './SpreadSheetFileUpload' +import { SpreadsheetData } from './SpreadsheetImport.types' +import { parseSpreadsheet, parseSpreadsheetText } from './SpreadsheetImport.utils' +import { UPLOAD_FILE_TYPES, EMPTY_SPREADSHEET_DATA } from './SpreadsheetImport.constants' interface Props { debounceDuration?: number @@ -29,7 +30,16 @@ const SpreadsheetImport: FC = ({ }) => { const { ui } = useStore() - const [spreadsheetData, setSpreadsheetData] = useState({ + useEffect(() => { + if (visible) { + if (headers.length === 0) { + setSpreadsheetData(EMPTY_SPREADSHEET_DATA) + setUploadedFile(null) + } + } + }, [visible]) + + const [spreadsheetData, setSpreadsheetData] = useState({ headers: headers, rows: rows, rowCount: 0, @@ -81,11 +91,11 @@ const SpreadsheetImport: FC = ({ } const removeUploadedFile = () => { - setSpreadsheetData({ headers: [], rows: [], rowCount: 0, columnTypeMap: {} }) + setSpreadsheetData(EMPTY_SPREADSHEET_DATA) setUploadedFile(null) } - const readInputSpreadsheet = async (text: string) => { + const readSpreadsheetText = async (text: string) => { if (text.length > 0) { const { headers, rows, errors } = await parseSpreadsheetText(text) if (errors.length <= 5) { @@ -105,11 +115,11 @@ const SpreadsheetImport: FC = ({ } setSpreadsheetData({ headers, rows, rowCount: rows.length, columnTypeMap: {} }) } else { - setSpreadsheetData({ headers: [], rows: [], rowCount: 0, columnTypeMap: {} }) + setSpreadsheetData(EMPTY_SPREADSHEET_DATA) } } - const handler = useCallback(debounce(readInputSpreadsheet, debounceDuration), []) + const handler = useCallback(debounce(readSpreadsheetText, debounceDuration), []) const onInputChange = (event: any) => { setInput(event.target.value) handler(event.target.value) diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.types.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.types.ts new file mode 100644 index 00000000000..4ce7e40a845 --- /dev/null +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetImport.types.ts @@ -0,0 +1,8 @@ +import { Dictionary } from '@supabase/grid' + +export interface SpreadsheetData { + headers: string[] + rows: any[] + rowCount: number + columnTypeMap: Dictionary +} From b04d6a623d0103cc7d710a06d262af6b994b0728 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 14 Dec 2021 15:04:32 +0700 Subject: [PATCH 137/166] Improve UX for errors when validating uploaded CSV (prior to saving) --- .../SpreadSheetFileUpload.tsx | 9 +- .../SpreadsheetImport/SpreadsheetImport.tsx | 186 +++++++++--------- .../SpreadsheetImport.utils.ts | 15 +- .../SpreadsheetImport/SpreadsheetPreview.tsx | 39 ++++ 4 files changed, 152 insertions(+), 97 deletions(-) create mode 100644 studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadsheetPreview.tsx diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx index 5957fbcdaa4..319a1f68d3e 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx @@ -1,5 +1,5 @@ import { DragEvent, useRef, useState, FC } from 'react' -import { Button, Typography, IconLoader } from '@supabase/ui' +import { Button, Typography, IconLoader, IconFileText } from '@supabase/ui' import SparkBar from 'components/ui/SparkBar' interface Props { @@ -62,8 +62,11 @@ const SpreadSheetFileUpload: FC = ({
) : ( -
- {uploadedFile.name} +
+
+ + {uploadedFile.name} +
{parseProgress === 100 ? (