From 96642425bbcd21b3954acfda14cbba0fd908e6cb Mon Sep 17 00:00:00 2001
From: dannykng
Date: Thu, 12 Jan 2023 11:49:59 -0800
Subject: [PATCH 01/34] Move docs
---
apps/docs/pages/guides/{ => database}/api.mdx | 0
apps/docs/pages/guides/{ => database}/api/generating-types.mdx | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename apps/docs/pages/guides/{ => database}/api.mdx (100%)
rename apps/docs/pages/guides/{ => database}/api/generating-types.mdx (100%)
diff --git a/apps/docs/pages/guides/api.mdx b/apps/docs/pages/guides/database/api.mdx
similarity index 100%
rename from apps/docs/pages/guides/api.mdx
rename to apps/docs/pages/guides/database/api.mdx
diff --git a/apps/docs/pages/guides/api/generating-types.mdx b/apps/docs/pages/guides/database/api/generating-types.mdx
similarity index 100%
rename from apps/docs/pages/guides/api/generating-types.mdx
rename to apps/docs/pages/guides/database/api/generating-types.mdx
From b41031c0c33f551e3d6eeeba0aae8448fa1a7b8a Mon Sep 17 00:00:00 2001
From: dannykng
Date: Thu, 12 Jan 2023 11:53:10 -0800
Subject: [PATCH 02/34] Update links
---
README.md | 6 +--
apps/docs/components/MDX/quickstart_intro.mdx | 2 +-
.../Navigation/Navigation.constants.ts | 4 +-
.../NavigationMenu.constants.ts | 4 +-
.../javascript/v1/generating-types.mdx | 2 +-
.../database/connecting-to-postgres.mdx | 8 ++--
apps/docs/pages/guides/database/tables.mdx | 2 +-
.../pages/guides/functions/best-practices.mdx | 2 +-
.../pages/guides/getting-started/features.mdx | 4 +-
.../tutorials/with-redwoodjs.mdx | 2 +-
.../guides/integrations/integrations.mdx | 4 +-
apps/docs/pages/guides/platform.mdx | 2 +-
apps/docs/pages/guides/platform/logs.mdx | 2 +-
apps/docs/public/sitemap.xml | 4 +-
.../_alternatives/supabase-vs-firebase.mdx | 2 +-
.../supabase-vs-heroku-postgres.mdx | 5 +-
.../_blog/2021-10-28-supabase-series-a.mdx | 2 +-
.../2021-11-05-supabase-beta-october-2021.mdx | 2 +-
apps/www/_blog/2021-12-03-pg-graphql.mdx | 47 ++++++++-----------
.../_blog/2022-03-30-supabase-enterprise.mdx | 2 +-
.../2022-03-31-supabase-edge-functions.mdx | 2 +-
...1-02-supabase-beta-update-october-2022.mdx | 10 ++--
.../2022-12-16-launch-week-6-wrap-up.mdx | 2 +-
apps/www/pages/launch-week/index.tsx | 2 +-
i18n/README.bg.md | 6 +--
i18n/README.bn.md | 6 +--
i18n/README.fi.md | 6 +--
i18n/README.hi.md | 6 +--
i18n/README.jp.md | 6 +--
i18n/README.ko.md | 6 +--
i18n/README.pt-br.md | 6 +--
i18n/README.sr.md | 6 +--
i18n/README.ta.md | 6 +--
i18n/README.vi-vn.md | 6 +--
i18n/README.zh-cn.md | 6 +--
spec/examples/examples.yml | 2 +-
spec/supabase_dart_v0.yml | 2 +-
spec/supabase_dart_v1.yml | 2 +-
spec/supabase_js_v1.yml | 2 +-
spec/supabase_js_v2.yml | 2 +-
.../Home/NewProjectPanel/NewProjectPanel.tsx | 2 +-
.../layouts/AccountLayout/AccountLayout.tsx | 2 +-
.../layouts/DocsLayout/DocsLayout.utils.tsx | 2 +-
.../Docs/Pages/Tables/Introduction.tsx | 8 ++--
44 files changed, 104 insertions(+), 110 deletions(-)
diff --git a/README.md b/README.md
index 304eceed468..f4c8b99e41f 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,9 @@
- [x] Hosted Postgres Database. [Docs](https://supabase.com/docs/guides/database)
- [x] Authentication and Authorization. [Docs](https://supabase.com/docs/guides/auth)
- [x] Auto-generated APIs.
- - [x] REST. [Docs](https://supabase.com/docs/guides/api#rest-api)
- - [x] Realtime subscriptions. [Docs](https://supabase.com/docs/guides/api#realtime-api)
- - [x] GraphQL (Beta). [Docs](https://supabase.com/docs/guides/api#graphql-api)
+ - [x] REST. [Docs](https://supabase.com/docs/guides/database/api#rest-api)
+ - [x] Realtime subscriptions. [Docs](https://supabase.com/docs/guides/database/api#realtime-api)
+ - [x] GraphQL (Beta). [Docs](https://supabase.com/docs/guides/database/api#graphql-api)
- [x] Functions.
- [x] Database Functions. [Docs](https://supabase.com/docs/guides/database/functions)
- [x] Edge Functions [Docs](https://supabase.com/docs/guides/functions)
diff --git a/apps/docs/components/MDX/quickstart_intro.mdx b/apps/docs/components/MDX/quickstart_intro.mdx
index 59e0e01da5c..f0e62650870 100644
--- a/apps/docs/components/MDX/quickstart_intro.mdx
+++ b/apps/docs/components/MDX/quickstart_intro.mdx
@@ -4,6 +4,6 @@ This example provides the steps to build a basic user management app. It include
- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email).
- Supabase [Storage](/docs/guides/storage): users can upload a photo.
- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data.
-- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables.
+- Instant [APIs](/docs/guides/database/api): APIs will be automatically generated when you create your database tables.
By the end of this guide you'll have an app which allows users to login and update some basic profile details:
diff --git a/apps/docs/components/Navigation/Navigation.constants.ts b/apps/docs/components/Navigation/Navigation.constants.ts
index b0d769e6ea3..ab1a7dce36e 100644
--- a/apps/docs/components/Navigation/Navigation.constants.ts
+++ b/apps/docs/components/Navigation/Navigation.constants.ts
@@ -178,8 +178,8 @@ export const menuItems: NavMenu = {
name: 'Serverless APIs',
url: undefined,
items: [
- { name: 'Overview', url: '/guides/api', items: [] },
- { name: 'Generating Types', url: '/guides/api/generating-types', items: [] },
+ { name: 'Overview', url: '/guides/database/api', items: [] },
+ { name: 'Generating Types', url: '/guides/database/api/generating-types', items: [] },
],
},
{
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index 7abe1bea978..2e7b12d4aef 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -365,8 +365,8 @@ export const database = {
name: 'Serverless APIs',
url: undefined,
items: [
- { name: 'Overview', url: '/guides/api', items: [] },
- { name: 'Generating Types', url: '/guides/api/generating-types', items: [] },
+ { name: 'Overview', url: '/guides/database/api', items: [] },
+ { name: 'Generating Types', url: '/guides/database/api/generating-types', items: [] },
],
},
{
diff --git a/apps/docs/docs/reference/javascript/v1/generating-types.mdx b/apps/docs/docs/reference/javascript/v1/generating-types.mdx
index 033cfdb9165..a46fd7ba70d 100644
--- a/apps/docs/docs/reference/javascript/v1/generating-types.mdx
+++ b/apps/docs/docs/reference/javascript/v1/generating-types.mdx
@@ -8,7 +8,7 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
-Supabase will soon release native type generators that dump your database types for various languages. For now, we support TypeScript [through third-party tools](/docs/guides/api/generating-types).
+Supabase will soon release native type generators that dump your database types for various languages. For now, we support TypeScript [through third-party tools](/docs/guides/database/api/generating-types).
## Usage with TypeScript
diff --git a/apps/docs/pages/guides/database/connecting-to-postgres.mdx b/apps/docs/pages/guides/database/connecting-to-postgres.mdx
index 13bade73e20..4ced4b92084 100644
--- a/apps/docs/pages/guides/database/connecting-to-postgres.mdx
+++ b/apps/docs/pages/guides/database/connecting-to-postgres.mdx
@@ -28,15 +28,15 @@ You can use these simple questions to determine which connection method to use:
## API
-Supabase provides an auto-updating [API](/docs/guides/api). This is the easiest way to get started if you are managing data (fetching, inserting, updating).
+Supabase provides an auto-updating [API](/docs/guides/database/api). This is the easiest way to get started if you are managing data (fetching, inserting, updating).
### Interfaces
We provides several types of API to suit your preferences and use-case:
-- [REST](/docs/guides/api#rest-api): interact with your database through a REST interface.
-- [GraphQL](/docs/guides/api#graphql-api): interact with your database through a GraphQL interface.
-- [Realtime](/docs/guides/api#realtime-api): listen to database changes over websockets.
+- [REST](/docs/guides/database/api#rest-api): interact with your database through a REST interface.
+- [GraphQL](/docs/guides/database/api#graphql-api): interact with your database through a GraphQL interface.
+- [Realtime](/docs/guides/database/api#realtime-api): listen to database changes over websockets.
You cannot manage the database schema via the API (for security reasons). To do that you can use the dashboard or connect directly to your database.
diff --git a/apps/docs/pages/guides/database/tables.mdx b/apps/docs/pages/guides/database/tables.mdx
index 3a8caa24c19..60931dcf285 100644
--- a/apps/docs/pages/guides/database/tables.mdx
+++ b/apps/docs/pages/guides/database/tables.mdx
@@ -166,7 +166,7 @@ create table movies (
## Loading data
-There are several ways to load data in Supabase. You can load data directly into the database or using the [APIs](../../guides/api).
+There are several ways to load data in Supabase. You can load data directly into the database or using the [APIs](../../guides/database/api).
Use the "Bulk Loading" instructions if you are loading large data sets.
### Basic data loading
diff --git a/apps/docs/pages/guides/functions/best-practices.mdx b/apps/docs/pages/guides/functions/best-practices.mdx
index b670cd73a05..99f58fed04d 100644
--- a/apps/docs/pages/guides/functions/best-practices.mdx
+++ b/apps/docs/pages/guides/functions/best-practices.mdx
@@ -9,7 +9,7 @@ export const meta = {
## Database Functions vs Edge Functions
For data-intensive operations we recommend using [Database Functions](/docs/guides/database/functions), which are executed within your database
-and can be called remotely using the [REST and GraphQL API](/docs/guides/api).
+and can be called remotely using the [REST and GraphQL API](/docs/guides/database/api).
For use-cases which require low-latency we recommend [Edge Functions](/docs/guides/functions), which are globally-distributed and can be written in TypeScript.
diff --git a/apps/docs/pages/guides/getting-started/features.mdx b/apps/docs/pages/guides/getting-started/features.mdx
index c1e1a0dcfc9..cea9680d3c1 100755
--- a/apps/docs/pages/guides/getting-started/features.mdx
+++ b/apps/docs/pages/guides/getting-started/features.mdx
@@ -84,11 +84,11 @@ Build login and registration pages with custom themes. [Docs](/docs/guides/auth/
### Auto-generated REST API
-RESTful APIs are autogenerated from your database, without a single line of code. [Docs](/docs/guides/api#rest-api-overview).
+RESTful APIs are autogenerated from your database, without a single line of code. [Docs](/docs/guides/database/api#rest-api-overview).
### Auto-generated GraphQL API
-Fast GraphQL APIs using our custom Postgres GraphQL extension. [Docs](/docs/guides/api#graphql-api-overview).
+Fast GraphQL APIs using our custom Postgres GraphQL extension. [Docs](/docs/guides/database/api#graphql-api-overview).
### Realtime Database changes
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
index cae8504a010..c32611a4251 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
@@ -27,7 +27,7 @@ This example provides the steps to build a simple user management app (from scra
- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data.
- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email).
- Supabase [Storage](/docs/guides/storage): users can upload a photo.
-- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables.
+- Instant [APIs](/docs/guides/database/api): APIs will be automatically generated when you create your database tables.
- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data.
By the end of this guide you'll have an app which allows users to login and update some basic profile details:
diff --git a/apps/docs/pages/guides/integrations/integrations.mdx b/apps/docs/pages/guides/integrations/integrations.mdx
index de7a444ec58..a42b311571d 100644
--- a/apps/docs/pages/guides/integrations/integrations.mdx
+++ b/apps/docs/pages/guides/integrations/integrations.mdx
@@ -16,8 +16,8 @@ The Supabase Marketplace brings together all the tools you need to extend your S
Supabase provides several integration points:
- The [Postgres connection](/docs/guides/database/connecting-to-postgres). Anything that works with Postgres also works with Supabase projects.
-- The [Project REST API](/docs/guides/api#rest-api) & client libraries.
-- The [Project GraphQL API](/docs/guides/api#graphql-api).
+- The [Project REST API](/docs/guides/database/api#rest-api) & client libraries.
+- The [Project GraphQL API](/docs/guides/database/api#graphql-api).
- The [Platform API](/docs/reference/api).
## List your integration
diff --git a/apps/docs/pages/guides/platform.mdx b/apps/docs/pages/guides/platform.mdx
index 8f734fdcd77..7a38fa2b167 100644
--- a/apps/docs/pages/guides/platform.mdx
+++ b/apps/docs/pages/guides/platform.mdx
@@ -16,7 +16,7 @@ Visit [app.supabase.com](https://app.supabase.com) and sign in to start creating
Each project on Supabase comes with:
- A dedicated [Postgres database](/docs/guides/database)
-- [Auto-generated APIs](/docs/guides/api)
+- [Auto-generated APIs](/docs/guides/database/api)
- [Auth and user management](/docs/guides/auth)
- [Edge Functions](/docs/guides/functions)
- [Realtime API](/docs/guides/realtime)
diff --git a/apps/docs/pages/guides/platform/logs.mdx b/apps/docs/pages/guides/platform/logs.mdx
index 0754840cd7d..f7d0f4d14be 100644
--- a/apps/docs/pages/guides/platform/logs.mdx
+++ b/apps/docs/pages/guides/platform/logs.mdx
@@ -29,7 +29,7 @@ Supabase provides a logging interface specific to each product. You can use simp
>
-[API logs](https://app.supabase.com/project/_/database/api-logs) show all network requests and response for the REST and GraphQL [APIs](../../guides/api).
+[API logs](https://app.supabase.com/project/_/database/api-logs) show all network requests and response for the REST and GraphQL [APIs](../../guides/database/api).

diff --git a/apps/docs/public/sitemap.xml b/apps/docs/public/sitemap.xml
index 2e86001d252..76f95fcd07d 100644
--- a/apps/docs/public/sitemap.xml
+++ b/apps/docs/public/sitemap.xml
@@ -25,7 +25,7 @@
- https://supabase.com/docs/guides/api
+ https://supabase.com/docs/guides/database/api
weekly
0.5
@@ -127,7 +127,7 @@
- https://supabase.com/docs/guides/api/generating-types
+ https://supabase.com/docs/guides/database/api/generating-types
weekly
0.5
diff --git a/apps/www/_alternatives/supabase-vs-firebase.mdx b/apps/www/_alternatives/supabase-vs-firebase.mdx
index 0ae182bebcc..ac4f8fd444c 100644
--- a/apps/www/_alternatives/supabase-vs-firebase.mdx
+++ b/apps/www/_alternatives/supabase-vs-firebase.mdx
@@ -28,7 +28,7 @@ Supabase is an open source firebase alternative, but instead of being built arou
At Supabase we’ve always been huge fans of Firebase - so we started adding a few things on top of PostgreSQL in an attempt to reach feature parity, including:
-- Auto-generated API - [query your data straight from the client](https://supabase.com/docs/guides/api#rest-api-2).
+- Auto-generated API - [query your data straight from the client](https://supabase.com/docs/guides/database/api#rest-api-2).
- Realtime - [changes in your data will be streamed directly to your application](https://supabase.com/docs/reference/dart/subscribe).
- Auth - [a simple to integrate auth system and SQL based rules engine](https://supabase.com/auth).
- Functions - [javascript and typescript functions that deploy out globally](https://supabase.com/edge-functions).
diff --git a/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx b/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx
index c25b9e4f414..78d2e42dffd 100644
--- a/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx
+++ b/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx
@@ -12,12 +12,11 @@ toc_depth: 3
Heroku is a cloud application platform that offers managed PostgreSQL as a service. They offer 5 levels of Postgres support from the Hobby Tier up to the Shield Tier, each with different levels of features and pricing. Heroku announced that starting November 28, 2022, they will [stop offering free product plans and will shut down free dynos and data services](https://blog.heroku.com/next-chapter). Since the announcement, developers started migrating their projects to Supabase.
-
## What is Supabase?
Supabase also offers managed Postgres, the main difference is that with each deployment you also get:
-- Auto-generated API - [never write an API again](https://supabase.com/docs/guides/api#rest-api-2)
+- Auto-generated API - [never write an API again](https://supabase.com/docs/guides/database/api#rest-api-2)
- Realtime - [subscribe to data changes via websockets](https://supabase.com/docs/reference/dart/subscribe)
- Auth - [users can log in and out of your application](https://supabase.com/auth)
- Functions - [deploy custom logic to the edge](https://supabase.com/edge-functions)
@@ -44,7 +43,7 @@ These are some of the key differences between Heroku Postgres and Supabase in te
- Supabase is more than just the raw database, it also comes with:
- [Connection pooling](https://supabase.com/docs/guides/database/connecting-to-postgres#connection-pool) so that you won’t run out of connections in a serverless environment.
- - [Auto-generated APIs](https://supabase.com/docs/guides/api#rest-api-2) based on your schema, so you can communicate with your database directly from the client.
+ - [Auto-generated APIs](https://supabase.com/docs/guides/database/api#rest-api-2) based on your schema, so you can communicate with your database directly from the client.
- [Realtime API](https://supabase.com/docs/reference/dart/subscribe) is useful for when you want to subscribe to changes to your database over websockets.
- [Auth API](https://supabase.com/auth) can be used to leverage Postgres’s Row Level Security model, and control access to sensitive data on a per user, or per group level.
- [Functions](https://supabase.com/edge-functions) can be deployed out to the edge directly from the Supabase CLI, which means you can run sensitive business logic or transformations in a serverless fashion.
diff --git a/apps/www/_blog/2021-10-28-supabase-series-a.mdx b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
index 4a5e9a67f48..d25724eb472 100644
--- a/apps/www/_blog/2021-10-28-supabase-series-a.mdx
+++ b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
@@ -217,7 +217,7 @@ User-facing applications usually require tools beyond just a database and fronte
- **File Storage:** for large images and media.
Supabase makes all of this easy. Beyond the database we offer [Auth](/docs/guides/auth),
-RESTful and Realtime [APIs](/docs/guides/api), a [Storage](/docs/guides/storage)
+RESTful and Realtime [APIs](/docs/guides/database/api), a [Storage](/docs/guides/storage)
system for large files, and a bunch of other tools - all wrapped up into a simple-to-use Dashboard.

diff --git a/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx b/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
index 41c6b0df8de..7ae87740a6a 100644
--- a/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
+++ b/apps/www/_blog/2021-11-05-supabase-beta-october-2021.mdx
@@ -88,7 +88,7 @@ Learn about all the exciting features of Auth within Supabase. [Docs](https://su
### API Features
-Learn more about the power of PostgREST for RESTful APIs. [Docs](https://supabase.com/docs/guides/api#restful-api).
+Learn more about the power of PostgREST for RESTful APIs. [Docs](https://supabase.com/docs/guides/database/api#restful-api).
You can generate types from your database either through the{' '}
- Supabase CLI,
- or by downloading the types file via the button on the right and importing it in your
+
+ Supabase CLI
+
+ , or by downloading the types file via the button on the right and importing it in your
application within src/index.ts.
From 0d977106dc99e213753e2c38276c19c195a9de51 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Thu, 12 Jan 2023 11:55:22 -0800
Subject: [PATCH 03/34] Add redirects
---
apps/www/lib/redirects.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/apps/www/lib/redirects.js b/apps/www/lib/redirects.js
index 1e992b67d9e..de50060f023 100644
--- a/apps/www/lib/redirects.js
+++ b/apps/www/lib/redirects.js
@@ -1886,4 +1886,14 @@ module.exports = [
source: '/legal/soc2',
destination: 'https://forms.supabase.com/soc2',
},
+ {
+ permanent: true,
+ source: '/docs/guides/api',
+ destination: '/docs/guides/database/api',
+ },
+ {
+ permanent: true,
+ source: '/docs/guides/api/generating-types',
+ destination: '/docs/guides/database/api/generating-types',
+ },
]
From 38e667b8a8290ead8922298ec13765684e7f701b Mon Sep 17 00:00:00 2001
From: Hadi Mahdavi
Date: Fri, 13 Jan 2023 20:58:02 +0330
Subject: [PATCH 04/34] Change direction to rtl
web page direction in fasi/persian is rtl
---
i18n/README.fa.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/i18n/README.fa.md b/i18n/README.fa.md
index 3652a6fd3c6..6c2cccb7e8e 100644
--- a/i18n/README.fa.md
+++ b/i18n/README.fa.md
@@ -1,3 +1,5 @@
+
+
@@ -87,3 +89,5 @@
[](https://github.com/sponsors/supabase)
+
+
From c8cbf55ea836ad7abd597cfa51fd5d218753235b Mon Sep 17 00:00:00 2001
From: dannykng
Date: Fri, 20 Jan 2023 16:17:47 -0800
Subject: [PATCH 05/34] Update titles
---
.../tutorials/with-angular.mdx | 22 +--
.../getting-started/tutorials/with-expo.mdx | 17 +-
.../tutorials/with-flutter.mdx | 16 +-
.../tutorials/with-ionic-angular.mdx | 18 +-
.../tutorials/with-ionic-react.mdx | 16 +-
.../tutorials/with-ionic-vue.mdx | 16 +-
.../getting-started/tutorials/with-nextjs.mdx | 29 ++-
.../getting-started/tutorials/with-nuxt-3.mdx | 20 +-
.../getting-started/tutorials/with-react.mdx | 16 +-
.../tutorials/with-redwoodjs.mdx | 180 ++----------------
.../tutorials/with-solidjs.mdx | 16 +-
.../getting-started/tutorials/with-svelte.mdx | 16 +-
.../tutorials/with-sveltekit.mdx | 16 +-
.../getting-started/tutorials/with-vue-3.mdx | 16 +-
14 files changed, 92 insertions(+), 322 deletions(-)
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-angular.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-angular.mdx
index 8f2754453f9..0b2115624dc 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-angular.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-angular.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-angular',
- title: 'Quickstart: Angular',
+ title: 'Build a User Management App with Angular',
description: 'Learn how to use Supabase in your Angular App.',
- sidebar_label: 'Angular',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/angular-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/angular-user-management).
+
@@ -195,11 +194,7 @@ export class AuthComponent implements OnInit {
/>
-
+
{{ loading ? 'Loading' : 'Send magic link' }}
@@ -530,13 +525,8 @@ export class AccountComponent implements OnInit {
}
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-expo.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-expo.mdx
index b60db313a51..589e3d6d33b 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-expo.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-expo.mdx
@@ -1,20 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-expo',
- title: 'Quickstart: Expo',
+ title: 'Build a User Management App with Expo',
description: 'Learn how to use Supabase in your React Native App.',
- sidebar_label: 'Expo',
- hide_table_of_contents: false,
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/expo-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/expo-user-management).
+
@@ -500,13 +498,8 @@ Now you will need to run the prebuild command to get the application working on
expo prebuild
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx
index 6a73c7aa8ab..5e5d77994f0 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-flutter',
- title: 'Quickstart: Flutter',
+ title: 'Build a User Management App with Flutter',
description: 'Learn how to use Supabase in your Flutter App.',
- sidebar_label: 'Flutter',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/flutter-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/flutter-user-management).
+
@@ -77,7 +76,7 @@ Add an intent-filter to enable deep linking:
```
-For iOS, edit the ios/Runner/Info.plist file.
+For iOS, edit the ios/Runner/Info.plist file.
Add CFBundleURLTypes to enable deep linking:
@@ -793,14 +792,13 @@ class _AccountPageState extends State {
}
```
-Congratulations, that is it! You have now built a fully functional user management app using Flutter and Supabase!
+Congratulations, you've built a fully functional user management app using Flutter and Supabase!
## See also
- [Flutter Tutorial: building a Flutter chat app](https://supabase.com/blog/flutter-tutorial-building-a-chat-app)
- [Flutter Tutorial - Part 2: Authentication and Authorization with RLS](https://supabase.com/blog/flutter-authentication-and-authorization-with-rls)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-angular.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-angular.mdx
index 88c1d9e6433..a9c4ec599e6 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-angular.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-angular.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-ionic-angular',
- title: 'Quickstart: Ionic Angular',
+ title: 'Build a User Management App with Ionic Angular',
description: 'Learn how to use Supabase in your Ionic Angular App.',
- sidebar_label: 'Ionic Angular',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/mhartington/supabase-ionic-angular).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/mhartington/supabase-ionic-angular).
+
@@ -522,14 +521,9 @@ template: `
`
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
-## Resources
+## See also
- [Authentication in Ionic Angular with Supabase](https://supabase.com/blog/authentication-in-ionic-angular)
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-react.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-react.mdx
index c14bb343ed3..8fd16025c55 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-react.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-react.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-ionic-react',
- title: 'Quickstart: Ionic React',
+ title: 'Build a User Management App with Ionic React',
description: 'Learn how to use Supabase in your Ionic React App.',
- sidebar_label: 'Ionic React',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/mhartington/supabase-ionic-react).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/mhartington/supabase-ionic-react).
+
@@ -495,13 +494,8 @@ return (
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-vue.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-vue.mdx
index 2f368771b78..6aea2ce3406 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-ionic-vue.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-ionic-vue.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-ionic-vue',
- title: 'Quickstart: Ionic Vue',
+ title: 'Build a User Management App with Ionic Vue',
description: 'Learn how to use Supabase in your Ionic Vue App.',
- sidebar_label: 'Ionic Vue',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/mhartington/supabase-ionic-vue).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/mhartington/supabase-ionic-vue).
+
@@ -555,13 +554,8 @@ export default defineComponent({
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx
index 81b86e96b2f..f17b835107c 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx
@@ -1,17 +1,15 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-nextjs',
- title: 'Quickstart: Next.js',
+ title: 'Build a User Management App with NextJS',
description: 'Learn how to use Supabase in your Next App.',
- sidebar_label: 'Next.js',
}

-### Video Guide
+## Video Guide
-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management).
+
@@ -718,17 +717,15 @@ return (
)
```
-## Next steps
-
At this stage you have a fully functional application!
-- See the complete [example on GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management) and deploy it to Vercel.
-- Explore the [pre-built Auth UI for React](/docs/guides/auth/auth-helpers/auth-ui).
-- Explore the [Auth Helpers for Next.js](/docs/guides/auth/auth-helpers/nextjs).
-- Explore the [Supabase Cache Helpers](https://github.com/psteinroe/supabase-cache-helpers).
-- See the [Next.js Subscription Payments Starter](https://github.com/vercel/nextjs-subscription-payments) template on GitHub.
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
+## See also
+
+- See the complete [example on GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management) and deploy it to Vercel
+- Explore the [pre-built Auth UI for React](/docs/guides/auth/auth-helpers/auth-ui)
+- Explore the [Auth Helpers for Next.js](/docs/guides/auth/auth-helpers/nextjs)
+- Explore the [Supabase Cache Helpers](https://github.com/psteinroe/supabase-cache-helpers)
+- See the [Next.js Subscription Payments Starter](https://github.com/vercel/nextjs-subscription-payments) template on GitHub
export const Page = ({ children }) =>
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-nuxt-3.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-nuxt-3.mdx
index b4f5af0a1a3..b70aaa4cf41 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-nuxt-3.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-nuxt-3.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-nuxt-3',
- title: 'Quickstart: Nuxt 3',
+ title: 'Build a User Management App with Nuxt 3',
description: 'Learn how to use Supabase in your Nuxt 3 App.',
- sidebar_label: 'Nuxt 3',
}

-### Github
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/nuxt3-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nuxt3-user-management).
+
@@ -418,14 +417,7 @@ And then we can add the widget to the Account page:
```
-That is it! You should now be able to upload a profile photo to Supabase Storage.
-
-## Next steps
-
-At this stage you have a fully functional application!
-
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
+That is it! You should now be able to upload a profile photo to Supabase Storage and you have a fully functional application.
export const Page = ({ children }) =>
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-react.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-react.mdx
index 7d1418b7146..57fc2def7bf 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-react.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-react.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-react',
- title: 'Quickstart: React',
+ title: 'Build a User Management App with React',
description: 'Learn how to use Supabase in your React App.',
- sidebar_label: 'React',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/react-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/react-user-management).
+
@@ -397,13 +396,8 @@ return (
)
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
index cae8504a010..de65c198f93 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-redwoodjs.mdx
@@ -1,49 +1,19 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-redwoodjs',
- title: 'Quickstart: RedwoodJS',
+ title: 'Build a User Management App with RedwoodJS',
description: 'Learn how to use Supabase in your RedwoodJS App.',
- sidebar_label: 'RedwoodJS',
}
-## Intro
-
-For the sake of consistency with the other framework Quickstart examples, we'll build a RedwoodJS a little differently than normal.
-
-We **_won't use_** Prisma to connect to the Supabase Postgres database or [Prisma migrations](https://redwoodjs.com/docs/cli-commands#prisma-migrate) as one typically might in a Redwood app.
-Instead, we'll rely on the Supabase client to do some of the work on the **web** side and use the client again on the **API** side to do data fetching as well.
-
-That means you will want to refrain from running any `yarn rw prisma migrate` commands and also double check your build commands on deployment to ensure Prisma won't reset your database.
-
-
-
-TLDR; Prisma currently doesn't support cross-schema foreign keys, so introspecting the schema fails due to how your Supabase `public` schema references the `auth.users`.
-
-
-
-This example provides the steps to build a simple user management app (from scratch!) using Supabase and [RedwoodJS](https://redwoodjs.com/docs/introduction). It includes:
-
-- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data.
-- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email).
-- Supabase [Storage](/docs/guides/storage): users can upload a photo.
-- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables.
-- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data.
-
-By the end of this guide you'll have an app which allows users to login and update some basic profile details:
+

-
-Note: For RedwoodJS apps, port will be 8910
-
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/redwoodjs/redwoodjs-supabase-quickstart).
-### GitHub
-
-If you get stuck at any point, take a look at [this repo](https://github.com/redwoodjs/redwoodjs-supabase-quickstart).
-
{/* ## Video demo */}
{/* Coming soon. */}
@@ -84,128 +54,14 @@ The **`web side`** is built with React. Redwood's router makes it simple to map
Pages may contain a "Layout" component to wrap content. They also contain "Cells" and regular React components.
Cells allow you to declaratively manage the lifecycle of a component that fetches and displays data.
-
-
-For the sake of consistency with the other framework Quickstart examples, we'll build a RedwoodJS a little differently than normal.
+For the sake of consistency with the other framework tutorials, we'll build this app a little differently than normal.
We **_won't use_** Prisma to connect to the Supabase Postgres database or [Prisma migrations](https://redwoodjs.com/docs/cli-commands#prisma-migrate) as one typically might in a Redwood app.
Instead, we'll rely on the Supabase client to do some of the work on the **`web`** side and use the client again on the **`api`** side to do data fetching as well.
-
+That means you will want to refrain from running any `yarn rw prisma migrate` commands and also double check your build commands on deployment to ensure Prisma won't reset your database. Prisma currently doesn't support cross-schema foreign keys, so introspecting the schema fails due
+to how your Supabase `public` schema references the `auth.users`.
-## Project set up
-
-Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase
-and then creating a "schema" inside the database.
-
-
-
-When setting up Supabase, you'll interact with your project dashboard. However, most of the RedwoodJS setup steps will interact with the [Redwood CLI](https://redwoodjs.com/docs/cli-commands) to generate routes, pages, components, and more.
-So be sure to have a terminal at the ready and in your project directory.
-
-
-
-### Create a project
-
-1. Go to [app.supabase.com](https://app.supabase.com).
-1. Click on "New Project".
-1. Enter your project details.
-1. Wait for the new database to launch.
-
-### Set up the database schema
-
-Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor,
-or you can just copy/paste the SQL from below and run it yourself.
-
-
-
-
-1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard.
-2. Click **User Management Starter**.
-3. Click **Run**.
-
-
-
-
-
-
-
-
-```sql
--- Create a table for public "profiles"
-create table profiles (
- id uuid references auth.users not null,
- updated_at timestamp with time zone,
- username text unique,
- avatar_url text,
- website text,
-
- primary key (id),
- unique(username),
- constraint username_length check (char_length(username) >= 3)
-);
-
-alter table profiles enable row level security;
-
-create policy "Public profiles are viewable by everyone."
- on profiles for select
- using ( true );
-
-create policy "Users can insert their own profile."
- on profiles for insert
- with check ( auth.uid() = id );
-
-create policy "Users can update own profile."
- on profiles for update
- using ( auth.uid() = id );
-
--- Set up Realtime!
-begin;
- drop publication if exists supabase_realtime;
- create publication supabase_realtime;
-commit;
-alter publication supabase_realtime add table profiles;
-
--- Set up Storage!
-insert into storage.buckets (id, name)
-values ('avatars', 'avatars');
-
-create policy "Avatar images are publicly accessible."
- on storage.objects for select
- using ( bucket_id = 'avatars' );
-
-create policy "Anyone can upload an avatar."
- on storage.objects for insert
- with check ( bucket_id = 'avatars' );
-
-```
-
-
-
-
-#### Important Note about Prisma and Migrations
-
-
-
-Because this Quick Start does not use Prisma to manage the database schema, seed it, or run migrations, you **need** to take extra care when running some of the typical Redwood CLI commands.
-
-
-
-### Get the API Keys
-
-Now that you've created some database tables, you are ready to insert data using the auto-generated API.
-We just need to get the URL as well as the `anon`, `service_role` and `JWT_SECRET` keys from the API settings.
-
-1. Go to the [API Settings](https://app.supabase.com/project/_/settings/api) page in the Dashboard.
-2. Find your API `URL`, `anon`, and `service_role` keys on this page.
-
-
-
-
+
## Building the App
@@ -281,7 +137,7 @@ And finally, you will also need to save **just** the `web side` environment vari
```bash title=redwood.toml
[web]
- title = "Supabase Redwood Quickstart"
+ title = "Supabase Redwood Tutorial"
port = 8910
apiProxyPath = "/.redwood/functions"
includeEnvironmentVariables = ["SUPABASE_URL", "SUPABASE_KEY"]
@@ -333,9 +189,7 @@ yarn rw dev
```
-
-Note: You can also use the alias `rw` for `redwood`, as in `yarn rw` to run Redwood CLI commands
-
+ `rw` is an alias for `redwood`, as in `yarn rw` to run Redwood CLI commands.
You should see a "Welcome to RedwoodJS" page and a message about not having any pages yet.
@@ -355,7 +209,7 @@ yarn rw generate page home /
-Note: the slash `/` is important here as it creates a root level route.
+The `/` is important here as it creates a root level route.
@@ -591,14 +445,10 @@ const Account = () => {
export default Account
```
-
-
-Note: You'll see the use of `useAuth()` several times in the quickstart. Redwood's `useAuth` hook provides convenient ways to access
+You'll see the use of `useAuth()` several times. Redwood's `useAuth` hook provides convenient ways to access
logIn, logOut, currentUser, and access the `supabase` authenticate client. We'll use it to get an instance
of the supabase client to interact with your API.
-
-
### Update Home Page
Now that we have all the components in place, let's update your `HomePage` page to use them:
@@ -771,12 +621,10 @@ return (
)
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
+## See also
+
- Learn more about [RedwoodJS](https://redwoodjs.com)
- Visit the [RedwoodJS Discourse Community](https://community.redwoodjs.com)
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-solidjs.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-solidjs.mdx
index 7de71d63910..614d72826b5 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-solidjs.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-solidjs.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-solidjs',
- title: 'Quickstart: SolidJS',
+ title: 'Build a User Management App with SolidJS',
description: 'Learn how to use Supabase in your SolidJS App.',
- sidebar_label: 'SolidJS',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/solid-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/solid-user-management).
+
@@ -415,13 +414,8 @@ return (
)
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-svelte.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-svelte.mdx
index 69cdea17b87..69fcb78928c 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-svelte.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-svelte.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-svelte',
- title: 'Quickstart: Svelte',
+ title: 'Build a User Management App with Svelte',
description: 'Learn how to use Supabase in your Svelte App.',
- sidebar_label: 'Svelte',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/svelte-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/svelte-user-management).
+
@@ -368,13 +367,8 @@ And then we can add the widget to the Account page:
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
index bbac06e6019..fdad12022bb 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-sveltekit',
- title: 'Quickstart: SvelteKit',
+ title: 'Build a User Management App wtih SvelteKit',
description: 'Learn how to use Supabase in your SvelteKit App.',
- sidebar_label: 'SvelteKit',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/sveltekit-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/sveltekit-user-management).
+
@@ -434,13 +433,8 @@ And then we can add the widget to the Account page:
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-vue-3.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-vue-3.mdx
index a1ec84a8c92..48923b48f81 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-vue-3.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-vue-3.mdx
@@ -1,19 +1,18 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- id: 'with-vue-3',
- title: 'Quickstart: Vue 3',
+ title: 'Build a User Management App with Vue 3',
description: 'Learn how to use Supabase in your Vue 3 App.',
- sidebar_label: 'Vue 3',
}

-### GitHub
-
-Should you get stuck while working through the guide, refer to [this repo](https://github.com/supabase/supabase/tree/master/examples/user-management/vue3-user-management).
+
+ If you get stuck while working through this guide, refer to the [full example on
+ GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/vue3-user-management).
+
@@ -379,13 +378,8 @@ And then we can add the widget to the Account page:
```
-## Next steps
-
At this stage you have a fully functional application!
-- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
-- Sign in: [app.supabase.com](https://app.supabase.com)
-
export const Page = ({ children }) =>
export default Page
From 44afd20619e91b48c92b06ed51853d5a6a7ec4e2 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Fri, 20 Jan 2023 16:19:17 -0800
Subject: [PATCH 06/34] Update intro and project setup
---
apps/docs/components/MDX/project_setup.mdx | 32 ++++++-------------
apps/docs/components/MDX/quickstart_intro.mdx | 12 +++----
2 files changed, 14 insertions(+), 30 deletions(-)
diff --git a/apps/docs/components/MDX/project_setup.mdx b/apps/docs/components/MDX/project_setup.mdx
index 9efe03df58e..2003a3a2220 100644
--- a/apps/docs/components/MDX/project_setup.mdx
+++ b/apps/docs/components/MDX/project_setup.mdx
@@ -2,22 +2,19 @@ import UserManagementSQLTemplate from './user_management_quickstart_sql_template
import { Tabs } from 'ui'
export const TabPanel = Tabs.Panel
-# Project set up
+## Project setup
-Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase
-and then creating a "schema" inside the database.
+Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase and then creating a "schema" inside the database.
-## Create a project
+### Create a project
-1. Go to [app.supabase.com](https://app.supabase.com).
-1. Click on "New Project".
+1. [Create a new project](https://app.supabase.com) in the Supabase Dashboard.
1. Enter your project details.
1. Wait for the new database to launch.
-## Set up the database schema
+### Set up the database schema
-Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor,
-or you can just copy/paste the SQL from below and run it yourself.
+Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, or you can just copy/paste the SQL from below and run it yourself.
-
-
-
@@ -43,15 +36,10 @@ or you can just copy/paste the SQL from below and run it yourself.
-## Get the API Keys
+### Get the API Keys
Now that you've created some database tables, you are ready to insert data using the auto-generated API.
-We just need to get the URL and `anon` key from the API settings.
+We just need to get the Project URL and `anon` key from the API settings.
-1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard.
-2. Click **API** in the sidebar.
-3. Find your API `URL`, `anon`, and `service_role` keys on this page.
-
-
-
-
+1. Go to the [API Settings](https://app.supabase.com/project/_/settings/api) page in the Dashboard.
+1. Find your Project `URL`, `anon`, and `service_role` keys on this page.
diff --git a/apps/docs/components/MDX/quickstart_intro.mdx b/apps/docs/components/MDX/quickstart_intro.mdx
index 59e0e01da5c..d20d9f32ece 100644
--- a/apps/docs/components/MDX/quickstart_intro.mdx
+++ b/apps/docs/components/MDX/quickstart_intro.mdx
@@ -1,9 +1,5 @@
-This example provides the steps to build a basic user management app. It includes:
+This tutorial demonstrates how to build a basic user management app. The app authenticates and identifies the user, stores their profile information in the database, and allows the user to log in, update their profile details, and upload a profile photo. The app uses:
-- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data.
-- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email).
-- Supabase [Storage](/docs/guides/storage): users can upload a photo.
-- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data.
-- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables.
-
-By the end of this guide you'll have an app which allows users to login and update some basic profile details:
+- [Supabase Database](/docs/guides/database) - a Postgres database for storing your user data and [Row Level Security](/docs/guides/auth#row-level-security) so data is protected and users can only access their own information.
+- [Supabase Auth](/docs/guides/auth) - users log in through magic links sent to their email (without having to set up passwords).
+- [Supabase Storage](/docs/guides/storage) - users can upload a profile photo.
From b82b0186b96debd708d199f005fdc311d3d65526 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Fri, 20 Jan 2023 16:19:34 -0800
Subject: [PATCH 07/34] Update nav menu titles
---
.../Navigation/NavigationMenu/NavigationMenu.constants.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index 40ceb4f47e2..165ae49064e 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -45,7 +45,7 @@ export const gettingstarted = {
{
name: 'Framework Quickstarts',
items: [
- { name: 'ReactJS', url: '/guides/getting-started/quickstarts/reactjs', items: [] },
+ { name: 'React', url: '/guides/getting-started/quickstarts/reactjs', items: [] },
{ name: 'NextJS', url: '/guides/getting-started/quickstarts/nextjs', items: [] },
{ name: 'Flutter', url: '/guides/getting-started/quickstarts/flutter', items: [] },
],
@@ -54,7 +54,7 @@ export const gettingstarted = {
name: 'Web app tutorials',
items: [
{
- name: 'Next.js',
+ name: 'NextJS',
url: '/guides/getting-started/tutorials/with-nextjs',
items: [],
},
From 1fcc1e2ad2c8c17681ed841b6acc0465cb647878 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Fri, 20 Jan 2023 17:12:53 -0800
Subject: [PATCH 08/34] Update Getting Started landing page
---
apps/docs/pages/guides/getting-started.mdx | 61 +++++++++++++++++++++-
apps/docs/pages/index.mdx | 2 +-
2 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/apps/docs/pages/guides/getting-started.mdx b/apps/docs/pages/guides/getting-started.mdx
index 535ee897ec6..820eae29e0c 100644
--- a/apps/docs/pages/guides/getting-started.mdx
+++ b/apps/docs/pages/guides/getting-started.mdx
@@ -36,7 +36,23 @@ export const meta = {
-### Tutorials
+### Framework Quickstarts
+
+
+
+### Web App Tutorials
{webapps.map((item) => {
@@ -52,6 +68,46 @@ export const meta = {
})}
+### Mobile Tutorials
+
+
+
+export const quickstarts = [
+ {
+ title: 'React',
+ href: '/guides/getting-started/quickstarts/reactjs',
+ description:
+ 'Learn how to create a Supabase project, add some sample data to your database, and query the data from a React app.',
+ icon: '/docs/img/icons/react-icon',
+ },
+ {
+ title: 'NextJS',
+ href: '/guides/getting-started/quickstarts/nextjs',
+ description:
+ 'Learn how to create a Supabase project, add some sample data to your database, and query the data from a NextJS app.',
+ icon: '/docs/img/icons/nextjs-icon',
+ },
+ {
+ title: 'Flutter',
+ href: '/guides/getting-started/quickstarts/flutter',
+ description:
+ 'Learn how to create a Supabase project, add some sample data to your database, and query the data from a Flutter app.',
+ icon: '/docs/img/icons/flutter-icon',
+ },
+]
+
export const webapps = [
{
title: 'NextJS',
@@ -109,6 +165,9 @@ export const webapps = [
'Learn how to build a user management app with SvelteKit and Supabase Database, Auth, and Storage functionality.',
icon: '/docs/img/icons/svelte-icon',
},
+]
+
+export const mobile = [
{
title: 'Flutter',
href: '/guides/getting-started/tutorials/with-flutter',
diff --git a/apps/docs/pages/index.mdx b/apps/docs/pages/index.mdx
index 5de1c11462e..96a24c7f756 100644
--- a/apps/docs/pages/index.mdx
+++ b/apps/docs/pages/index.mdx
@@ -110,7 +110,7 @@ export const meta = {
md:items-center md:gap-3
">
Ready to make a fully working app?
- Follow the step-by-step tutorials .
+ Follow the step-by-step tutorials .
From 9b6f0ce32902d36145fc17a14cfc1c9276e0ffa2 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Fri, 27 Jan 2023 17:14:12 -0800
Subject: [PATCH 09/34] Fix prettier changes
---
.../pages/guides/functions/best-practices.mdx | 64 -------------------
apps/www/_blog/2021-12-03-pg-graphql.mdx | 22 +++----
.../Docs/Pages/Tables/Introduction.tsx | 6 +-
3 files changed, 13 insertions(+), 79 deletions(-)
delete mode 100644 apps/docs/pages/guides/functions/best-practices.mdx
diff --git a/apps/docs/pages/guides/functions/best-practices.mdx b/apps/docs/pages/guides/functions/best-practices.mdx
deleted file mode 100644
index 99f58fed04d..00000000000
--- a/apps/docs/pages/guides/functions/best-practices.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-import Layout from '~/layouts/DefaultGuideLayout'
-
-export const meta = {
- id: 'functions-best-practices',
- title: 'Edge Functions Best Practices',
- description: 'Globally distributed TypeScript functions.',
-}
-
-## Database Functions vs Edge Functions
-
-For data-intensive operations we recommend using [Database Functions](/docs/guides/database/functions), which are executed within your database
-and can be called remotely using the [REST and GraphQL API](/docs/guides/database/api).
-
-For use-cases which require low-latency we recommend [Edge Functions](/docs/guides/functions), which are globally-distributed and can be written in TypeScript.
-
-## Organizing your Edge Functions
-
-We recommend developing “fat functions”. This means that you should develop few large functions, rather than many small functions. One common pattern when developing Functions is that you need to share code between two or more Functions. To do this, you can store any shared code in a folder prefixed with an underscore (`_`). We recommend this folder structure:
-
-```bash
-└── supabase
- ├── functions
- │ ├── _shared
- │ | ├── supabaseAdmin.ts # Supabase client with SERVICE_ROLE key
- │ │ └── supabaseClient.ts # Supabase client with ANON key
- │ ├── function-one # use hyphens to name functions
- │ │ └── index.ts
- │ └── function-two
- │ └── index.ts
- ├── migrations
- └── config.toml
-```
-
-## Naming Edge Functions
-
-We recommend using hyphens to name functions because hyphens are the most URL-friendly of all the naming conventions (snake_case, camelCase, PascalCase).
-
-## CORS (Cross-Origin Resource Sharing)
-
-We recommend adding a check to handle [CORS Preflight](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request) requests in your edge function to be able to invoke the function from browsers.
-
-See the [example on GitHub](https://github.com/supabase/supabase/blob/master/examples/edge-functions/supabase/functions/browser-with-cors/index.ts).
-
-```ts
-export const corsHeaders = {
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey',
-}
-
-serve(async (req) => {
- if (req.method === 'OPTIONS') {
- return new Response('ok', { headers: corsHeaders })
- }
- ...
-})
-```
-
-## Using HTTP Methods
-
-Edge Functions supports `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, and `OPTIONS`. A function can be designed to perform different actions based on a request's HTTP method. See the [example on building a RESTful service](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/restful-tasks) to learn how to handle different HTTP methods in your function.
-
-export const Page = ({ children }) =>
-
-export default Page
diff --git a/apps/www/_blog/2021-12-03-pg-graphql.mdx b/apps/www/_blog/2021-12-03-pg-graphql.mdx
index e723614a063..6926bb0a429 100644
--- a/apps/www/_blog/2021-12-03-pg-graphql.mdx
+++ b/apps/www/_blog/2021-12-03-pg-graphql.mdx
@@ -170,17 +170,17 @@ We're opting to expose the function over HTTP through PostgREST but you could al
When it comes to APIs, performance counts. Here are some figures from [Apache Bench](https://www.tutorialspoint.com/apache_bench/apache_bench_quick_guide.htm) showing 2,205 requests/second on a 4 core machine with 16 GB of memory.
```markdown hideCopy
-Concurrency Level: 8
-Time taken for tests: 3.628 seconds
-Complete requests: 8000
-Failed requests: 0
-Total transferred: 1768000 bytes
-Total body sent: 1928000
-HTML transferred: 368000 bytes
-Requests per second: 2205.21 [#/sec] (mean)
-Time per request: 3.628 [ms] (mean)
-Time per request: 0.453 [ms] (mean, across all concurrent requests)
-Transfer rate: 475.93 [Kbytes/sec] received
+Concurrency Level: 8
+Time taken for tests: 3.628 seconds
+Complete requests: 8000
+Failed requests: 0
+Total transferred: 1768000 bytes
+Total body sent: 1928000
+HTML transferred: 368000 bytes
+Requests per second: 2205.21 [#/sec] (mean)
+Time per request: 3.628 [ms] (mean)
+Time per request: 0.453 [ms] (mean, across all concurrent requests)
+Transfer rate: 475.93 [Kbytes/sec] received
```
Full steps to reproduce this output are available in [the docs](https://supabase.github.io/pg_graphql).
diff --git a/studio/components/to-be-cleaned/Docs/Pages/Tables/Introduction.tsx b/studio/components/to-be-cleaned/Docs/Pages/Tables/Introduction.tsx
index e36671ae8ed..8ef26409da3 100644
--- a/studio/components/to-be-cleaned/Docs/Pages/Tables/Introduction.tsx
+++ b/studio/components/to-be-cleaned/Docs/Pages/Tables/Introduction.tsx
@@ -83,10 +83,8 @@ const Introduction: FC = ({ selectedLang }) => {
You can generate types from your database either through the{' '}
-
- Supabase CLI
-
- , or by downloading the types file via the button on the right and importing it in your
+ Supabase CLI,
+ or by downloading the types file via the button on the right and importing it in your
application within src/index.ts.
From 5b906e98b868f96eae4f15581b89f44ccedfa9c4 Mon Sep 17 00:00:00 2001
From: dannykng
Date: Mon, 30 Jan 2023 12:51:41 -0800
Subject: [PATCH 10/34] Fix typo
---
.../pages/guides/getting-started/tutorials/with-sveltekit.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
index c3418ec3ce2..e01d5e9dda0 100644
--- a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
+++ b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx
@@ -1,7 +1,7 @@
import Layout from '~/layouts/DefaultGuideLayout'
export const meta = {
- title: 'Build a User Management App wtih SvelteKit',
+ title: 'Build a User Management App with SvelteKit',
description: 'Learn how to use Supabase in your SvelteKit App.',
}
From 19d2815771db395f5b3f211c956a60e90919a1d3 Mon Sep 17 00:00:00 2001
From: Jonathan Summers-Muir
Date: Mon, 6 Feb 2023 13:46:50 +0800
Subject: [PATCH 11/34] remove comments
---
packages/config/tailwind.config.js | 99 +-----------------------------
1 file changed, 1 insertion(+), 98 deletions(-)
diff --git a/packages/config/tailwind.config.js b/packages/config/tailwind.config.js
index bc54640b822..ea823d41d28 100644
--- a/packages/config/tailwind.config.js
+++ b/packages/config/tailwind.config.js
@@ -1,14 +1,3 @@
-// module.exports = {
-// content: [
-// "../../packages/ui/components/**/*.{ts,tsx}",
-// "./src/**/*.{ts,tsx}",
-// ],
-// theme: {
-// extend: {},
-// },
-// plugins: [],
-// }
-
const ui = require('./ui.config.js')
const svgToDataUri = require('mini-svg-data-uri')
@@ -25,8 +14,7 @@ module.exports = ui({
'./_blog/*.mdx',
// purge styles from supabase ui theme
],
- darkMode: 'class', // 'media' or 'class'
- // mode: 'jit',
+ darkMode: 'class',
theme: {
borderColor: (theme) => ({
...theme('colors'),
@@ -216,89 +204,11 @@ module.exports = ui({
}),
screens: {
xs: '480px',
- // sm: '640px',
- // // => @media (min-width: 640px) { ... }
- // md: '768px',
- // // => @media (min-width: 768px) { ... }
- // lg: '1024px',
- // // => @media (min-width: 1024px) { ... }
- // xl: '1280px',
- // // => @media (min-width: 1280px) { ... }
- // '2xl': '1536px',
- // // => @media (min-width: 1536px) { ... }
},
- // colors: {
- // 'gray-light': '#7B7F86',
- // 'gray-dark': '#7B7F86',
- // 'accent-1': '#FAFAFA',
- // 'accent-2': '#EAEAEA',
- // 'accent-7': '#333',
- // success: '#0070f3',
- // cyan: '#79FFE1',
- // // brand: {
- // // 100: '#82dab0',
- // // 200: '#69d3a0',
- // // 300: '#50cb90',
- // // 400: '#C5F1DD',
- // // 500: '#9FE7C7',
- // // 600: '#65D9A5',
- // // 700: '#3ECF8E',
- // // 800: '#38BC81',
- // // 900: '#10633E',
- // // },
- // // Joshen TODO: At the end just rearrange the values
- // dark: {
- // 100: '#eeeeee',
- // 200: '#e0e0e0',
- // 300: '#bbbbbb',
- // 400: '#666666',
- // 500: '#444444',
- // 600: '#2a2a2a',
- // 700: '#1f1f1f',
- // 800: '#181818',
- // 900: '#0f0f0f',
- // },
- // // gray: {
- // // 100: '#eeeeee',
- // // 200: '#e0e0e0',
- // // 300: '#bbbbbb',
- // // 400: '#666666',
- // // 500: '#444444',
- // // 600: '#2a2a2a',
- // // 700: '#1f1f1f',
- // // 800: '#181818',
- // // 900: '#0f0f0f',
- // // },
- // },
- // spacing: {
- // 28: '7rem',
- // },
- // letterSpacing: {
- // tighter: '-.04em',
- // },
- // lineHeight: {
- // tight: 1.2,
- // },
- // fontSize: {
- // '5xl': '2.5rem',
- // '6xl': '2.75rem',
- // '7xl': '4.5rem',
- // '8xl': '6.25rem',
- // },
- // boxShadow: {
- // 'light-small': '0px 4px 8px 2px rgba(107, 114, 128, 0.08)',
- // small: '0 5px 10px rgba(0, 0, 0, 0.12)',
- // medium: '0 8px 30px rgba(0, 0, 0, 0.12)',
- // override: '0px 0px 0px rgba(0, 0, 0, 0)',
- // },
fontFamily: {
sans: ['custom-font', 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif'],
mono: ['Office Code Pro', 'Source Code Pro', 'Menlo', 'monospace'],
},
- // stroke: (theme) => ({
- // white: theme('colors.white'),
- // black: theme('colors.black'),
- // }),
backgroundImage: (theme) => ({
squiggle: `url("${svgToDataUri(
`
+
+
+
The hosted Supabase Platform supports the [`pg_cron` extension](/docs/guides/database/extensions/pgcron), a simple cron-based job scheduler for PostgreSQL that runs inside the database.
In combination with the [`pg_net` extension](/docs/guides/database/extensions/pgnet), this allows us to invoke Edge Functions periodically on a set schedule.
From 113e7f666cec6fdefecb7c0a092eeccc0875b3b5 Mon Sep 17 00:00:00 2001
From: thorwebdev
Date: Wed, 8 Feb 2023 14:27:05 +0800
Subject: [PATCH 13/34] chore: update nextjs user management example.
---
.../nextjs-ts-user-management/README.md | 27 +-
.../components/Account.tsx | 50 +-
.../components/Avatar.tsx | 26 +-
.../components/Footer.tsx | 3 +-
.../package-lock.json | 3501 +++--------------
.../nextjs-ts-user-management/package.json | 6 +-
6 files changed, 663 insertions(+), 2950 deletions(-)
diff --git a/examples/user-management/nextjs-ts-user-management/README.md b/examples/user-management/nextjs-ts-user-management/README.md
index 088fac3bb24..d910a95a3e7 100644
--- a/examples/user-management/nextjs-ts-user-management/README.md
+++ b/examples/user-management/nextjs-ts-user-management/README.md
@@ -1,4 +1,4 @@
-# Supabase Next.js User Management
+# Supabase Next.js Auth & User Management Starter
This example will set you up for a very common situation: users can sign up or sign in and then update their account with public profile information, including a profile image.
@@ -27,7 +27,13 @@ The Vercel deployment will guide you through creating a Supabase account and pro
[](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fsupabase%2Fsupabase%2Ftree%2Fmaster%2Fexamples%2Fuser-management%2Fnextjs-ts-user-management&project-name=supabase-user-management&repository-name=supabase-user-management&demo-title=Supabase%20User%20Management&demo-description=An%20example%20web%20app%20using%20Supabase%20and%20Next.js&demo-url=https%3A%2F%2Fsupabase-nextjs-ts-user-management.vercel.app&demo-image=https%3A%2F%2Fi.imgur.com%2FZ3HkQqe.png&integration-ids=oac_jUduyjQgOyzev1fjrW83NYOv&external-id=nextjs-user-management)
-## Build from scratch
+## Build locally
+
+Or create a new projec locally with `create-next-app`:
+
+```bash
+npx create-next-app -e with-supabase
+```
### 1. Create new project
@@ -129,6 +135,23 @@ create policy "Anyone can update their own avatar." on storage.objects
for update using ( auth.uid() = owner ) with check (bucket_id = 'avatars');
```
+## More Supabase Examples & Resources
+
+## Examples
+
+These official examples are maintained by the Supabase team:
+
+- [Next.js Subscription Payments Starter](https://github.com/vercel/nextjs-subscription-payments)
+- [Next.js Slack Clone](https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone)
+- [Next.js 13 Data Fetching](https://github.com/supabase/supabase/tree/master/examples/caching/with-nextjs-13)
+- [And more...](https://github.com/supabase/supabase/tree/master/examples)
+
+## Other resources
+
+- [[Docs] Next.js User Management Quickstart](https://supabase.com/docs/guides/getting-started/tutorials/with-nextjs)
+- [[Egghead.io] Build a SaaS product with Next.js, Supabase and Stripe](https://egghead.io/courses/build-a-saas-product-with-next-js-supabase-and-stripe-61f2bc20)
+- [[Blog] Fetching and caching Supabase data in Next.js 13 Server Components](https://supabase.com/blog/fetching-and-caching-supabase-data-in-next-js-server-components)
+
## Authors
- [Supabase](https://supabase.com)
diff --git a/examples/user-management/nextjs-ts-user-management/components/Account.tsx b/examples/user-management/nextjs-ts-user-management/components/Account.tsx
index 3d88551769f..68577a28385 100644
--- a/examples/user-management/nextjs-ts-user-management/components/Account.tsx
+++ b/examples/user-management/nextjs-ts-user-management/components/Account.tsx
@@ -14,36 +14,36 @@ export default function Account({ session }: { session: Session }) {
const [avatar_url, setAvatarUrl] = useState(null)
useEffect(() => {
- getProfile()
- }, [session])
+ async function getProfile() {
+ try {
+ setLoading(true)
+ if (!user) throw new Error('No user')
- async function getProfile() {
- try {
- setLoading(true)
- if (!user) throw new Error('No user')
+ let { data, error, status } = await supabase
+ .from('profiles')
+ .select(`username, website, avatar_url`)
+ .eq('id', user.id)
+ .single()
- let { data, error, status } = await supabase
- .from('profiles')
- .select(`username, website, avatar_url`)
- .eq('id', user.id)
- .single()
+ if (error && status !== 406) {
+ throw error
+ }
- if (error && status !== 406) {
- throw error
+ if (data) {
+ setUsername(data.username)
+ setWebsite(data.website)
+ setAvatarUrl(data.avatar_url)
+ }
+ } catch (error) {
+ alert('Error loading user data!')
+ console.log(error)
+ } finally {
+ setLoading(false)
}
-
- if (data) {
- setUsername(data.username)
- setWebsite(data.website)
- setAvatarUrl(data.avatar_url)
- }
- } catch (error) {
- alert('Error loading user data!')
- console.log(error)
- } finally {
- setLoading(false)
}
- }
+
+ getProfile()
+ }, [session, user, supabase])
async function updateProfile({
username,
diff --git a/examples/user-management/nextjs-ts-user-management/components/Avatar.tsx b/examples/user-management/nextjs-ts-user-management/components/Avatar.tsx
index 6831ffbf280..4eba7554236 100644
--- a/examples/user-management/nextjs-ts-user-management/components/Avatar.tsx
+++ b/examples/user-management/nextjs-ts-user-management/components/Avatar.tsx
@@ -19,21 +19,21 @@ export default function Avatar({
const [uploading, setUploading] = useState(false)
useEffect(() => {
- if (url) downloadImage(url)
- }, [url])
-
- async function downloadImage(path: string) {
- try {
- const { data, error } = await supabase.storage.from('avatars').download(path)
- if (error) {
- throw error
+ async function downloadImage(path: string) {
+ try {
+ const { data, error } = await supabase.storage.from('avatars').download(path)
+ if (error) {
+ throw error
+ }
+ const url = URL.createObjectURL(data)
+ setAvatarUrl(url)
+ } catch (error) {
+ console.log('Error downloading image: ', error)
}
- const url = URL.createObjectURL(data)
- setAvatarUrl(url)
- } catch (error) {
- console.log('Error downloading image: ', error)
}
- }
+
+ if (url) downloadImage(url)
+ }, [url, supabase.storage])
const uploadAvatar: React.ChangeEventHandler = async (event) => {
try {
diff --git a/examples/user-management/nextjs-ts-user-management/components/Footer.tsx b/examples/user-management/nextjs-ts-user-management/components/Footer.tsx
index ec6577c7ab6..f1bf7abc6e1 100644
--- a/examples/user-management/nextjs-ts-user-management/components/Footer.tsx
+++ b/examples/user-management/nextjs-ts-user-management/components/Footer.tsx
@@ -1,4 +1,4 @@
-export default function Footer({}) {
+export default function Footer() {
return (
@@ -9,6 +9,7 @@ export default function Footer({}) {
diff --git a/examples/user-management/nextjs-ts-user-management/package-lock.json b/examples/user-management/nextjs-ts-user-management/package-lock.json
index 277499b2d68..1eaf787f8f1 100644
--- a/examples/user-management/nextjs-ts-user-management/package-lock.json
+++ b/examples/user-management/nextjs-ts-user-management/package-lock.json
@@ -1,17 +1,17 @@
{
"name": "nextjs-ts-user-management",
"version": "0.1.0",
- "lockfileVersion": 2,
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "nextjs-ts-user-management",
"version": "0.1.0",
"dependencies": {
- "@supabase/auth-helpers-nextjs": "^0.4.2",
+ "@supabase/auth-helpers-nextjs": "^0.5.4",
"@supabase/auth-helpers-react": "^0.3.1",
- "@supabase/auth-ui-react": "^0.2.2",
- "@supabase/supabase-js": "^2.0.4",
+ "@supabase/auth-ui-react": "^0.2.6",
+ "@supabase/supabase-js": "^2.5.0",
"next": "12.3.1",
"react": "18.2.0",
"react-dom": "18.2.0"
@@ -26,40 +26,27 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
- "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+ "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
"dev": true,
"dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz",
- "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==",
- "dev": true,
- "dependencies": {
- "core-js-pure": "^3.25.1",
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.13.11"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -73,29 +60,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@eslint/eslintrc/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/@humanwhocodes/config-array": {
"version": "0.10.7",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
@@ -110,29 +74,6 @@
"node": ">=10.10.0"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@humanwhocodes/config-array/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/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -416,11 +357,11 @@
}
},
"node_modules/@supabase/auth-helpers-nextjs": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.4.2.tgz",
- "integrity": "sha512-66CVKuUem4HwD/Te0a0569+j/jE7M52c0fW5bBSsPIqD9u1m+h/cnVuQxw+Ij7gphh36tKkRfOc8Ivn42+k6bQ==",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.5.4.tgz",
+ "integrity": "sha512-Xm3BMDOYPbNyuh8UXDRgBDc3JkeM5S2PfuC1jFJ73CCay4YiH1YxTz06Cvtp+vLH432qdjnqH+49ehVvUehPnQ==",
"dependencies": {
- "@supabase/auth-helpers-shared": "0.2.1"
+ "@supabase/auth-helpers-shared": "0.2.4"
},
"peerDependencies": {
"@supabase/supabase-js": "^2.0.4"
@@ -435,21 +376,20 @@
}
},
"node_modules/@supabase/auth-helpers-shared": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.2.1.tgz",
- "integrity": "sha512-L54gCCD8xCV6mHta0vE7CLxJ7pisSlsd9KIWB1ENyfZ0baeU9H39AqNVyYcAoHBPrUaZYx877J4WYYoqwuyi+w==",
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.2.4.tgz",
+ "integrity": "sha512-c+hi3N6DhjPTzjXGOokre4gmMZOqt0f1ORrwZwi2s07pk3cbkmn77DwwVtlYMNi3oZNYRQqAfxJu83UzpJrrmg==",
"peerDependencies": {
"@supabase/supabase-js": "^2.0.4"
}
},
"node_modules/@supabase/auth-ui-react": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@supabase/auth-ui-react/-/auth-ui-react-0.2.2.tgz",
- "integrity": "sha512-kuZ48iILdgdloUN0P3UV5c4zFoKGlzAfylJEazXuVzGPGTVddUjaZ6hWFIdYmT6XYO4unY04N255UtBjJvK/UA==",
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@supabase/auth-ui-react/-/auth-ui-react-0.2.6.tgz",
+ "integrity": "sha512-N2qxgsjxPQZPdDotVumzruj4RHaKNFb9ZRecttMeGOvrYFbMWRQVpWT/rYkTPsRW2phKiGXQlMwha6YxUE+t6Q==",
"dependencies": {
"@stitches/core": "^1.2.8",
"@stitches/react": "^1.2.8",
- "lodash": "^4.17.20",
"prop-types": "^15.7.2"
},
"optionalDependencies": {
@@ -469,48 +409,48 @@
}
},
"node_modules/@supabase/gotrue-js": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.2.1.tgz",
- "integrity": "sha512-CgQaYAJmGbOLPSqan4mjRgGikzsrlkKdPq0UNG7WZQv5HlHJlAYW8HeyNw/SKfIbxQBm8s2dBCeUyX+NdfB2Rw==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.11.0.tgz",
+ "integrity": "sha512-yo3yExoTqpJH4YpdI5PDjZ1YLOj3wURppimfsV0ep5uxDY/lE1uOhiMCPnhy59DbFAKG7bjnhJ1L7sk+B2os3w==",
"dependencies": {
"cross-fetch": "^3.1.5"
}
},
"node_modules/@supabase/postgrest-js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.1.0.tgz",
- "integrity": "sha512-qkY8TqIu5sJuae8gjeDPjEqPrefzcTraW9PNSVJQHq4TEv98ZmwaXGwBGz0bVL63bqrGA5hqREbQHkANUTXrvA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.4.0.tgz",
+ "integrity": "sha512-Qwk7T/thG4gtVjxxVGlnhH9tPWXyBGIpQMxNUtAIyASgJoEEuUFS/Wx/GqGDIfwRtrn1qqZjE6sZon5ULAdRLQ==",
"dependencies": {
"cross-fetch": "^3.1.5"
}
},
"node_modules/@supabase/realtime-js": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.1.0.tgz",
- "integrity": "sha512-iplLCofTeYjnx9FIOsIwHLhMp0+7UVyiA4/sCeq40VdOgN9eTIhjEno9Tgh4dJARi4aaXoKfRX1DTxgZaOpPAw==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.6.0.tgz",
+ "integrity": "sha512-tOVulMobhpxyDuu8VIImpL8FXmZOKsGNOSyS5ihJdj2xYmPPvYG+D2J51Ewfl+MFF65tweiB6p9N9bNIW1cDNA==",
"dependencies": {
"@types/phoenix": "^1.5.4",
"websocket": "^1.0.34"
}
},
"node_modules/@supabase/storage-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz",
- "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.3.0.tgz",
+ "integrity": "sha512-YGWVCEYYYF3+UiyL8O4xC78N9n9paLbT0hHl8dmYAtd3DqyWtu5Eph9JTu0PWm+/29Zhns5TbhUZW4xpWjJfPQ==",
"dependencies": {
"cross-fetch": "^3.1.5"
}
},
"node_modules/@supabase/supabase-js": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.4.tgz",
- "integrity": "sha512-Z5uLyJm9bz5LMFnt5d1I6ccxVTdvKbJa0RsYGgKlA+QiyGvBxRRvVh8pqlYP1571DlycGG7bWngNwdv7/pehrg==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.7.1.tgz",
+ "integrity": "sha512-Q/e+JAluZEvy7D4ul3aAs3aOiKkGvHlZULy6wjchWQyU9YlJKZLr6VPYcwUeitcnRKZi4al5iTS55LgdJFfqIA==",
"dependencies": {
"@supabase/functions-js": "^2.0.0",
- "@supabase/gotrue-js": "^2.2.0",
- "@supabase/postgrest-js": "^1.1.0",
- "@supabase/realtime-js": "^2.1.0",
- "@supabase/storage-js": "^2.0.0",
+ "@supabase/gotrue-js": "^2.10.2",
+ "@supabase/postgrest-js": "^1.1.1",
+ "@supabase/realtime-js": "^2.4.0",
+ "@supabase/storage-js": "^2.1.0",
"cross-fetch": "^3.1.5"
}
},
@@ -572,14 +512,14 @@
"dev": true
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz",
- "integrity": "sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz",
+ "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.40.1",
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/typescript-estree": "5.40.1",
+ "@typescript-eslint/scope-manager": "5.51.0",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/typescript-estree": "5.51.0",
"debug": "^4.3.4"
},
"engines": {
@@ -598,37 +538,14 @@
}
}
},
- "node_modules/@typescript-eslint/parser/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser/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/@typescript-eslint/scope-manager": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz",
- "integrity": "sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz",
+ "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/visitor-keys": "5.40.1"
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -639,9 +556,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz",
- "integrity": "sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz",
+ "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -652,13 +569,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz",
- "integrity": "sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz",
+ "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/visitor-keys": "5.40.1",
+ "@typescript-eslint/types": "5.51.0",
+ "@typescript-eslint/visitor-keys": "5.51.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -678,36 +595,13 @@
}
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/visitor-keys": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz",
- "integrity": "sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==",
+ "version": "5.51.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz",
+ "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.40.1",
+ "@typescript-eslint/types": "5.51.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -719,9 +613,9 @@
}
},
"node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -786,28 +680,24 @@
"dev": true
},
"node_modules/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
"dev": true,
"dependencies": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- },
- "engines": {
- "node": ">=6.0"
+ "deep-equal": "^2.0.5"
}
},
"node_modules/array-includes": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
- "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5",
- "get-intrinsic": "^1.1.1",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
},
"engines": {
@@ -827,14 +717,14 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
- "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
@@ -845,14 +735,14 @@
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
- "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
@@ -862,26 +752,54 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
"node_modules/ast-types-flow": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
"integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==",
"dev": true
},
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/axe-core": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
- "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz",
+ "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
- "dev": true
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
+ "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "dev": true,
+ "dependencies": {
+ "deep-equal": "^2.0.5"
+ }
},
"node_modules/balanced-match": {
"version": "1.0.2",
@@ -946,9 +864,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001420",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001420.tgz",
- "integrity": "sha512-OnyeJ9ascFA9roEj72ok2Ikp7PHJTKubtEJIQ/VK3fdsS50q4KWy+Z5X0A1/GswEItKX0ctAp8n4SYDE7wTu6A==",
+ "version": "1.0.30001451",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz",
+ "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==",
"funding": [
{
"type": "opencollective",
@@ -1000,17 +918,6 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/core-js-pure": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz",
- "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
"node_modules/cross-fetch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
@@ -1034,9 +941,9 @@
}
},
"node_modules/csstype": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
- "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==",
"dev": true
},
"node_modules/d": {
@@ -1055,11 +962,48 @@
"dev": true
},
"node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
"dependencies": {
- "ms": "2.0.0"
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-equal": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
+ "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.2",
+ "get-intrinsic": "^1.1.3",
+ "is-arguments": "^1.1.1",
+ "is-array-buffer": "^3.0.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/deep-is": {
@@ -1115,35 +1059,44 @@
"dev": true
},
"node_modules/es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"dependencies": {
+ "available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.3",
"get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
"has": "^1.0.3",
"has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
"object-inspect": "^1.12.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
},
"engines": {
"node": ">= 0.4"
@@ -1152,6 +1105,40 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-get-iterator": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
+ "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "is-arguments": "^1.1.1",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.7",
+ "isarray": "^2.0.5",
+ "stop-iteration-iterator": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-shim-unscopables": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
@@ -1305,13 +1292,14 @@
}
},
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
"dev": true,
"dependencies": {
"debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -1323,12 +1311,6 @@
"ms": "^2.1.1"
}
},
- "node_modules/eslint-import-resolver-node/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/eslint-import-resolver-typescript": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz",
@@ -1349,23 +1331,6 @@
"eslint-plugin-import": "*"
}
},
- "node_modules/eslint-import-resolver-typescript/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/eslint-import-resolver-typescript/node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -1386,12 +1351,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/eslint-import-resolver-typescript/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/eslint-module-utils": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
@@ -1418,30 +1377,26 @@
"ms": "^2.1.1"
}
},
- "node_modules/eslint-module-utils/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.3",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
"has": "^1.0.3",
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.11.0",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
"tsconfig-paths": "^3.14.1"
},
"engines": {
@@ -1451,6 +1406,15 @@
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
}
},
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
"node_modules/eslint-plugin-import/node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -1463,24 +1427,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
+ "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
"dev": true,
"dependencies": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
+ "@babel/runtime": "^7.20.7",
+ "aria-query": "^5.1.3",
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
"ast-types-flow": "^0.0.7",
- "axe-core": "^4.4.3",
- "axobject-query": "^2.2.0",
+ "axe-core": "^4.6.2",
+ "axobject-query": "^3.1.1",
"damerau-levenshtein": "^1.0.8",
"emoji-regex": "^9.2.2",
"has": "^1.0.3",
- "jsx-ast-utils": "^3.3.2",
- "language-tags": "^1.0.5",
+ "jsx-ast-utils": "^3.3.3",
+ "language-tags": "=1.0.5",
"minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
"semver": "^6.3.0"
},
"engines": {
@@ -1500,25 +1476,26 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.31.10",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
- "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
+ "version": "7.32.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
+ "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.5",
- "array.prototype.flatmap": "^1.3.0",
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
"doctrine": "^2.1.0",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.5",
- "object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.1",
- "object.values": "^1.1.5",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.3",
+ "resolve": "^2.0.0-next.4",
"semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.7"
+ "string.prototype.matchall": "^4.0.8"
},
"engines": {
"node": ">=4"
@@ -1626,33 +1603,10 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/eslint/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/eslint/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/espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
@@ -1768,9 +1722,9 @@
"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==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
@@ -1835,6 +1789,15 @@
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
"dev": true
},
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -1888,9 +1851,9 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.1",
@@ -1950,9 +1913,9 @@
}
},
"node_modules/globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -1964,6 +1927,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -1984,6 +1962,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
@@ -2032,6 +2022,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
@@ -2060,9 +2062,9 @@
}
},
"node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true,
"engines": {
"node": ">= 4"
@@ -2110,12 +2112,12 @@
"dev": true
},
"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==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.1.0",
+ "get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
},
@@ -2123,6 +2125,36 @@
"node": ">= 0.4"
}
},
+ "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==",
+ "dev": true,
+ "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-array-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -2164,9 +2196,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
@@ -2211,6 +2243,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-negative-zero": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
@@ -2263,6 +2304,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-shared-array-buffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
@@ -2305,11 +2355,39 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "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": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -2322,6 +2400,25 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -2329,10 +2426,14 @@
"dev": true
},
"node_modules/js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
},
"node_modules/js-tokens": {
"version": "4.0.0",
@@ -2431,11 +2532,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -2509,9 +2605,10 @@
}
},
"node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "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/nanoid": {
"version": "3.3.4",
@@ -2607,9 +2704,9 @@
}
},
"node_modules/node-gyp-build": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
- "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
@@ -2625,14 +2722,30 @@
}
},
"node_modules/object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"dev": true,
"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==",
+ "dev": true,
+ "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",
@@ -2661,28 +2774,28 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
- "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.fromentries": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
- "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
@@ -2692,27 +2805,27 @@
}
},
"node_modules/object.hasown": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
- "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
"dev": true,
"dependencies": {
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"engines": {
"node": ">= 0.4"
@@ -2891,9 +3004,9 @@
}
},
"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==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -2948,9 +3061,9 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/regenerator-runtime": {
- "version": "0.13.10",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
- "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==",
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
"dev": true
},
"node_modules/regexp.prototype.flags": {
@@ -3145,19 +3258,31 @@
"node": ">=0.10.0"
}
},
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
+ "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "dev": true,
+ "dependencies": {
+ "internal-slot": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/string.prototype.matchall": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
- "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
- "get-intrinsic": "^1.1.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.1",
+ "regexp.prototype.flags": "^1.4.3",
"side-channel": "^1.0.4"
},
"funding": {
@@ -3165,28 +3290,28 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -3304,9 +3429,9 @@
}
},
"node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -3358,6 +3483,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -3444,6 +3583,19 @@
"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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -3484,6 +3636,41 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dev": true,
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -3525,2503 +3712,5 @@
"url": "https://github.com/sponsors/sindresorhus"
}
}
- },
- "dependencies": {
- "@babel/runtime": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
- "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/runtime-corejs3": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz",
- "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==",
- "dev": true,
- "requires": {
- "core-js-pure": "^3.25.1",
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.4.0",
- "globals": "^13.15.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
- }
- },
- "@humanwhocodes/config-array": {
- "version": "0.10.7",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
- "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
- "dev": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
- }
- },
- "@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true
- },
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
- },
- "@next/env": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.1.tgz",
- "integrity": "sha512-9P9THmRFVKGKt9DYqeC2aKIxm8rlvkK38V1P1sRE7qyoPBIs8l9oo79QoSdPtOWfzkbDAVUqvbQGgTMsb8BtJg=="
- },
- "@next/eslint-plugin-next": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.1.tgz",
- "integrity": "sha512-sw+lTf6r6P0j+g/n9y4qdWWI2syPqZx+uc0+B/fRENqfR3KpSid6MIKqc9gNwGhJASazEQ5b3w8h4cAET213jw==",
- "dev": true,
- "requires": {
- "glob": "7.1.7"
- }
- },
- "@next/swc-android-arm-eabi": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.1.tgz",
- "integrity": "sha512-i+BvKA8tB//srVPPQxIQN5lvfROcfv4OB23/L1nXznP+N/TyKL8lql3l7oo2LNhnH66zWhfoemg3Q4VJZSruzQ==",
- "optional": true
- },
- "@next/swc-android-arm64": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.3.1.tgz",
- "integrity": "sha512-CmgU2ZNyBP0rkugOOqLnjl3+eRpXBzB/I2sjwcGZ7/Z6RcUJXK5Evz+N0ucOxqE4cZ3gkTeXtSzRrMK2mGYV8Q==",
- "optional": true
- },
- "@next/swc-darwin-arm64": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.1.tgz",
- "integrity": "sha512-hT/EBGNcu0ITiuWDYU9ur57Oa4LybD5DOQp4f22T6zLfpoBMfBibPtR8XktXmOyFHrL/6FC2p9ojdLZhWhvBHg==",
- "optional": true
- },
- "@next/swc-darwin-x64": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.1.tgz",
- "integrity": "sha512-9S6EVueCVCyGf2vuiLiGEHZCJcPAxglyckTZcEwLdJwozLqN0gtS0Eq0bQlGS3dH49Py/rQYpZ3KVWZ9BUf/WA==",
- "optional": true
- },
- "@next/swc-freebsd-x64": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.1.tgz",
- "integrity": "sha512-qcuUQkaBZWqzM0F1N4AkAh88lLzzpfE6ImOcI1P6YeyJSsBmpBIV8o70zV+Wxpc26yV9vpzb+e5gCyxNjKJg5Q==",
- "optional": true
- },
- "@next/swc-linux-arm-gnueabihf": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.1.tgz",
- "integrity": "sha512-diL9MSYrEI5nY2wc/h/DBewEDUzr/DqBjIgHJ3RUNtETAOB3spMNHvJk2XKUDjnQuluLmFMloet9tpEqU2TT9w==",
- "optional": true
- },
- "@next/swc-linux-arm64-gnu": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.1.tgz",
- "integrity": "sha512-o/xB2nztoaC7jnXU3Q36vGgOolJpsGG8ETNjxM1VAPxRwM7FyGCPHOMk1XavG88QZSQf+1r+POBW0tLxQOJ9DQ==",
- "optional": true
- },
- "@next/swc-linux-arm64-musl": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.1.tgz",
- "integrity": "sha512-2WEasRxJzgAmP43glFNhADpe8zB7kJofhEAVNbDJZANp+H4+wq+/cW1CdDi8DqjkShPEA6/ejJw+xnEyDID2jg==",
- "optional": true
- },
- "@next/swc-linux-x64-gnu": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.1.tgz",
- "integrity": "sha512-JWEaMyvNrXuM3dyy9Pp5cFPuSSvG82+yABqsWugjWlvfmnlnx9HOQZY23bFq3cNghy5V/t0iPb6cffzRWylgsA==",
- "optional": true
- },
- "@next/swc-linux-x64-musl": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.1.tgz",
- "integrity": "sha512-xoEWQQ71waWc4BZcOjmatuvPUXKTv6MbIFzpm4LFeCHsg2iwai0ILmNXf81rJR+L1Wb9ifEke2sQpZSPNz1Iyg==",
- "optional": true
- },
- "@next/swc-win32-arm64-msvc": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.1.tgz",
- "integrity": "sha512-hswVFYQYIeGHE2JYaBVtvqmBQ1CppplQbZJS/JgrVI3x2CurNhEkmds/yqvDONfwfbttTtH4+q9Dzf/WVl3Opw==",
- "optional": true
- },
- "@next/swc-win32-ia32-msvc": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.1.tgz",
- "integrity": "sha512-Kny5JBehkTbKPmqulr5i+iKntO5YMP+bVM8Hf8UAmjSMVo3wehyLVc9IZkNmcbxi+vwETnQvJaT5ynYBkJ9dWA==",
- "optional": true
- },
- "@next/swc-win32-x64-msvc": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.1.tgz",
- "integrity": "sha512-W1ijvzzg+kPEX6LAc+50EYYSEo0FVu7dmTE+t+DM4iOLqgGHoW9uYSz9wCVdkXOEEMP9xhXfGpcSxsfDucyPkA==",
- "optional": true
- },
- "@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,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@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
- },
- "@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,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@rushstack/eslint-patch": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
- "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==",
- "dev": true
- },
- "@stitches/core": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@stitches/core/-/core-1.2.8.tgz",
- "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg=="
- },
- "@stitches/react": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz",
- "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==",
- "requires": {}
- },
- "@supabase/auth-helpers-nextjs": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.4.2.tgz",
- "integrity": "sha512-66CVKuUem4HwD/Te0a0569+j/jE7M52c0fW5bBSsPIqD9u1m+h/cnVuQxw+Ij7gphh36tKkRfOc8Ivn42+k6bQ==",
- "requires": {
- "@supabase/auth-helpers-shared": "0.2.1"
- }
- },
- "@supabase/auth-helpers-react": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-react/-/auth-helpers-react-0.3.1.tgz",
- "integrity": "sha512-g3SFv08Dz9FapNif/ZY1b7qKGlMJDyTLSayHBz3kb3FuYxg7aLWgQtydDhm5AGbc0XtvpIBuhGTIOVevwpdosA==",
- "requires": {}
- },
- "@supabase/auth-helpers-shared": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.2.1.tgz",
- "integrity": "sha512-L54gCCD8xCV6mHta0vE7CLxJ7pisSlsd9KIWB1ENyfZ0baeU9H39AqNVyYcAoHBPrUaZYx877J4WYYoqwuyi+w==",
- "requires": {}
- },
- "@supabase/auth-ui-react": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@supabase/auth-ui-react/-/auth-ui-react-0.2.2.tgz",
- "integrity": "sha512-kuZ48iILdgdloUN0P3UV5c4zFoKGlzAfylJEazXuVzGPGTVddUjaZ6hWFIdYmT6XYO4unY04N255UtBjJvK/UA==",
- "requires": {
- "@stitches/core": "^1.2.8",
- "@stitches/react": "^1.2.8",
- "fsevents": "^2.3.2",
- "lodash": "^4.17.20",
- "prop-types": "^15.7.2"
- }
- },
- "@supabase/functions-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz",
- "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==",
- "requires": {
- "cross-fetch": "^3.1.5"
- }
- },
- "@supabase/gotrue-js": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.2.1.tgz",
- "integrity": "sha512-CgQaYAJmGbOLPSqan4mjRgGikzsrlkKdPq0UNG7WZQv5HlHJlAYW8HeyNw/SKfIbxQBm8s2dBCeUyX+NdfB2Rw==",
- "requires": {
- "cross-fetch": "^3.1.5"
- }
- },
- "@supabase/postgrest-js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.1.0.tgz",
- "integrity": "sha512-qkY8TqIu5sJuae8gjeDPjEqPrefzcTraW9PNSVJQHq4TEv98ZmwaXGwBGz0bVL63bqrGA5hqREbQHkANUTXrvA==",
- "requires": {
- "cross-fetch": "^3.1.5"
- }
- },
- "@supabase/realtime-js": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.1.0.tgz",
- "integrity": "sha512-iplLCofTeYjnx9FIOsIwHLhMp0+7UVyiA4/sCeq40VdOgN9eTIhjEno9Tgh4dJARi4aaXoKfRX1DTxgZaOpPAw==",
- "requires": {
- "@types/phoenix": "^1.5.4",
- "websocket": "^1.0.34"
- }
- },
- "@supabase/storage-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz",
- "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==",
- "requires": {
- "cross-fetch": "^3.1.5"
- }
- },
- "@supabase/supabase-js": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.4.tgz",
- "integrity": "sha512-Z5uLyJm9bz5LMFnt5d1I6ccxVTdvKbJa0RsYGgKlA+QiyGvBxRRvVh8pqlYP1571DlycGG7bWngNwdv7/pehrg==",
- "requires": {
- "@supabase/functions-js": "^2.0.0",
- "@supabase/gotrue-js": "^2.2.0",
- "@supabase/postgrest-js": "^1.1.0",
- "@supabase/realtime-js": "^2.1.0",
- "@supabase/storage-js": "^2.0.0",
- "cross-fetch": "^3.1.5"
- }
- },
- "@swc/helpers": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
- "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
- "@types/node": {
- "version": "18.8.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.5.tgz",
- "integrity": "sha512-Bq7G3AErwe5A/Zki5fdD3O6+0zDChhg671NfPjtIcbtzDNZTv4NPKMRFr7gtYPG7y+B8uTiNK4Ngd9T0FTar6Q==",
- "dev": true
- },
- "@types/phoenix": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.4.tgz",
- "integrity": "sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ=="
- },
- "@types/prop-types": {
- "version": "15.7.5",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
- "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
- "dev": true
- },
- "@types/react": {
- "version": "18.0.21",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
- "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
- "dev": true,
- "requires": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "@types/react-dom": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
- "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
- "dev": true,
- "requires": {
- "@types/react": "*"
- }
- },
- "@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
- },
- "@typescript-eslint/parser": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.40.1.tgz",
- "integrity": "sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/scope-manager": "5.40.1",
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/typescript-estree": "5.40.1",
- "debug": "^4.3.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
- }
- },
- "@typescript-eslint/scope-manager": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz",
- "integrity": "sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/visitor-keys": "5.40.1"
- }
- },
- "@typescript-eslint/types": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.40.1.tgz",
- "integrity": "sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz",
- "integrity": "sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.40.1",
- "@typescript-eslint/visitor-keys": "5.40.1",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "5.40.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz",
- "integrity": "sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "5.40.1",
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "requires": {}
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "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,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- }
- },
- "array-includes": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
- "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5",
- "get-intrinsic": "^1.1.1",
- "is-string": "^1.0.7"
- }
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "array.prototype.flat": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
- "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
- "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==",
- "dev": true
- },
- "axe-core": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
- "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
- "dev": true
- },
- "axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
- "dev": true
- },
- "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
- },
- "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,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "bufferutil": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
- "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
- "requires": {
- "node-gyp-build": "^4.3.0"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001420",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001420.tgz",
- "integrity": "sha512-OnyeJ9ascFA9roEj72ok2Ikp7PHJTKubtEJIQ/VK3fdsS50q4KWy+Z5X0A1/GswEItKX0ctAp8n4SYDE7wTu6A=="
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "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,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "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
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "core-js-pure": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz",
- "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==",
- "dev": true
- },
- "cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "requires": {
- "node-fetch": "2.6.7"
- }
- },
- "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,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "csstype": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
- "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
- "dev": true
- },
- "d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
- "dev": true
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "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
- },
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
- "get-symbol-description": "^1.0.0",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "is-string": "^1.0.7",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
- }
- },
- "es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "es5-ext": {
- "version": "0.10.62",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
- "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
- "requires": {
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.3",
- "next-tick": "^1.1.0"
- }
- },
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "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==",
- "requires": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "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==",
- "dev": true
- },
- "eslint": {
- "version": "8.25.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
- "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
- "dev": true,
- "requires": {
- "@eslint/eslintrc": "^1.3.3",
- "@humanwhocodes/config-array": "^0.10.5",
- "@humanwhocodes/module-importer": "^1.0.1",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.1",
- "globals": "^13.15.0",
- "globby": "^11.1.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
- }
- },
- "eslint-config-next": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.3.1.tgz",
- "integrity": "sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==",
- "dev": true,
- "requires": {
- "@next/eslint-plugin-next": "12.3.1",
- "@rushstack/eslint-patch": "^1.1.3",
- "@typescript-eslint/parser": "^5.21.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-import-resolver-typescript": "^2.7.1",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-jsx-a11y": "^6.5.1",
- "eslint-plugin-react": "^7.31.7",
- "eslint-plugin-react-hooks": "^4.5.0"
- }
- },
- "eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
- "dev": true,
- "requires": {
- "debug": "^3.2.7",
- "resolve": "^1.20.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- }
- }
- },
- "eslint-import-resolver-typescript": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz",
- "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==",
- "dev": true,
- "requires": {
- "debug": "^4.3.4",
- "glob": "^7.2.0",
- "is-glob": "^4.0.3",
- "resolve": "^1.22.0",
- "tsconfig-paths": "^3.14.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "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
- }
- }
- },
- "eslint-module-utils": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
- "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
- "dev": true,
- "requires": {
- "debug": "^3.2.7"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- }
- }
- },
- "eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.3",
- "has": "^1.0.3",
- "is-core-module": "^2.8.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
- "tsconfig-paths": "^3.14.1"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- }
- }
- },
- "eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.4.3",
- "axobject-query": "^2.2.0",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.3.2",
- "language-tags": "^1.0.5",
- "minimatch": "^3.1.2",
- "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==",
- "dev": true
- }
- }
- },
- "eslint-plugin-react": {
- "version": "7.31.10",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
- "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.5",
- "array.prototype.flatmap": "^1.3.0",
- "doctrine": "^2.1.0",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.5",
- "object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.1",
- "object.values": "^1.1.5",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.3",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.7"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "resolve": {
- "version": "2.0.0-next.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
- "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "eslint-plugin-react-hooks": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
- "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
- "dev": true,
- "requires": {}
- },
- "eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true
- }
- }
- },
- "eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true
- },
- "espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
- "dev": true,
- "requires": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "ext": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
- "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
- "requires": {
- "type": "^2.7.2"
- },
- "dependencies": {
- "type": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
- "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
- }
- }
- },
- "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==",
- "dev": true
- },
- "fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "dev": true,
- "requires": {
- "@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"
- },
- "dependencies": {
- "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,
- "requires": {
- "is-glob": "^4.0.1"
- }
- }
- }
- },
- "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
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "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,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- }
- },
- "flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
- }
- },
- "functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- }
- },
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "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,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- }
- },
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true
- },
- "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
- },
- "has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "dev": true,
- "requires": {
- "get-intrinsic": "^1.1.1"
- }
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
- },
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true
- },
- "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,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
- "dev": true,
- "requires": {
- "get-intrinsic": "^1.1.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- }
- },
- "is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dev": true,
- "requires": {
- "has-bigints": "^1.0.1"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true
- },
- "is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "dev": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dev": true,
- "requires": {
- "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==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dev": true,
- "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==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
- "is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "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==",
- "dev": true
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "jsx-ast-utils": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
- "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.5",
- "object.assign": "^4.1.3"
- }
- },
- "language-subtag-registry": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
- "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==",
- "dev": true
- },
- "language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
- "dev": true,
- "requires": {
- "language-subtag-registry": "~0.3.2"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "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==",
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "requires": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "next": {
- "version": "12.3.1",
- "resolved": "https://registry.npmjs.org/next/-/next-12.3.1.tgz",
- "integrity": "sha512-l7bvmSeIwX5lp07WtIiP9u2ytZMv7jIeB8iacR28PuUEFG5j0HGAPnMqyG5kbZNBG2H7tRsrQ4HCjuMOPnANZw==",
- "requires": {
- "@next/env": "12.3.1",
- "@next/swc-android-arm-eabi": "12.3.1",
- "@next/swc-android-arm64": "12.3.1",
- "@next/swc-darwin-arm64": "12.3.1",
- "@next/swc-darwin-x64": "12.3.1",
- "@next/swc-freebsd-x64": "12.3.1",
- "@next/swc-linux-arm-gnueabihf": "12.3.1",
- "@next/swc-linux-arm64-gnu": "12.3.1",
- "@next/swc-linux-arm64-musl": "12.3.1",
- "@next/swc-linux-x64-gnu": "12.3.1",
- "@next/swc-linux-x64-musl": "12.3.1",
- "@next/swc-win32-arm64-msvc": "12.3.1",
- "@next/swc-win32-ia32-msvc": "12.3.1",
- "@next/swc-win32-x64-msvc": "12.3.1",
- "@swc/helpers": "0.4.11",
- "caniuse-lite": "^1.0.30001406",
- "postcss": "8.4.14",
- "styled-jsx": "5.0.7",
- "use-sync-external-store": "1.2.0"
- }
- },
- "next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-gyp-build": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz",
- "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- }
- },
- "object.entries": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
- "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
- }
- },
- "object.fromentries": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
- "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
- }
- },
- "object.hasown": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
- "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- }
- },
- "object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "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,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "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==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
- },
- "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
- },
- "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
- },
- "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
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "postcss": {
- "version": "8.4.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
- "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
- "requires": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- }
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
- "prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
- },
- "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
- },
- "react": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
- "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
- "requires": {
- "loose-envify": "^1.1.0"
- }
- },
- "react-dom": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
- "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
- "requires": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.0"
- }
- },
- "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=="
- },
- "regenerator-runtime": {
- "version": "0.13.10",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
- "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==",
- "dev": true
- },
- "regexp.prototype.flags": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
- "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "functions-have-names": "^1.2.2"
- }
- },
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "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
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "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,
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "is-regex": "^1.1.4"
- }
- },
- "scheduler": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
- "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
- "requires": {
- "loose-envify": "^1.1.0"
- }
- },
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "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,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "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
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
- },
- "string.prototype.matchall": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
- "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
- "get-intrinsic": "^1.1.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.1",
- "side-channel": "^1.0.4"
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- }
- },
- "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,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- },
- "styled-jsx": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz",
- "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==",
- "requires": {}
- },
- "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,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "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==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "tsconfig-paths": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
- "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
- "dev": true,
- "requires": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.1",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- },
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
- "tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
- "requires": {
- "tslib": "^1.8.1"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- },
- "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==",
- "requires": {
- "is-typedarray": "^1.0.0"
- }
- },
- "typescript": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
- "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
- "dev": true
- },
- "unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
- "requires": {}
- },
- "utf-8-validate": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
- "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
- "requires": {
- "node-gyp-build": "^4.3.0"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "websocket": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
- "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
- "requires": {
- "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"
- }
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "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
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "yaeti": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "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==",
- "dev": true
- }
}
}
diff --git a/examples/user-management/nextjs-ts-user-management/package.json b/examples/user-management/nextjs-ts-user-management/package.json
index b9d16a158cf..4ec43fdb521 100644
--- a/examples/user-management/nextjs-ts-user-management/package.json
+++ b/examples/user-management/nextjs-ts-user-management/package.json
@@ -8,10 +8,10 @@
"start": "next start"
},
"dependencies": {
- "@supabase/auth-helpers-nextjs": "^0.4.2",
+ "@supabase/auth-helpers-nextjs": "^0.5.4",
"@supabase/auth-helpers-react": "^0.3.1",
- "@supabase/auth-ui-react": "^0.2.2",
- "@supabase/supabase-js": "^2.0.4",
+ "@supabase/auth-ui-react": "^0.2.6",
+ "@supabase/supabase-js": "^2.5.0",
"next": "12.3.1",
"react": "18.2.0",
"react-dom": "18.2.0"
From 9162e0d19c246f44bb83af2a6aad34206dde668f Mon Sep 17 00:00:00 2001
From: Div Arora
Date: Wed, 8 Feb 2023 14:25:32 +0700
Subject: [PATCH 14/34] feat: add SSL enforcement docs
Co-authored-by: dannykng
---
.../Navigation/Navigation.constants.ts | 1 +
.../NavigationMenu.constants.ts | 1 +
.../guides/platform/network-restrictions.mdx | 9 ++-
.../pages/guides/platform/ssl-enforcement.mdx | 58 +++++++++++++++++++
4 files changed, 64 insertions(+), 5 deletions(-)
create mode 100644 apps/docs/pages/guides/platform/ssl-enforcement.mdx
diff --git a/apps/docs/components/Navigation/Navigation.constants.ts b/apps/docs/components/Navigation/Navigation.constants.ts
index 1d0f16fd393..d85bef11e5f 100644
--- a/apps/docs/components/Navigation/Navigation.constants.ts
+++ b/apps/docs/components/Navigation/Navigation.constants.ts
@@ -278,6 +278,7 @@ export const menuItems: NavMenu = {
{ name: 'Performance Tuning', url: '/guides/platform/performance', items: [] },
{ name: 'Permissions', url: '/guides/platform/permissions', items: [] },
{ name: 'Production Readiness', url: '/guides/platform/going-into-prod', items: [] },
+ { name: 'SSL Enforcement', url: '/guides/platform/ssl-enforcement', items: [] },
{ name: 'Troubleshooting', url: '/guides/platform/troubleshooting', items: [] },
],
},
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index f2139f3a407..e8992e91e42 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -586,6 +586,7 @@ export const platform = {
{ name: 'Network Restrictions', url: '/guides/platform/network-restrictions', items: [] },
{ name: 'Performance Tuning', url: '/guides/platform/performance', items: [] },
{ name: 'Permissions', url: '/guides/platform/permissions', items: [] },
+ { name: 'SSL Enforcement', url: '/guides/platform/ssl-enforcement', items: [] },
],
},
{
diff --git a/apps/docs/pages/guides/platform/network-restrictions.mdx b/apps/docs/pages/guides/platform/network-restrictions.mdx
index ce2f320a023..0564d57560a 100644
--- a/apps/docs/pages/guides/platform/network-restrictions.mdx
+++ b/apps/docs/pages/guides/platform/network-restrictions.mdx
@@ -8,9 +8,7 @@ export const meta = {
-Network Restrictions are currently in beta and are being slowly made available to all projects.
-
-The current iteration of Network Restrictions applies to connections to Postgres and PgBouncer. Support for restricting connections to PostgREST, Storage, and Auth will be added at a later date.
+Network Restrictions is currently in beta and is slowly being made available to all projects. [Contact support](https://app.supabase.com/support/new) if you'd like to request early access.
@@ -20,6 +18,7 @@ To get started:
1. [Install](/docs/guides/cli) the Supabase CLI 1.22.0+.
1. [Log in](/docs/guides/cli/local-development#log-in-to-the-supabase-cli) to your Supabase account using the CLI.
+1. If your project was created before 23rd December 2022, it will need to be [upgraded to the latest Supabase version](/docs/guides/platform/migrating-and-upgrading-projects) before Network Restrictions can be used.
1. Ensure that you have [Owner or Admin permissions](/docs/guides/platform/access-control#manage-team-members) for the project that you are enabling network restrictions.
## Check restrictions
@@ -67,8 +66,8 @@ Restrictions applied successfully: true
## Limitations
-1. Network Restrictions do not currently apply to APIs offered over HTTPS (e.g. PostgREST, Storage, Auth).
-1. Network Restrictions should not be used if you require you need to connect to your Postgres database using Edge Functions.
+- The current iteration of Network Restrictions applies to connections to Postgres and PgBouncer and doesn't currently apply to APIs offered over HTTPS (e.g., PostgREST, Storage, and Auth).
+- Network Restrictions should not be used if you need to connect to your Postgres database using Edge Functions.
export const Page = ({ children }) =>
diff --git a/apps/docs/pages/guides/platform/ssl-enforcement.mdx b/apps/docs/pages/guides/platform/ssl-enforcement.mdx
new file mode 100644
index 00000000000..ee70d7fbcaf
--- /dev/null
+++ b/apps/docs/pages/guides/platform/ssl-enforcement.mdx
@@ -0,0 +1,58 @@
+import Layout from '~/layouts/DefaultGuideLayout'
+
+export const meta = {
+ title: 'Postgres SSL Enforcement',
+ description: 'Enforce SSL usage for all Postgres connections',
+}
+
+
+
+Postgres SSL Enforcement is currently in beta and is slowly being made available to all projects. [Contact support](https://app.supabase.com/support/new) if you'd like to request early access.
+
+
+
+Your Supabase project supports connecting to the Postgres DB without SSL enabled to maximize client compatibility. For increased security, you can prevent clients from connecting if they're not using SSL.
+
+SSL enforcement only applies to connections to both Postgres and PgBouncer ("Connection Pooler"); all HTTP APIs offered by Supabase (e.g., PostgREST, Storage, Auth) automatically enforce SSL on all incoming connections.
+
+To get started:
+
+1. [Install](/docs/guides/cli) the Supabase CLI 1.37.0+.
+1. [Log in](/docs/guides/cli/local-development#log-in-to-the-supabase-cli) to your Supabase account using the CLI.
+1. Ensure that you have [Owner or Admin permissions](/docs/guides/platform/access-control#manage-team-members) for the project that you are enabling SSL enforcement.
+
+## Check enforcement status
+
+You can use the `get` subcommand of the CLI to check whether SSL is currently being enforced:
+
+```bash
+> supabase ssl-enforcement --project-ref {ref} get --experimental
+SSL is being enforced.
+```
+
+Or similarly, if SSL is not being enforced, you will see:
+
+```bash
+> supabase ssl-enforcement --project-ref {ref} get --experimental
+SSL is *NOT* being enforced.
+```
+
+## Update enforcement
+
+The `update` subcommand is used to change the SSL enforcement status for your project:
+
+```bash
+> supabase ssl-enforcement --project-ref {ref} update --enable-db-ssl-enforcement --experimental
+SSL is now being enforced.
+```
+
+Similarly, to disable SSL enforcement:
+
+```bash
+> supabase ssl-enforcement --project-ref {ref} update --disable-db-ssl-enforcement --experimental
+SSL is *NOT* being enforced.
+```
+
+export const Page = ({ children }) =>
+
+export default Page
From 7575c8db68e60160a25637868561c04ea11183bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ramiro=20Nu=C3=B1ez=20Dosio?=
Date: Wed, 8 Feb 2023 12:10:09 +0000
Subject: [PATCH 15/34] Blog Post: Beta Update January 2023
---
.../2023-02-08-supabase-beta-january-2023.mdx | 128 ++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
diff --git a/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
new file mode 100644
index 00000000000..f9c37073f43
--- /dev/null
+++ b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
@@ -0,0 +1,128 @@
+---
+title: Supabase Beta January 2023
+description: New Postgres extensions, pg_graphql updates, changes to Edge Functions, and more!
+author: ant_wilson
+image: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
+thumb: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
+tags:
+ - release-notes
+date: '2023-02-08'
+toc_depth: 3
+---
+
+We have so much good stuff this month that it’s hard to fit in a single email 🚢.
+
+We’ve got some new Postgres extensions, GraphQL updates, changes to Edge Functions, and more!
+
+## Storing OpenAI embeddings in Postgres with pgvector
+
+IMAGE
+
+pgvector is a popular PostgreSQL extension for storing embeddings and performing vector similarity search. It was one of the most requested extensions by the AI/ML community and is now available thanks to [gregnr](https://github.com/gregnr).
+
+[Read the announcement.](https://supabase.com/blog/openai-embeddings-postgres-vector)
+
+## Meet Supabase Clippy: ChatGPT for Docs
+
+IMAGE
+
+Greg wasted no time and took pgvector for a spin, he combined it with OpenAI to build Supabase Clippy, a next-generation doc search. The first implementation is a 1-week MVP and fully open source, so you can build on top of it.
+
+- [Read the blog post.](https://supabase.com/blog/chatgpt-supabase-docs)\
+- [Watch the video tutorial.](https://www.youtube.com/watch)
+
+## Client library reference: Python and C#
+
+IMAGE
+
+We have released extensive reference docs for C# and Python, detailing every object and method. What are you going to build?
+
+- [C# Client Library](https://supabase.com/docs/reference/csharp/introduction)
+- [Python Client Library](https://supabase.com/docs/reference/python/initializing)
+
+## pg_graphql now supports Views, Materialized Views, and Foreign Tables
+
+IMAGE
+
+Views, Materialized Views, and Foreign Tables are three database objects that provide a powerful way to access and organize and transform data without duplication.
+
+[Read the docs.](https://supabase.github.io/pg_graphql/views/)
+
+## Automatic WebP detection for Image Transformation
+
+IMAGE
+
+WebP is a modern image format that provides superior lossless and lossy compression for images on the web. We are enabling format conversion by default for anyone who has Image Transformations. You can opt out by including format: origin in the transformation parameters.
+
+[Read the docs.](https://supabase.com/docs/guides/storage/image-transformations#automatic-image-optimisation-webp)
+
+## Quick product updates
+
+- Postgres Extension: Another powerful and time-tested extension, pg_repack, is added to Supabase. [[PR]](https://github.com/supabase/postgres/pull/492)
+
+- Auth: Multi-tab session support using the new browser BroadcastChannel API. If a user logs out on one tab, they will now be logged out on all tabs. [[PR]](https://github.com/supabase/gotrue-js/pull/566)
+
+- Postgres: Superior speed with lz4 database compression. [[PR]](https://github.com/supabase/postgres/pull/490)
+
+- Postgres: Use ICU locales and collations for text attribute ordering in database queries. [[PR]](https://github.com/supabase/postgres/pull/491)
+
+- Docs: New guide on scheduling functions with pg_cron. [[Guide]](https://supabase.com/docs/guides/functions/schedule-functions)
+
+- Edge Functions: You can now download source codes of deployed edge functions from the CLI. [[Doc]](https://supabase.com/docs/reference/cli/supabase-functions-download)
+
+- Edge Functions: building a Discord Slash Bot. [[Video Tutorial]](https://www.youtube.com/watch?v=J24Bvo_m7DM)
+
+## Deploy Supabase on DigitalOcean
+
+IMAGE
+
+We teamed up with DigitalOcean to level up self-hosted Supabase. This guide shows how to host Supabase on DigitalOcean using Sendgrid, Packer, and Terraform. More collaborations coming soon!\
+
+[Get started](https://docs.digitalocean.com/developer-center/hosting-supabase-on-digitalocean/).
+
+## 45k Github stars (and counting!)
+
+IMAGE
+
+We hit two big milestones: 45k stars and Supabase is one the top 200 most-popular repos on Github 💥
+
+Massive thanks to the community for all the support 👁️⚡️👁️
+
+[Supabase Repo.](https://github.com/supabase/supabase)
+
+## Made with Supabase
+
+IMAGE
+
+[supermeme.ai](https://www.supermeme.ai/) | Two things that we are fans of are memes and AI. Just describe your thoughts and let AI create original memes for you. Available in 110+ languages!
+
+Discover other great projects: [Made with Supabase](https://www.madewithsupabase.com/).
+
+## Extended Community Highlights
+
+- JWT Helper for Supabase by Zuplo. [Tool](https://zuplo.com/blog/2023/01/05/supabase-jwt-auth-helper/)
+- ClickHouse and PostgreSQL - a Match Made in Data Heaven - Part 2. [Blog Post](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres-part-2)
+- Building a Startup from Scratch: My Mistakes as CTO. [Blog Post](https://egor-romanov.medium.com/building-a-startup-from-scratch-my-mistakes-as-cto-b20b463e0058)\
+- We are sponsoring TreeHacks, Stanford University's premier hackathon and one of the largest hackathons in the USA. [Hackathon](https://www.treehacks.com)\
+- Set up a Svelte to-do list on self-hosted Supabase + authentication. [Tutorial](https://blog.cpbprojects.me/set-up-a-svelte-todo-list-on-self-hosted-supabase-email-sign-up-google-facebook-auth-host-on-github-pages)\
+- Vercel wrote a case study about how much we love TurboRepo (and Vercel in general 🖤). [Case Study](https://vercel.com/customers/how-supabase-elevated-their-developer-experience-with-turborepo)
+
+## We're Hiring
+
+Come join one of the fastest-growing open source projects ever 🤗
+
+- [Integrations / Marketplace Lead](https://boards.greenhouse.io/supabase/jobs/4775849004)\
+- [Cloud Platform / Site Reliability Engineer](https://boards.greenhouse.io/supabase/jobs/4307459004)\
+- [Social Media and Community Manager](https://boards.greenhouse.io/supabase/jobs/4777008004)
+
+We've redesigned our [Careers page](https://supabase.com/careers) to better reflect our mission, values, and culture.
+
+## Meme Zone
+
+As always, one of our favorite memes from last month. [Follow us on Twitter](https://twitter.com/supabase) for more.
+
+MEME
+
+See you next month!
+
+
From a5334453d89af55e0c8c3d048913f83406d12d59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ramiro=20Nu=C3=B1ez=20Dosio?=
Date: Wed, 8 Feb 2023 12:54:44 +0000
Subject: [PATCH 16/34] Added images.
---
.../2023-02-08-supabase-beta-january-2023.mdx | 24 ++++++++++--------
.../beta-update-january-meme.jpeg | Bin 0 -> 140361 bytes
.../chatgpt-for-supabase-docs.png | Bin 0 -> 542750 bytes
.../github-45k.png | Bin 0 -> 98492 bytes
.../image-transformation.png | Bin 0 -> 141189 bytes
.../pg-graphql.png | Bin 0 -> 33406 bytes
.../pgvector.png | Bin 0 -> 130012 bytes
.../references.png | Bin 0 -> 71803 bytes
.../self-host-supabase-digital-ocean.png | Bin 0 -> 91383 bytes
.../supabase-beta-update-january-2023.jpg | Bin 0 -> 677276 bytes
10 files changed, 13 insertions(+), 11 deletions(-)
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/beta-update-january-meme.jpeg
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/chatgpt-for-supabase-docs.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/github-45k.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/image-transformation.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/pg-graphql.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/pgvector.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/references.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/self-host-supabase-digital-ocean.png
create mode 100644 apps/www/public/images/blog/2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
diff --git a/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
index f9c37073f43..fbb5d1f8c56 100644
--- a/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
+++ b/apps/www/_blog/2023-02-08-supabase-beta-january-2023.mdx
@@ -2,8 +2,8 @@
title: Supabase Beta January 2023
description: New Postgres extensions, pg_graphql updates, changes to Edge Functions, and more!
author: ant_wilson
-image: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
-thumb: 2023-01-05-december-beta-update/monthly-update-december2022.jpg
+image: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
+thumb: 2023-02-08-january-beta-update/supabase-beta-update-january-2023.jpg
tags:
- release-notes
date: '2023-02-08'
@@ -16,7 +16,7 @@ We’ve got some new Postgres extensions, GraphQL updates, changes to Edge Funct
## Storing OpenAI embeddings in Postgres with pgvector
-IMAGE
+
pgvector is a popular PostgreSQL extension for storing embeddings and performing vector similarity search. It was one of the most requested extensions by the AI/ML community and is now available thanks to [gregnr](https://github.com/gregnr).
@@ -24,7 +24,7 @@ pgvector is a popular PostgreSQL extension for storing embeddings and performing
## Meet Supabase Clippy: ChatGPT for Docs
-IMAGE
+
Greg wasted no time and took pgvector for a spin, he combined it with OpenAI to build Supabase Clippy, a next-generation doc search. The first implementation is a 1-week MVP and fully open source, so you can build on top of it.
@@ -33,7 +33,7 @@ Greg wasted no time and took pgvector for a spin, he combined it with OpenAI t
## Client library reference: Python and C#
-IMAGE
+
We have released extensive reference docs for C# and Python, detailing every object and method. What are you going to build?
@@ -42,7 +42,7 @@ We have released extensive reference docs for C# and Python, detailing every obj
## pg_graphql now supports Views, Materialized Views, and Foreign Tables
-IMAGE
+
Views, Materialized Views, and Foreign Tables are three database objects that provide a powerful way to access and organize and transform data without duplication.
@@ -50,7 +50,7 @@ Views, Materialized Views, and Foreign Tables are three database objects that pr
## Automatic WebP detection for Image Transformation
-IMAGE
+
WebP is a modern image format that provides superior lossless and lossy compression for images on the web. We are enabling format conversion by default for anyone who has Image Transformations. You can opt out by including format: origin in the transformation parameters.
@@ -74,7 +74,7 @@ WebP is a modern image format that provides superior lossless and lossy compress
## Deploy Supabase on DigitalOcean
-IMAGE
+
We teamed up with DigitalOcean to level up self-hosted Supabase. This guide shows how to host Supabase on DigitalOcean using Sendgrid, Packer, and Terraform. More collaborations coming soon!\
@@ -82,7 +82,7 @@ We teamed up with DigitalOcean to level up self-hosted Supabase. This guide show
## 45k Github stars (and counting!)
-IMAGE
+
We hit two big milestones: 45k stars and Supabase is one the top 200 most-popular repos on Github 💥
@@ -92,7 +92,7 @@ Massive thanks to the community for all the support 👁️⚡️👁️
## Made with Supabase
-IMAGE
+
[supermeme.ai](https://www.supermeme.ai/) | Two things that we are fans of are memes and AI. Just describe your thoughts and let AI create original memes for you. Available in 110+ languages!
@@ -100,6 +100,8 @@ Discover other great projects: [Made with Supabase](https://www.madewithsupabas
## Extended Community Highlights
+
+
- JWT Helper for Supabase by Zuplo. [Tool](https://zuplo.com/blog/2023/01/05/supabase-jwt-auth-helper/)
- ClickHouse and PostgreSQL - a Match Made in Data Heaven - Part 2. [Blog Post](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres-part-2)
- Building a Startup from Scratch: My Mistakes as CTO. [Blog Post](https://egor-romanov.medium.com/building-a-startup-from-scratch-my-mistakes-as-cto-b20b463e0058)\
@@ -121,7 +123,7 @@ We've redesigned our [Careers page](https://supabase.com/careers) to better re
As always, one of our favorite memes from last month. [Follow us on Twitter](https://twitter.com/supabase) for more.
-MEME
+
See you next month!
diff --git a/apps/www/public/images/blog/2023-02-08-january-beta-update/beta-update-january-meme.jpeg b/apps/www/public/images/blog/2023-02-08-january-beta-update/beta-update-january-meme.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..5d6951749224cf2f8d481f536e4bbed56f946ac4
GIT binary patch
literal 140361
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