diff --git a/.changeset/many-wolves-add.md b/.changeset/many-wolves-add.md
new file mode 100644
index 0000000000..09610d669e
--- /dev/null
+++ b/.changeset/many-wolves-add.md
@@ -0,0 +1,5 @@
+---
+'@nhost/docs': major
+---
+
+New Docs powered by Mintlify
diff --git a/.changeset/sour-fishes-talk.md b/.changeset/sour-fishes-talk.md
new file mode 100644
index 0000000000..46dedeb869
--- /dev/null
+++ b/.changeset/sour-fishes-talk.md
@@ -0,0 +1,5 @@
+---
+'@nhost/dashboard': minor
+---
+
+feat: don't show deprecated plans
diff --git a/.gitignore b/.gitignore
index f1ae848e7f..76a471845d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,7 +23,7 @@ node_modules/
tmp/
.pnpm-store
.turbo
-.env
+.env*
.secrets
out/
diff --git a/dashboard/src/features/projects/overview/components/OverviewTopBar/OverviewTopBar.tsx b/dashboard/src/features/projects/overview/components/OverviewTopBar/OverviewTopBar.tsx
index 2e3cdcf062..1ce4a913c3 100644
--- a/dashboard/src/features/projects/overview/components/OverviewTopBar/OverviewTopBar.tsx
+++ b/dashboard/src/features/projects/overview/components/OverviewTopBar/OverviewTopBar.tsx
@@ -85,7 +85,7 @@ export default function OverviewTopBar() {
diff --git a/dashboard/src/features/projects/workspaces/components/WorkspaceApps/WorkspaceApps.tsx b/dashboard/src/features/projects/workspaces/components/WorkspaceApps/WorkspaceApps.tsx
index 8ee81111a5..2aaa0ceac6 100644
--- a/dashboard/src/features/projects/workspaces/components/WorkspaceApps/WorkspaceApps.tsx
+++ b/dashboard/src/features/projects/workspaces/components/WorkspaceApps/WorkspaceApps.tsx
@@ -80,7 +80,7 @@ function AllWorkspaceApps() {
diff --git a/dashboard/src/gql/app/prefetchNewApp.graphql b/dashboard/src/gql/app/prefetchNewApp.graphql
index d1303b967e..4838ab97a1 100644
--- a/dashboard/src/gql/app/prefetchNewApp.graphql
+++ b/dashboard/src/gql/app/prefetchNewApp.graphql
@@ -32,7 +32,7 @@ query PrefetchNewApp {
regions(order_by: { city: asc }) {
...PrefetchNewAppRegions
}
- plans(order_by: { sort: asc }) {
+ plans(order_by: {sort: asc}, where: {deprecated: {_eq: false}}) {
...PrefetchNewAppPlans
}
workspaces {
diff --git a/dashboard/src/utils/__generated__/graphql.ts b/dashboard/src/utils/__generated__/graphql.ts
index dac7805023..c6bb45e18f 100644
--- a/dashboard/src/utils/__generated__/graphql.ts
+++ b/dashboard/src/utils/__generated__/graphql.ts
@@ -14948,6 +14948,7 @@ export type Plans = {
/** An aggregate relationship */
apps_aggregate: Apps_Aggregate;
createdAt: Scalars['timestamptz'];
+ deprecated: Scalars['Boolean'];
featureBackupEnabled: Scalars['Boolean'];
featureCustomDomainsEnabled: Scalars['Boolean'];
featureCustomEmailTemplatesEnabled: Scalars['Boolean'];
@@ -14961,6 +14962,7 @@ export type Plans = {
/** Max number of functions to deploy per git deployment */
featureMaxNumberOfFunctionsPerDeployment: Scalars['Int'];
id: Scalars['uuid'];
+ individual: Scalars['Boolean'];
isDefault: Scalars['Boolean'];
isFree: Scalars['Boolean'];
isPublic: Scalars['Boolean'];
@@ -15048,6 +15050,7 @@ export type Plans_Bool_Exp = {
apps?: InputMaybe
;
apps_aggregate?: InputMaybe;
createdAt?: InputMaybe;
+ deprecated?: InputMaybe;
featureBackupEnabled?: InputMaybe;
featureCustomDomainsEnabled?: InputMaybe;
featureCustomEmailTemplatesEnabled?: InputMaybe;
@@ -15058,6 +15061,7 @@ export type Plans_Bool_Exp = {
featureMaxFilesSize?: InputMaybe;
featureMaxNumberOfFunctionsPerDeployment?: InputMaybe;
id?: InputMaybe;
+ individual?: InputMaybe;
isDefault?: InputMaybe;
isFree?: InputMaybe;
isPublic?: InputMaybe;
@@ -15096,6 +15100,7 @@ export type Plans_Inc_Input = {
export type Plans_Insert_Input = {
apps?: InputMaybe;
createdAt?: InputMaybe;
+ deprecated?: InputMaybe;
featureBackupEnabled?: InputMaybe;
featureCustomDomainsEnabled?: InputMaybe;
featureCustomEmailTemplatesEnabled?: InputMaybe;
@@ -15109,6 +15114,7 @@ export type Plans_Insert_Input = {
/** Max number of functions to deploy per git deployment */
featureMaxNumberOfFunctionsPerDeployment?: InputMaybe;
id?: InputMaybe;
+ individual?: InputMaybe;
isDefault?: InputMaybe;
isFree?: InputMaybe;
isPublic?: InputMaybe;
@@ -15200,6 +15206,7 @@ export type Plans_On_Conflict = {
export type Plans_Order_By = {
apps_aggregate?: InputMaybe;
createdAt?: InputMaybe;
+ deprecated?: InputMaybe;
featureBackupEnabled?: InputMaybe;
featureCustomDomainsEnabled?: InputMaybe;
featureCustomEmailTemplatesEnabled?: InputMaybe;
@@ -15210,6 +15217,7 @@ export type Plans_Order_By = {
featureMaxFilesSize?: InputMaybe;
featureMaxNumberOfFunctionsPerDeployment?: InputMaybe;
id?: InputMaybe;
+ individual?: InputMaybe;
isDefault?: InputMaybe;
isFree?: InputMaybe;
isPublic?: InputMaybe;
@@ -15236,6 +15244,8 @@ export enum Plans_Select_Column {
/** column name */
CreatedAt = 'createdAt',
/** column name */
+ Deprecated = 'deprecated',
+ /** column name */
FeatureBackupEnabled = 'featureBackupEnabled',
/** column name */
FeatureCustomDomainsEnabled = 'featureCustomDomainsEnabled',
@@ -15256,6 +15266,8 @@ export enum Plans_Select_Column {
/** column name */
Id = 'id',
/** column name */
+ Individual = 'individual',
+ /** column name */
IsDefault = 'isDefault',
/** column name */
IsFree = 'isFree',
@@ -15288,6 +15300,7 @@ export enum Plans_Select_Column {
/** input type for updating data in table "plans" */
export type Plans_Set_Input = {
createdAt?: InputMaybe;
+ deprecated?: InputMaybe;
featureBackupEnabled?: InputMaybe;
featureCustomDomainsEnabled?: InputMaybe;
featureCustomEmailTemplatesEnabled?: InputMaybe;
@@ -15301,6 +15314,7 @@ export type Plans_Set_Input = {
/** Max number of functions to deploy per git deployment */
featureMaxNumberOfFunctionsPerDeployment?: InputMaybe;
id?: InputMaybe;
+ individual?: InputMaybe;
isDefault?: InputMaybe;
isFree?: InputMaybe;
isPublic?: InputMaybe;
@@ -15367,6 +15381,7 @@ export type Plans_Stream_Cursor_Input = {
/** Initial value of the column from where the streaming should start */
export type Plans_Stream_Cursor_Value_Input = {
createdAt?: InputMaybe;
+ deprecated?: InputMaybe;
featureBackupEnabled?: InputMaybe;
featureCustomDomainsEnabled?: InputMaybe;
featureCustomEmailTemplatesEnabled?: InputMaybe;
@@ -15380,6 +15395,7 @@ export type Plans_Stream_Cursor_Value_Input = {
/** Max number of functions to deploy per git deployment */
featureMaxNumberOfFunctionsPerDeployment?: InputMaybe;
id?: InputMaybe;
+ individual?: InputMaybe;
isDefault?: InputMaybe;
isFree?: InputMaybe;
isPublic?: InputMaybe;
@@ -15414,6 +15430,8 @@ export enum Plans_Update_Column {
/** column name */
CreatedAt = 'createdAt',
/** column name */
+ Deprecated = 'deprecated',
+ /** column name */
FeatureBackupEnabled = 'featureBackupEnabled',
/** column name */
FeatureCustomDomainsEnabled = 'featureCustomDomainsEnabled',
@@ -15434,6 +15452,8 @@ export enum Plans_Update_Column {
/** column name */
Id = 'id',
/** column name */
+ Individual = 'individual',
+ /** column name */
IsDefault = 'isDefault',
/** column name */
IsFree = 'isFree',
@@ -15700,6 +15720,12 @@ export type Query_Root = {
getLogsVolume: Metrics;
getPostgresVolumeCapacity: Metrics;
getPostgresVolumeUsage: Metrics;
+ /**
+ * Returns list of label values for a given label within a range of time.
+ *
+ * If `from` and `to` are not provided, they default to 6 hour ago and now, respectively.
+ */
+ getServiceLabelValues: Array;
getTotalRequests: Metrics;
getUsageAll: Array;
/** fetch data from the table: "github_app_installations" using primary key columns */
@@ -16544,6 +16570,11 @@ export type Query_RootGetPostgresVolumeUsageArgs = {
};
+export type Query_RootGetServiceLabelValuesArgs = {
+ appID: Scalars['String'];
+};
+
+
export type Query_RootGetTotalRequestsArgs = {
appID: Scalars['String'];
from?: InputMaybe;
@@ -24465,7 +24496,7 @@ export const PrefetchNewAppDocument = gql`
regions(order_by: {city: asc}) {
...PrefetchNewAppRegions
}
- plans(order_by: {sort: asc}) {
+ plans(order_by: {sort: asc}, where: {deprecated: {_eq: false}}) {
...PrefetchNewAppPlans
}
workspaces {
diff --git a/docs/.gitignore b/docs/.gitignore
index 56d0542ac9..cc98e140b5 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -5,7 +5,6 @@
/build
# Generated files
-.docusaurus
.cache-loader
# Misc
@@ -18,5 +17,3 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
-.vercel
-docs/reference/docgen
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
index 54bb43a3b9..c89c478d15 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,37 +1,32 @@
-# Nhost Docs
+# Mintlify Starter Kit
-This documentation describes how to build, start and test the documentation locally.
+Click on `Use this template` to copy the Mintlify starter kit. The starter kit contains examples including
-### Installation
+- Guide pages
+- Navigation
+- Customizations
+- API Reference pages
+- Use of popular components
-```bash
-$ pnpm i
-```
+### Development
-### Local Development
+Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command
-```bash
-$ pnpm start
```
-
-This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
-
-### Build
-
-```bash
-$ pnpm build
+npm i -g mintlify
```
-This command generates static content into the `build` directory and can be served using any static contents hosting service.
+Run the following command at the root of your documentation (where mint.json is)
-### Serve
-
-```bash
-$ pnpm serve
```
+mintlify dev
+```
+
+### Publishing Changes
-This command serves the static content from the `build` directory.
+Install our Github App to autopropagate changes from youre repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard.
-### Contributing
+#### Troubleshooting
-All pull requests are greatly appreciated! See our [contributing guide](https://github.com/nhost/nhost/blob/main/CONTRIBUTING.md) to get started.
+- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.
+- Page loads as a 404 - Make sure you are running in a folder with `mint.json`
diff --git a/docs/_snippets/snippet-example.mdx b/docs/_snippets/snippet-example.mdx
new file mode 100644
index 0000000000..089334c54f
--- /dev/null
+++ b/docs/_snippets/snippet-example.mdx
@@ -0,0 +1,3 @@
+## My Snippet
+
+This is an example of a reusable snippet
diff --git a/docs/development/cli/commands.mdx b/docs/development/cli/commands.mdx
new file mode 100644
index 0000000000..ef0bcd4c51
--- /dev/null
+++ b/docs/development/cli/commands.mdx
@@ -0,0 +1,162 @@
+---
+title: Commands
+description: Available commands to run and manage local Nhost projects
+icon: rectangle-code
+---
+
+## `nhost init`
+
+Initializes current directory with a new project containing configuration and objects necessary to run Nhost locally.
+
+
+
+ Initializing Nhost project
+
+ Successfully initialized Nhost project, run `nhost up` to start development
+
+
+### Flags
+
+`--remote` optional `false`
+Pulls state from a remote Nhost instance.
+
+
+## `nhost up`
+
+Starts Nhost for development and testing purposes. Requires scaffolding from `nhost init`.
+
+
+
+```
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/local
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+```
+
+
+
+
+
+
+## `nhost down`
+
+Stops all services and deletes all containers.
+
+### Flags
+
+`--volumes` optional `false`
+Remove volumes.
+
+
+## `nhost login`
+
+Login to an Nhost account to perform authenticated operations.
+
+
+- email: user@domain.com
+- password:
+
+Authenticating
+Successfully logged in, creating PAT
+Successfully created PAT
+Storing PAT for future user
+
+
+
+### Flags
+
+`--email` optional
+Email adress.
+
+`--password` optional
+Password.
+
+`--pat` optional
+Use this Personal Access Token instead of generating a new one with email/password.
+
+## `nhost logs`
+
+Render all logs.
+
+
+```
+app-auth-1 | {"level":"info","message":"Applying SQL migrations..."}
+app-auth-1 | {"level":"info","message":"SQL migrations applied"}
+app-auth-1 | {"level":"info","message":"Applying metadata..."}
+app-auth-1 | {"level":"info","message":"Metadata applied"}
+app-auth-1 | {"level":"info","message":"Running on port 4000"}
+```
+
+
+
+### Flags
+
+`--follow` optional
+Follow (or tail) log output.
+
+`--no-color` optional
+Produce monochrome output.
+
+`--no-log-prefix` optional
+Don't print prefix in logs.
+
+`--since` optional
+Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
+
+`--tail` optional `all`
+Number of lines to show from the end of the logs for each service
+
+`--timestamps` optional
+Show timestamps
+
+`--until` optional
+Show logs before a timestamp
+
+## `nhost list`
+
+List all remote Nhost projects this user has access to.
+
+
+
+```
+ # │ Subdomain │ Project │ Workspace │ Region │
+ 1 │ dahvgwlspuridghplrso │ nbp │ Nuno's Workspace │ eu-central-1 │
+ 2 │ mhmvhergiiycqfvhisan │ Bun Generator │ Nhost Examples │ eu-central-1 │
+ 4 │ qaxzubvwbuhzgxswghug │ Next.js Stripe Starter Template │ Nhost Examples │ eu-central-1 │
+ 5 │ cuzwcdqwgmhbxqetfbci │ Nhost Netlify Starter Template │ Nhost Examples │ us-east-1 │
+ 6 │ jsjiiuwiuqdvvwgwhxnx │ quickstarts │ Nhost Examples │ eu-central-1 │
+ 7 │ vvhjnsgebtspueuuxnvp │ React Apollo │ Nhost Examples │ eu-central-1 │
+ 9 │ vue-quickstart │ vue-quickstart │ Nhost Examples │ eu-central-1 │
+ 11 │ odqlmnqxospbvqvphuyl │ monitoring-app-frankfurt │ monitoring │ eu-central-1 │
+ 12 │ xmhqdbhkvskuubnelgkc │ monitoring-app-london │ monitoring │ eu-west-2 │
+ 13 │ jjetetkbmovfgyewremk │ monitoring-app-mumbai │ monitoring │ ap-south-1 │
+```
+
+
+## `nhost secrets`
+
+Manage secrets in the Nhost cloud.
+
+### `nhost secrets create`
+
+#### Flags
+
+
+
+
+
diff --git a/docs/development/cli/getting-started.mdx b/docs/development/cli/getting-started.mdx
new file mode 100644
index 0000000000..b2148e2694
--- /dev/null
+++ b/docs/development/cli/getting-started.mdx
@@ -0,0 +1,87 @@
+---
+title: Nhost CLI
+description: Tools to develop and test Nhost projects locally
+icon: square-terminal
+---
+
+## Instaling the Nhost CLI
+
+To install the Nhost CLI copy the following command and paste it into your terminal:
+
+```bash
+> sudo curl -L https://raw.githubusercontent.com/nhost/cli/main/get.sh | bash
+```
+
+The `get.sh` script checks for both the architecture and operating system and installs the right binary.
+
+### Supported Platforms:
+
+- MacOS
+- Linux
+- Windows WSL2
+
+### Dependencies:
+
+- [Docker](https://docs.docker.com/get-docker/)
+- [curl](https://curl.se/)
+- [Git](https://git-scm.com/downloads)
+
+## Updating the Nhost CLI
+
+Update an existing installation to the latest version.
+
+```bash Terminal
+> nhost sw upgrade
+```
+
+## Running Nhost
+
+Inside of the folder where you want to create your project, run:
+
+```bash Terminal
+> nhost init
+
+Initializing Nhost project
+Successfully initialized Nhost project, run `nhost up` to start development
+```
+
+`init` will scaffold a bunch of files that Nhost uses to manage configuration, database schema and migrations, APIs, functions, etc.
+
+With the project scaffolding in place, start the local Nhost instance with `nhost up`:
+
+```bash Terminal
+> nhost up
+
+
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/local
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+```
+
+The following services are started:
+
+- Postgres
+- Hasura Console
+- GraphQL API
+- Authentication
+- Storage
+- Functions
+- Dashboard
+- Mailhog (SMTP server for testing emails locally)
+
+Support for Nhost Run services is coming soon
diff --git a/docs/development/cli/overview.mdx b/docs/development/cli/overview.mdx
new file mode 100644
index 0000000000..14a52660c0
--- /dev/null
+++ b/docs/development/cli/overview.mdx
@@ -0,0 +1,32 @@
+---
+title: 'Overview'
+description: 'Developing locally with the Nhost CLI'
+icon: hand-wave
+---
+
+Run the Nhost Stack on your computer with `nhost init` and `nhost start`. The Nhost CLI ships with all the tools you need to run, test, and operate your projects.
+
+Manage configuration, database migrations, API schema changes, and more, with ease.
+
+```bash
+> nhost up
+
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/local
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+```
diff --git a/docs/favicon.svg b/docs/favicon.svg
new file mode 100644
index 0000000000..3d93d5e8dc
--- /dev/null
+++ b/docs/favicon.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/guides/ai/assistants.mdx b/docs/guides/ai/assistants.mdx
new file mode 100644
index 0000000000..48f864a298
--- /dev/null
+++ b/docs/guides/ai/assistants.mdx
@@ -0,0 +1,394 @@
+---
+title: "Assistants"
+description: "Deploy your customized AI assistants"
+icon: wand-magic-sparkles
+---
+
+AI Assistants leverages ChatGPT and allows you to define different AI assistants with pre-defined tools and accesses to your data. This pre-defined access is expressed as GraphQL queries or mutations and/or webhooks and are unique to each AI assistant, meaning you can create different AI assistants with access to different type of data. In addition, AI assistants are fully integrated with Nhost permissions which means only data the user has access to will be made available to each AI assistant session.
+
+## Demo
+
+To demonstrate how to configure and use AI Assistants we are going to be using a sample project with a database full of movies.
+
+## Creating AI Assistants
+
+The first step is to create an AI assistant. You can create an AI assistant by utilizing the `insertAssistant` mutation or by using the dashboard. For instance:
+
+
+
+![dashboard](/images/guides/ai/assistants/dashboard.png)
+
+
+
+```graphql
+mutation {
+ graphite {
+ insertAssistant(object: {
+ name: "awesome-assistant-for-my-users",
+ description: "My Awesome assistant for my users",
+ instructions: "You are a useful assistant for this demo application. You are an expert on movies. You also know a bit about deep questions.",
+ model: "gpt-3.5-turbo-1106",
+ graphql: [
+ {
+ description: "get movies with higher score than the input"
+ name: "GetMoviesWithScoreHigherThan",
+ query: "query ($score: numeric!) { movies(where: {score: {_gt: $score}}) { name overview score }}",
+ arguments: [
+ {
+ name: "score",
+ description: "score to compare against",
+ type: "number",
+ required: true,
+ }
+ ]
+ },
+ {
+ description: "search movies using natural language",
+ name: "SearchMovies",
+ query: "query GraphiteSearchMovies($query: String!) { graphiteSearchMovies(args: {query: $query, amount: 5}) { id name overview genre } }",
+ arguments: [
+ {
+ name: "query",
+ description: "Text to search",
+ type: "string",
+ required: true,
+ }
+ ]
+ }
+ {
+ description: "insert a movie into the database",
+ name: "InsertMovie",
+ query: "mutation InsertMovie($name: String, $overview: String, $genre: String, $crew: String, $budget: bigint, $revenue: bigint, $country: String, $score: numeric) { insertMovie(object: {name: $name, overview: $overview, score: $score, genre: $genre, crew: $crew, budget: $budget, revenue: $revenue, country: $country}) {id}}",
+ arguments: [
+ {
+ name: "name",
+ description: "Name of the movie",
+ type: "string",
+ required: true,
+ },
+ {
+ name: "overview",
+ description: "Overview of the movie",
+ type: "string",
+ required: true,
+ },
+ {
+ name: "genre",
+ description: "Genre of the movie",
+ type: "string",
+ required: true,
+ },
+ {
+ name: "crew",
+ description: "Crew of the movie",
+ type: "string",
+ required: true,
+ },
+ {
+ name: "budget",
+ description: "Budget of the movie",
+ type: "number",
+ required: true,
+ },
+ {
+ name: "revenue",
+ description: "Revenue generated by the movie",
+ type: "number",
+ required: true,
+ },
+ {
+ name: "country",
+ description: "Country of origin for the movie",
+ type: "string",
+ required: true,
+ },
+ {
+ name: "score",
+ description: "Score of the movie",
+ type: "number",
+ required: true,
+ },
+ ]
+ }
+ ],
+ webhooks: [
+ {
+ name: "answer_deep_questions",
+ description: "Answers deep questions about life, the universe and everything",
+ URL: "https://local.functions.nhost.run/v1/meaning",
+ arguments: [
+ {
+ name: "question",
+ description: "question that needs answer",
+ type: "string",
+ required: true,
+ }
+ ],
+ }
+ ]
+ }) {
+ assistantID
+ }
+ }
+}
+```
+
+
+
+
+### Tools
+
+In order to enhance our AI assistants we are leveraging tools. Tools can be either queries or mutations performed against your project's GraphQL engine or they can also be any arbitrary endpoint you choose. Using the example above, we added 4 different tools to our AI Assistant:
+
+
+- The GraphQL query `GetMoviesWithScoreHigherThan`, which will allow the AI Assistant to query movies based on their score.
+- The GraphQL query `SearchMovies`, which leverages [auto-embeddings](auto-embeddings) and will allow the AI Assistant to query movies using natural language.
+- The GraphQL mutation `InsertMovie`, which will let the AI Assistant to insert new movies directly into the database.
+- The webhook `answer_deep_questions`, which is a serverless function that can respond to deep questions about life and the universe.
+
+With a good name and description, the AI Assistant will know that certain information can be made available or that certain actions are at its disposal via these tools. We will see more in detail how this works a bit later but for now suffices to say that:
+
+- ChatGPT doesn't actually query the data or perform any action, it tells graphite to execute the tools on its behalf and provide the result.
+- graphite will respect the user session when calling tools so permissions are respected.
+- GraphQL queries and mutations are performed against the project's GraphQL endpoint
+- For webhooks you can specify any URL you want and graphite will perform a POST with a JSON object as body
+
+## Starting a session
+
+To start a session you can use the mutation `startSession` and pass the id of the assistant you want to use. For instance, to start a session using the assistant we created in the previous section:
+
+```graphql
+mutation {
+ graphite {
+ startSession(assistantID:"asst_xolmq2yeBBRi8CKGc5YWXGaA") {
+ sessionID
+ }
+ }
+}
+```
+
+You should receive a response similar to:
+
+```json
+{
+ "data": {
+ "graphite": {
+ "startSession": {
+ "sessionID": "thread_dxHHNpQryFpJ8wXXD9Q2fQJg"
+ }
+ }
+ }
+}
+```
+
+## Interacting with the Assistant
+
+Now that you have started a session you can send your first message:
+
+```graphql
+mutation {
+ graphite {
+ sendMessage(
+ sessionID:"thread_dxHHNpQryFpJ8wXXD9Q2fQJg",
+ message: "what is the meaning of life?"
+ prevMessageID: "",
+ ) {
+ sessionID
+ messages {
+ id
+ createdAt
+ role
+ message
+ }
+ }
+ }
+}
+```
+
+The field `prevMessageID` is used to only return messages after this one. As this is the beginning of the conversation we send an empty string to get all messages back. After executing that mutation we should receive a response like:
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sendMessage": {
+ "sessionID": "thread_dxHHNpQryFpJ8wXXD9Q2fQJg",
+ "messages": [
+ {
+ "id": "msg_5LQa4sWH2QaN0xi5ezxHQUK1",
+ "createdAt": "2023-12-08T09:33:12Z",
+ "role": "user",
+ "message": ""
+ },
+ {
+ "id": "msg_Xv6XvZrTrgBOzviLeILkm7d3",
+ "createdAt": "2023-12-08T09:33:36Z",
+ "role": "user",
+ "message": "what is the meaning of life?"
+ },
+ {
+ "id": "msg_kTZonuiwZDxnipDADXk4bgFd",
+ "createdAt": "2023-12-08T09:33:41Z",
+ "role": "assistant",
+ "message": "The answer to the meaning of life is 42. It's a deep philosophical concept from \"The Hitchhiker's Guide to the Galaxy\" by Douglas Adams."
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
+Something to note is that ChatGPT detected that this was a "deep question" that could be answered with the webhook `answer_deep_questions` so this is roughly what happened:
+
+![answer deep questions sequence of events](/images/guides/ai/assistants/answer_deep_questions.png)
+
+We can continue the conversation by performing from mutations. Notice this time we can ask graphite to only return new message by specifying `prevMessageID`:
+
+```graphql
+mutation {
+ graphite {
+ sendMessage(
+ sessionID:"thread_dxHHNpQryFpJ8wXXD9Q2fQJg",
+ message: "recommend a comedy movie for a rainy day with score higher than 80"
+ prevMessageID: "msg_kTZonuiwZDxnipDADXk4bgFd",
+ ) {
+ sessionID
+ messages {
+ id
+ createdAt
+ role
+ message
+ }
+ }
+ }
+}
+```
+
+Which should return something like:
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sendMessage": {
+ "sessionID": "thread_dxHHNpQryFpJ8wXXD9Q2fQJg",
+ "messages": [
+ {
+ "id": "msg_xfq0nauRLEAAvelve2M48wlR",
+ "createdAt": "2023-12-08T09:37:07Z",
+ "role": "user",
+ "message": "recommend a comedy movie for a rainy day with score higher than 80"
+ },
+ {
+ "id": "msg_FbLWDnN9zPlsFtcQJYEpTnRY",
+ "createdAt": "2023-12-08T09:37:22Z",
+ "role": "assistant",
+ "message": "Here are a few comedy movies with a score higher than 80 that you might enjoy on a rainy day:\n\n1. Saint Frances\n Overview: A comedy-drama film that follows a struggling 34-year-old woman as she becomes the nanny for a six-year-old girl and navigates life's ups and downs.\n Score: 86\n\n2. My Life as a Zucchini\n Overview: After losing his mother, a young boy is sent to a foster home filled with other orphans, and he seeks to find love, laughter, and family amidst the challenges.\n Score: 84\n\n3. Paddington\n Overview: The movie follows the misadventures of a young bear from Peru who finds himself in London and is taken in by a London family.\n Score: 86\n\n4. In the Heights\n Overview: A musical-comedy drama set in the neighborhood of Washington Heights in New York City, where a bodega owner dreams of a better life.\n Score: 83\n\n5. The Grand Budapest Hotel\n Overview: This comedic adventure film takes place in a renowned European hotel and follows the escapades of its quirky characters, including a concierge and a lobby boy.\n Score: 86\n\nThese movies offer humor and heartwarming stories that are perfect for a cozy movie night. Enjoy watching!"
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
+In this case ChatGPT detected some of the information needed to formulate the answer could be retrieved with the GraphQL query `GetMoviesWithScoreHigherThan` so it requested graphite to run the query and return the data. This is what happened:
+
+![GetMoviesWithScoreHigherThan sequence of events](/images/guides/ai/assistants/GetMoviesWithScoreHigherThan.png)
+
+## Implementing workflows
+
+Interactions are not limited to just one tool or to simply query data. Tools can be combined and they can perform any action you wish. For instance, let's take a look to the following session:
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sendDevMessage": {
+ "sessionID": "thread_kxgdq2wPDwdWETwGsC68psGw",
+ "messages": [
+ {
+ "id": "msg_KvVwu3ypYgIdwJhOU57NYoFh",
+ "role": "user",
+ "createdAt": "2023-12-21T08:16:03Z",
+ "message": ""
+ },
+ {
+ "id": "msg_orBzaQTulaWtFLe2VhgjX0op",
+ "role": "user",
+ "createdAt": "2023-12-21T08:16:18Z",
+ "message": "Are there any good comedies in space?"
+ },
+ {
+ "id": "msg_WatLEqiP8IyZYkImBsgJPtm0",
+ "role": "assistant",
+ "createdAt": "2023-12-21T08:16:29Z",
+ "message": "Here are some good comedies set in space:\n\n1. Linoleum - When the host of a failing children’s science show tries to fulfill his childhood dream of becoming an astronaut by building a rocket ship in his garage, a series of bizarre events occur that cause him to question his own reality.\n\n2. Spaceballs - When the nefarious Dark Helmet hatches a plan to snatch Princess Vespa and steal her planet's air, space-bum-for-hire Lone Starr and his clueless sidekick fly to the rescue. Along the way, they meet Yogurt, who puts Lone Starr wise to the power of \"The Schwartz.\" Can he master it in time to save the day?\n\nThese are great choices for a space comedy!"
+ },
+ {
+ "id": "msg_Jq8iO0EXHtb2x9Z9CLFgxzhT",
+ "role": "user",
+ "createdAt": "2023-12-21T08:17:09Z",
+ "message": "Spaceballs sounds like fun. Could you imagine a sequel?"
+ },
+ {
+ "id": "msg_2landwp0CiGuzhTuyInUjRFN",
+ "role": "assistant",
+ "createdAt": "2023-12-21T08:17:15Z",
+ "message": "Absolutely, a sequel to Spaceballs could be a lot of fun! In the original movie, the characters encounter the nefarious Dark Helmet and his diabolical plans. A sequel could explore new adventures, new villains, and wacky space escapades. It could also offer a fresh take on space-themed parodies and comedic twists. Fans of the original movie would surely be excited to see what new mischief Lone Starr, Princess Vespa, and the rest of the gang get into in a sequel."
+ },
+ {
+ "id": "msg_hVjfo6H0uJu3kX43zNhFMizl",
+ "role": "user",
+ "createdAt": "2023-12-21T08:18:36Z",
+ "message": "Now come up with a title and an overview and add it to the database and let me know the id returned"
+ },
+ {
+ "id": "msg_B75oj7QFtR8pubkBdp1rAI4a",
+ "role": "assistant",
+ "createdAt": "2023-12-21T08:18:54Z",
+ "message": "The movie \"Spaceballs 2: The Search for More Money\" has been successfully added to the database. The ID returned for the movie is \"1e2f9f95-34f0-4865-94fc-4f85bc93dd1a\". Get ready for a cosmic adventure that's twice the fun and twice the lunacy!"
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
+In this session the following happened:
+
+1. We asked about comedies in space, which prompted the AI Assistant to leverage tool `SearchMovies`, which leverages auto-embeddings to perform searches using natural language.
+2. Then we asked the Assistant to imagine a sequel and insert it in the database, which prompted the AI assistant to leverage the tool `InsertMovie` to add it to the database.
+
+True, to its word, the movie was added to the database successfully:
+
+```json
+{
+ "data": {
+ "movie": {
+ "id": "1e2f9f95-34f0-4865-94fc-4f85bc93dd1a",
+ "name": "Spaceballs 2: The Search for More Money",
+ "overview": "After successfully thwarting Dark Helmet's plans, Lone Starr and his crew find themselves in need of more cash. They embark on a hilarious and outrageous quest to find the elusive currency of the galaxy: spacebucks. Along the way, they encounter new foes, old friends, and a lot of absurdity. Get ready for a cosmic adventure that's twice the fun and twice the lunacy!",
+ "genre": "Comedy, Science Fiction"
+ }
+ }
+}
+```
+
+And remember, this is just a tiny example of what tools can do. Tools can do anything you want; from working with data in your project to booking flights or selling your products to your users.
+
+## User session
+
+Interacting with graphite requires a user session (either an Authorization header or the admin secret). When interacting with the GraphQL endpoint or the webhook, graphite will re-use this session, which means that the webhook can use these headers to authorize the request. It also means that the GraphQL query will be performed as the user, so the user will have to have permissions to perform the query and will only get data the user has access to.
+
+## Other GraphQL queries/mutation
+
+In addition to the queries/mutations shown in this document there are other mutations for listing, deleting and updating assistants, sessions, etc. We recommend you to check the GraphQL schema to see what's available.
+
+## Metadata and Permissions
+
+For each assistant and session managed by graphite, a row in the tables `graphite.assistants` and `graphite.sessions` will be made available. The purpose of this metadata is to allow you to set permissions as with any other object in your project. For details on which permissions are needed for each specific query and mutation refer to the GraphQL documentation in the [reference](/reference/graphql/ai/overview) section.
diff --git a/docs/guides/ai/auto-embeddings.mdx b/docs/guides/ai/auto-embeddings.mdx
new file mode 100644
index 0000000000..9d2eeda0c5
--- /dev/null
+++ b/docs/guides/ai/auto-embeddings.mdx
@@ -0,0 +1,186 @@
+---
+title: "Auto-Embeddings"
+description: "Generate embeddings for your application automatically"
+icon: arrow-right
+---
+
+Auto-emeddings leverages [pgvector](https://github.com/pgvector/pgvector) and [OpenAI](https://platform.openai.com/docs/guides/embeddings) to easily generate embeddings for your data in near real-time and without hassle. In addition, Auto-Embeddings allows you to seamlessly query your data using natural language or even using another object in your database (similarity search). Finally, the embeddings generated by Auto-Embeddings can be leveraged by your own code to perform any analysis or provide any extra functionality you may need.
+
+## Generating embeddings
+
+Embeddings generation works in the following way:
+
+1. Every `sync-period` (5 minutes by default) graphite queries your data and searches for new data (or existing data that changed recently).
+2. It extracts the relevant data for generating the embeddings
+3. It requests OpenAI to generate embeddings
+4. It stores the embeddings alongside the data.
+
+## Querying embeddings
+
+Once the embeddings have been generated you can leverage [pgvector](https://github.com/pgvector/pgvector) to perform any operation you may want. In addition, Auto-Embeddings will automatically provide two new queries; `graphiteSearchXXX` (search using natural language) and `graphiteSimilarXXX` (search for objects similar to a given object), where `XXX` is a name given by you.
+
+## Demo
+
+To demonstrate how to configure Auto-Embeddings we will use an example project where we are storing movies.
+
+Before we start, let's start by explaining the project. Our project contains a single table called `movies` with the following columns:
+
+![table](/images/guides/ai/auto-embeddings/table.png)
+
+
+Our goal is going to be to generate embeddings using the data in the columns `name`, `genre` and `overview`.
+
+### Preparing your database
+
+Before we can start generating embeddings we need to prepare our database:
+
+1. First we are going to need a column to store the embeddings.
+2. Finally, we are going to need a mechanism to detect when embeddings need to be regenerated.
+
+#### Embeddings Column
+
+Creating a column to store embeddings is as easy as creating any other column. Just make sure it is of type `vector(1536)` and it can be `NULL`. For our project we can simply go to the SQL tab and create a migration with the following content:
+
+```sql
+-- in this example we are using "embeddings" as the name for our column
+-- but you can choose anything you want
+ALTER TABLE public.movies ADD COLUMN embeddings vector(1536) NULL;
+```
+
+For instance:
+
+![creating embeddings column](/images/guides/ai/auto-embeddings/column.png)
+
+#### Detecting Changes
+
+On every `sync-period` graphite will perform a graphql query to get all the rows that have outdated embeddings. This means we can build this query in a way that:
+
+1. Gets the data we need for the embeddings.
+2. Retrieves objects with the embeddings column set to `NULL`.
+3. Leverages another mechanism to detect which rows needs their embeddings regenerated.
+
+In this example we are going to opt for the following mechanism to detect outdated embeddings:
+
+1. Add a column `outdated` (boolean) to indicated whether the row is outdated or not.
+2. Add a postgres trigger and function that will set the `outdated` column to true everytime there is a change to our data.
+
+With this in mind we are going to create a migration with the following contents:
+
+```sql
+-- Add the "outdated" column of type "boolean" with a default value of true
+ALTER TABLE "movies" ADD COLUMN "outdated" boolean DEFAULT true;
+
+-- Create a trigger that sets "outdated" to true if the columns
+-- "name", "genre" or "overview" are updated
+CREATE OR REPLACE FUNCTION set_outdated_trigger()
+RETURNS TRIGGER AS $$
+BEGIN
+ IF NEW.name <> OLD.name OR NEW.genre <> OLD.genre OR NEW.overview <> OLD.overview THEN
+ NEW.outdated := true;
+ ELSEIF NEW.embeddings IS NOT NULL THEN
+ NEW.outdated := false;
+ END IF;
+ RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
+
+-- Attach the trigger to the table
+CREATE TRIGGER set_outdated
+BEFORE UPDATE ON "movies"
+FOR EACH ROW
+EXECUTE FUNCTION set_outdated_trigger();
+```
+
+For instance:
+
+![outdated mechanism migration](/images/guides/ai/auto-embeddings/outdated.png)
+
+Now, `graphite`'s query will be (more on this later):
+
+```graphql
+query GetOutdatedMovies {
+ movies(where: {
+ _or: [
+ {embeddings: {_is_null: true}}, # new rows without embeddings
+ {outdated: {_eq: true}, # existing rows with changed data
+ },
+ ]}) {
+ id # id column is mandatory
+ name
+ genre
+ overview
+ }
+}
+```
+
+This mechanism has the advantage that is simple enough and fully handled by postgres so you don't need to worry about it. In addition, it should be flexible enough to cover most cases. For very complex use-cases you could skip the postgres function and trigger and update the `outdated` directly from your application or you could use some completely different mechanism (i.e. a computed field). The important bit is that graphite needs to be able to make a graphql query and get the relevant rows and data.
+
+### Configuring Auto-Embeddings
+
+Now that we have prepared our database we can proceed to configure Auto-Embeddings. You will need the following data:
+
+1. A unique name. We are going to use `movies` for this particular example but it can be anything. This will determine the name of the GraphQL queries `graphiteSearchXXX` and `graphiteSimilarXXX`.
+2. The location of the embeddings column; schema, table and column names, in this example `public`, `movies` and `embeddings` respectively.
+3. A GraphQL query to retrieve the outdated rows and their new data (the query we worked on in the previous section)
+4. A GraphQL mutation that takes the `id` of the object, the embeddings and that updates the relevant object. For instance, in this particular example the following mutation would suffice:
+
+```graphql
+mutation UpdateEmbeddingsMovie($id: uuid!, $embeddings: vector) {
+ updateMovie(pk_columns: {id: $id}, _set: {embeddings: $embeddings}) {
+ __typename
+ }
+}
+```
+
+NOTE: It is important that the query returns the id of the object and that the mutation accepts it as otherwise graphite won't know which object to update.
+
+
+Now that we have all the data we need, adding the configuration is as simple as running the following graphql mutation:
+
+
+
+![configuration](/images/guides/ai/auto-embeddings/auto-embedding.png)
+
+
+```graphql
+mutation {
+ insertGraphiteAutoEmbeddingsConfiguration(
+ object: {
+ name: "movies",
+ schemaName: "public",
+ tableName: "movies",
+ columnName: "embeddings",
+ query: "query GetOutdatedMovies { movies(where: { _or: [ {embeddings: {_is_null: true}}, {outdated: {_eq: true}}, ]}) { id name genre overview crew } }",
+ mutation: "mutation UpdateEmbeddingsMovie( $id: uuid!, $embeddings: vector, ) { updateMovie( pk_columns: {id: $id}, _set: { embeddings: $embeddings, }) { __typename } }",
+ }) {
+ id
+ }
+}
+```
+
+
+
+### Aftermath
+
+#### Embeddings Generation
+
+After executing the mutation above two things will happen; the first one is that if we look at our logs we will start seeing entries like this on the next `sync-period`:
+
+![logs](/images/guides/ai/auto-embeddings/logs.png)
+
+
+The logs indicate that graphite has started to generate embeddings for the movies. We can track the progress by counting movies with the `embeddings` column set to `NULL`:
+
+![auto embeddings count non zero](/images/guides/ai/auto-embeddings/count_non_zero.png)
+
+Until eventually it reaches 0.
+
+![auto embeddings count 0](/images/guides/ai/auto-embeddings/count_0.png)
+
+
+#### Natural Language and Similarity Search
+
+The second thing that will happen is that the queries `graphiteSearchMovies`, `graphiteSearchMoviesAggregate`, `graphiteSimilarMovies` and `graphiteSimilarMoviesAggregate` will be created. These queries will work similar to the standard `movies` and `moviesAggregate` queries provided by hasura and will respect the same permissions but they will also allow you to query movies using natural language or other movies for comparison. For instance:
+
+![auto-embeddings-search](/images/guides/ai/auto-embeddings/search.png)
+![auto-embeddings-similar](/images/guides/ai/auto-embeddings/similar.png)
diff --git a/docs/guides/ai/dev-assistant.mdx b/docs/guides/ai/dev-assistant.mdx
new file mode 100644
index 0000000000..0a2a0af7f6
--- /dev/null
+++ b/docs/guides/ai/dev-assistant.mdx
@@ -0,0 +1,17 @@
+---
+title: "Developer Assistant"
+description: "Empower your developers to code faster and better"
+icon: hat-wizard
+---
+
+The developer assistant is a special AI Assistant enabled through the dashboard that has access to your project's schema and can help developing your project.
+
+To use it simply [enable graphite](enabling-service) and query it through the dasbhoard:
+
+![dashboard](/images/guides/ai/dev-assistants/dashboard.png)
+
+![chat](/images/guides/ai/dev-assistants/chat.png)
+
+## Permissions
+
+Only admins are allowed to interact with the developer assistant.
diff --git a/docs/guides/ai/enabling-service.mdx b/docs/guides/ai/enabling-service.mdx
new file mode 100644
index 0000000000..0f86e28279
--- /dev/null
+++ b/docs/guides/ai/enabling-service.mdx
@@ -0,0 +1,57 @@
+---
+title: "Enabling Service"
+icon: play
+---
+
+You can enable Graphite, Nhost's AI service, with the following steps:
+
+
+
+ Check your project's settings and make sure the database version is at least `14.6-20231018-1`. If it isn't upgrade your database version (latest available version is recommended).
+
+ ![database settings](/images/guides/ai/enabling/database.png)
+
+
+ Get an OpenAI API key from their [customer portal](https://platform.openai.com/account/api-keys).
+
+ ![openai dashboard](/images/guides/ai/enabling/openai.png)
+
+
+ Finally, you can head to your project's settings -> AI section and enable the service or, alternatively, use your TOML configuration file to enable the service:
+
+
+ ![ai configuration screenshot](/images/guides/ai/enabling/settings.png)
+
+
+
+ ```toml
+ [ai]
+ # Version of the service to use. Check the settings page for available versions
+ version = '0.1.0'
+
+ # Used to validate requests between postgres and the AI service.
+ # The AI service will also include the header X-Graphite-Webhook-Secret
+ # with this value set when calling external webhooks so the source of
+ # the request can be validated.
+ webhookSecret = '{{ secrets.GRAPHITE_WEBHOOK_SECRET }}'
+
+ [ai.autoEmbeddings]
+ # How often to run the job that keeps embeddings up to date
+ synchPeriodMinutes = 5
+
+ [ai.openai]
+ # Key to use for authenticating API requests to OpenAI.
+ apiKey = '{{ secrets.OPEANAI_API_KEY }}'
+ # OpenAI organization to use.
+ organization = 'my-org'
+
+ [ai.resources.compute]
+ # Dedicated resources allocated for the service
+ cpu = 125
+ memory = 256
+ ```
+
+
+
+
+
diff --git a/docs/guides/api/configuring-hasura.mdx b/docs/guides/api/configuring-hasura.mdx
new file mode 100644
index 0000000000..8f7d9eb80c
--- /dev/null
+++ b/docs/guides/api/configuring-hasura.mdx
@@ -0,0 +1,173 @@
+---
+title: "Configuring Hasura"
+description: "Learn how to configure your Hasura GraphQL Engine"
+icon: gear
+---
+
+You can customize and tweak the configuration of the Hasura GraphQL Engine using your project's configuration file.
+
+Below, you will find the official `CUE` schema and an example on how to configure your GraphQL service.
+
+## Available Settings
+
+```cue Schema
+// Configuration for hasura service
+#Hasura: {
+ // Version of hasura, you can see available versions in the URL below:
+ // https://hub.docker.com/r/hasura/graphql-engine/tags
+ version: string | *"v2.33.4-ce"
+
+ // JWT Secrets configuration
+ jwtSecrets: [#JWTSecret]
+
+ // Admin secret
+ adminSecret: string
+
+ // Webhook secret
+ webhookSecret: string
+
+ // Configuration for hasura services
+ // Reference: https://hasura.io/docs/latest/deployment/graphql-engine-flags/reference/
+ settings: {
+ // HASURA_GRAPHQL_CORS_DOMAIN
+ corsDomain: [...#Url] | *["*"]
+ // HASURA_GRAPHQL_DEV_MODE
+ devMode: bool | *true
+ // HASURA_GRAPHQL_ENABLE_ALLOWLIST
+ enableAllowList: bool | *false
+ // HASURA_GRAPHQL_ENABLE_CONSOLE
+ enableConsole: bool | *true
+ // HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS
+ enableRemoteSchemaPermissions: bool | *false
+ // HASURA_GRAPHQL_ENABLED_APIS
+ enabledAPIs: [...#HasuraAPIs] | *["metadata", "graphql", "pgdump", "config"]
+
+ // HASURA_GRAPHQL_LIVE_QUERIES_MULTIPLEXED_REFETCH_INTERVAL
+ liveQueriesMultiplexedRefetchInterval: uint32 | *1000
+ }
+
+ logs: {
+ // HASURA_GRAPHQL_LOG_LEVEL
+ level: "debug" | "info" | "error" | *"warn"
+ }
+
+ events: {
+ // HASURA_GRAPHQL_EVENTS_HTTP_POOL_SIZE
+ httpPoolSize: uint32 & >=1 & <=100 | *100
+ }
+
+ // Resources for the service
+ resources?: #Resources
+}
+```
+
+## Example Configuration
+
+To configure your GraphQL instance, simply set the relevant settings under `[hasura]` in your project's configuration file.
+
+```toml nhost.toml
+[hasura]
+version = ''
+adminSecret = 'adminsecret'
+webhookSecret = 'webhooksecret'
+
+[[hasura.jwtSecrets]]
+type = 'HS256'
+key = 'secret'
+
+[hasura.settings]
+corsDomain = ['*']
+devMode = false
+enableAllowList = true
+enableConsole = true
+enableRemoteSchemaPermissions = true
+enabledAPIs = ['metadata']
+liveQueriesMultiplexedRefetchInterval = 1000
+
+[hasura.logs]
+level = 'warn'
+
+[hasura.events]
+httpPoolSize = 10
+
+[hasura.resources]
+replicas = 1
+
+[hasura.resources.compute]
+cpu = 500
+memory = 1024
+```
+
+### JWT Secret
+
+Zooming in on `JWTSecret`.
+
+```cue Schema
+#JWTSecret:
+ ({
+ type: "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "Ed25519" | *"HS256"
+ key: string
+ } |
+ {
+ jwk_url: #Url | *null
+ }) &
+ {
+ claims_format?: "stringified_json" | *"json"
+ audience?: string
+ issuer?: string
+ allowed_skew?: uint32
+ header?: string
+ } & {
+ claims_map?: [...#ClaimMap]
+
+ } &
+ ({
+ claims_namespace: string | *"https://hasura.io/jwt/claims"
+ } |
+ {
+ claims_namespace_path: string
+ } | *{})
+
+#ClaimMap: {
+ claim: string
+ {
+ value: string
+ } | {
+ path: string
+ default?: string
+ }
+} & {
+}
+```
+
+## Example Configuration
+
+```toml nhost.toml
+# example 1
+[[hasura.jwtSecrets]]
+type = 'HS256'
+key = 'secret'
+
+# example 2
+[[hasura.jwtSecrets]]
+jwk_url = 'https:/....'
+
+# example 3
+[[hasura.jwtSecrets]]
+jwk_url = "https://......"
+issuer = "https://my-auth-server.com"
+
+[[hasura.jwtSecrets.claims_map]]
+claim = "x-some-claim"
+value = "some-value"
+
+[[hasura.jwtSecrets.claims_map]]
+claim = "x-other-claim"
+path = "$.user.claim.id"
+default = "default-value"
+```
+
+
+ Read how [Authentication Using
+ JWTs](https://hasura.io/docs/latest/auth/authentication/jwt) works in Hasura
+
diff --git a/docs/guides/api/permissions.mdx b/docs/guides/api/permissions.mdx
new file mode 100644
index 0000000000..5712b7e813
--- /dev/null
+++ b/docs/guides/api/permissions.mdx
@@ -0,0 +1,158 @@
+---
+title: 'Permissions'
+sidebarTitle: Permissions
+description: 'Learn how permissions work'
+icon: octagon-exclamation
+---
+
+**Permissions** or authorization rules are used to control acess to data and are set per role and table for each of the **select**, **insert**, **update**, and **delete** database operations.
+
+Permissions follow a **Zero Trust** model, meaning that by default, no role, with the exception of **admin**, has any access. Access has to be explicitly granted.
+
+![Permission Variables](/images/guides/graphql/dashboard-permissions.png)
+
+Imagine a table `todos` with `id`, `title`, and `user_id` columns. We want users to only have access to their own todos. This is how we would do it:
+
+![Permission Variables](/images/guides/graphql/dashboard-permissions-select.png)
+
+The permission above makes sure users can only select their own todos, because the value of `user_id` must be equal (`_eq`) to the authenticated user's ID (`x-hasura-user-id`).
+
+## What is `x-hasura-user-id`?
+
+`x-hasura-user-id` is a permission variable that is used to create permission rules. Permission Variables come from the session's [access token](/authentication/tokens#access-token). You can add [custom permission variables](#permission-variables) to create more complex permission rules unique to your project.
+
+## Permission Variables
+
+You can add your own permission variables through the Nhost Dashboard under **Settings -> Roles and Permissions -> Permission Variables**. All variables are available in users' [access tokens](/authentication/tokens#access-token) which means you can use them when defining permissions for the GraphQL API.
+
+### Example
+
+Let's say you add a new permission variable `x-hasura-company-id` with path `user.company.id`. Nhost Auth will get the value for `x-hasura-company-id` by generating and running the following GraphQL query:
+
+```graphql
+query {
+ user(id: "") {
+ company {
+ id
+ }
+ }
+}
+```
+
+### Arrays
+
+You must add `[]` at the end of the path for permission variables that are arrays.
+
+#### Example
+
+Let's say you have a permission variable `x-hasura-organization-ids`, the path should be, e.g., `user.profile.organizations.id[]`.
+
+This will result in the following GraphQL query internally:
+
+```graphql
+query {
+ user(id: "") {
+ profile {
+ organizations {
+ id
+ }
+ }
+ }
+}
+```
+
+And result in the following permission variable:
+
+```json
+{
+ "x-hasura-organization-ids": "{\"13\",\"37\"}"
+}
+```
+
+### Limitation on JSON/JSONB columns
+
+JSON columns cannot be used in custom claims, except the `users.metadata` column.
+
+### Permission Variables locally with the CLI
+
+To use permission variables locally, add your claims to `nhost.toml` as follows:
+
+#### Example
+
+Add a permission variable `x-hasura-organization-id`:
+
+```toml nhost.toml
+[[auth.session.accessToken.customClaims]]
+key = 'organization-id'
+value = 'profile.organization.id'
+```
+
+The claim path should **not** start with `user` when defined in `nhost.toml`.
+
+### Roles
+
+Every GraphQL request resolves permissions using a **single role**.
+
+#### Default Role
+
+Every user has one **default role**. The default role is used to resolve permissions if no role is specified using the `x-hasura-role` header in the GraphQL request.
+
+`user` is the default role for authenticated users.
+
+#### Allowed Roles
+
+Every user also has an array of **allowed roles**. Allowed roles are roles that the user is allowed to use to override the default role when making a GraphQL request. To override the default role, add a header `x-hasura-role = ` to the GraphQL request.
+
+## Public Access and Unauthenticated Users
+
+GraphQL requests from unauthenticated users resolve permissions using the `public` role.
+
+## Insert Permissions
+
+![Insert permissions](/img/graphql/permissions/insert-permissions.png)
+
+Here is a popular approach for insert permission for authenticated users.
+
+1. At the top of the page, click **"insert"** on the **"user"** role.
+1. Select **"Without any checks"**.
+1. Select the columns you want to allow users to insert. In our example, we only mark `title`, because that's the only column that should be inserted by the user. The `id` is automatically generated by the database and `user_id` is set using a column preset.
+1. Under **Column presets**, set `user_id` to `x-hasura-user-id`. This way, every new record's `user_id` value is set to the ID of the user making the request.
+
+Now, authenticated users are allowed to insert posts. Users are allowed to add a title when inserting a post. The post's `id` is automatically generated by the database and the `user_id` is automatically set to the user's id using the `user_id = x-hasura-user-id` column preset.
+
+## Select, Update and Delete Permissions
+
+Select, update, and delete permissions usually follow the same pattern. Here's an example of how to add select permissions:
+
+![Select permissions](/img/graphql/permissions/select-permissions.png)
+
+One of the most common permission requirements is that authenticated users should only be able to read their own data. This is how to do that:
+
+1. Go to the **Database** section in the Nhost Dashboard.
+1. In the context menu of the table you want to edit, click on **Edit Permissions**.
+1. Click on the **role** and **operation** you want to set.
+1. Select **"With custom check"** to create a new rule
+1. Enter `user_id`, `_eq` and `x-hasura-user-id` into the rule form. This means that in order for users to read data, the user ID value in the database row must be the same as the user ID in the access token.
+1. **Limit the number of rows** to 100 (or some other relevant number).
+1. Select the **columns** you want the user to be able to read. In our case, we'll allow the user to read all columns.
+1. Click **Save**.
+
+## Known issues
+
+### Permissions are slow
+
+In certain situations, permission checks can cause significant delays. One way to identify this issue is by comparing the execution time of a GraphQL query when performed as an admin versus as a regular user. To resolve such cases, disabling the Just-in-Time (JIT) compilation in [Postgres](/database/settings) can be beneficial.
+
+[Github issue](https://github.com/hasura/graphql-engine/issues/3672)
+
+## Next Steps
+
+Hasura has more in-depth documentation related to permissions that you can learn from:
+
+- [Authorization / Access control](https://hasura.io/docs/latest/graphql/core/auth/authorization/index/)
+- [Access control basics](https://hasura.io/docs/latest/graphql/core/auth/authorization/basics/)
+- [Roles & Session variables](https://hasura.io/docs/latest/graphql/core/auth/authorization/roles-variables/)
+- [Inherited roles](https://hasura.io/docs/latest/graphql/core/auth/authorization/inherited-roles/)
+- [Configuring permission rules](https://hasura.io/docs/latest/graphql/core/auth/authorization/permission-rules/)
+- [Access control examples](https://hasura.io/docs/latest/graphql/core/auth/authorization/common-roles-auth-examples/)
+- [Multiple column + row permissions for the same role](https://hasura.io/docs/latest/graphql/core/auth/authorization/role-multiple-rules/)
diff --git a/docs/guides/auth/email-templates.mdx b/docs/guides/auth/email-templates.mdx
new file mode 100644
index 0000000000..a84a517ce2
--- /dev/null
+++ b/docs/guides/auth/email-templates.mdx
@@ -0,0 +1,101 @@
+---
+title: Email Templates
+description: Learn how to customize transactional emails
+icon: circle-envelope
+---
+
+Nhost Auth sends out transactional emails as part of certain authentication workflows. These emails can be modified using email templates.
+
+Changing email templates is only available starting on the [Pro](https://nhost.io/pricing) plan
+
+## Customize your emails
+
+Email Templates are deployed as part of a [Deployment](/platform/deployments) so your project must be connected to a Git repository.
+
+Learn how to connect a [Git Repository](/platform/git) to your project
+
+### File Structure
+
+Email Templates can be found under your project's `./nhost/emails` folder and have the following structure:
+
+```bash Terminal
+> tree ./nhost
+
+nhost
+├── config.yaml
+├── emails
+│ ├── en
+│ │ ├── email-confirm-change
+│ │ │ ├── body.html
+│ │ │ └── subject.txt
+│ │ ├── email-verify
+│ │ │ ├── body.html
+│ │ │ └── subject.txt
+│ │ ├── password-reset
+│ │ │ ├── body.html
+│ │ │ └── subject.txt
+│ │ ├── signin-passwordless
+│ │ │ ├── body.html
+│ │ │ └── subject.txt
+│ │ └── signin-passwordless-sms
+│ │ └── body.txt
+│ └── fr
+│ ├── email-confirm-change
+│ │ ├── body.html
+│ │ └── subject.txt
+│ ├── email-verify
+│ │ ├── body.html
+│ │ └── subject.txt
+│ ├── password-reset
+│ │ ├── body.html
+│ │ └── subject.txt
+│ ├── signin-passwordless
+│ │ ├── body.html
+│ │ └── subject.txt
+│ └── signin-passwordless-sms
+│ └── body.txt
+├── metadata
+├── migrations
+├── nhost.toml
+└── seeds
+```
+
+As you can see templates can be defined for various languages and, with the exception of `signin-passwordless-sms`, they require 2 files for the subject and body.
+
+```
+/{two-letter-language-code}/{email-template}/[subject.txt, body.html]
+```
+
+### Languages
+
+A user's language is stored in the `auth.users` table in the `locale` column. This `locale` column contains a two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)) which is used to infer what language and template to use in the email.
+
+The default value of the `locale` column is `en`
+
+### Template Variables
+
+The following variables are available to all email templates:
+
+| Variable | Description |
+| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| `link` | The full URL to the target of the transaction. This should be used in the main call to action. |
+| `serverUrl` | URL of the authentication server |
+| `clientUrl` | URL of your client app |
+| `redirectTo` | URL where the user will be redirected to after clicking the link and finishing the action of the email |
+| `ticket` | Ticket that is used to authorize the link request |
+| `displayName` | The display name of the user |
+| `email` | The email of the user |
+| `locale` | Locale of the user as a two-letter language code (e.g. "en") |
+
+Variables can be referenced by enclosing them with `${}` as in the following example:
+
+```html
+Verify You Email
+
+Hi, ${displayName}! Please click the link to verify your email:
+
+
+ Verify Email
+
+```
+
diff --git a/docs/guides/auth/sign-in-email-password.mdx b/docs/guides/auth/sign-in-email-password.mdx
new file mode 100644
index 0000000000..93e82bb93a
--- /dev/null
+++ b/docs/guides/auth/sign-in-email-password.mdx
@@ -0,0 +1,89 @@
+---
+title: Sign In with Email and Password
+sidebarTitle: Email and Password
+description: Learn about Email and Password
+icon: envelope
+---
+
+Sign In with Email and Password is enabled by default on all projects.
+
+## Sign Up
+
+To Sign Up a new user, use `signUp` with a valid email and password.
+
+
+
+```js
+await nhost.auth.signUp({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+
+
+```dart
+await nhost.auth.signUp(
+ email: 'joe@example.com',
+ password: 'secret-password'
+)
+```
+
+
+
+When email verification is enabled, a newly registered user will receive an email with a link they must follow in order to verify the email address
+
+## Sign In
+
+After a user is registered, and optionally verified, it is able to Sign In.
+
+
+
+
+```js
+await nhost.auth.signIn({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+
+
+```dart
+await nhost.auth.signIn(
+ email: 'joe@example.com',
+ password: 'secret-password'
+)
+```
+
+
+
+## Email Verification
+
+By default, newly registered users will receive an email with a verification link they must follow before they can Sign In.
+
+To change this setting, navigate to **Settings -> Sign-In Methods -> Email and Password** and set **Require Verified Emails**.
+
+It is possible to manually send the verification email to a user with `sendVerificationEmail()`.
+
+
+
+```js
+await nhost.auth.sendVerificationEmail({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+
+
+```js
+await nhost.auth.sendVerificationEmail(
+ email: 'joe@example.com',
+ password: 'secret-password'
+)
+```
+
+
+
+It is possible to customize these automatic emails, learn how to [here](/authentication/templates)
diff --git a/docs/guides/auth/sign-in-magic-link.mdx b/docs/guides/auth/sign-in-magic-link.mdx
new file mode 100644
index 0000000000..cca8ee23d9
--- /dev/null
+++ b/docs/guides/auth/sign-in-magic-link.mdx
@@ -0,0 +1,38 @@
+---
+title: Sign In with a Magic Link
+sidebarTitle: Magic Links
+description: Learn about Magic Links
+icon: wand-magic
+---
+
+Magic Links are a type of passwordless login that allow users to sign in into their account by clicking a link that is emailed to them, rather than typing in their user and password.
+
+Magic Links are disabled by default and can be enabled using the Nhost Dashboard under **Settings -> Sign-In Methods -> Magic Link**.
+
+## Sign In
+
+To sign in users with a Magic Link, use `signIn` with only an email:
+
+
+
+```js
+await nhost.auth.signIn({
+ email: 'joe@example.com'
+})
+```
+
+
+```dart
+await nhost.auth.signIn(
+ email: 'joe@example.com'
+)
+```
+
+
+
+A user account is created the first time a Magic Link is used
+
+Users who have signed up with email and password can also sign in with a Magic Link
+
+It is possible to customize the email with the Magic Link, learn how to [here](/authentication/templates)
+
diff --git a/docs/guides/auth/sign-in-phone-number.mdx b/docs/guides/auth/sign-in-phone-number.mdx
new file mode 100644
index 0000000000..1d7483c700
--- /dev/null
+++ b/docs/guides/auth/sign-in-phone-number.mdx
@@ -0,0 +1,82 @@
+---
+title: Sign In via SMS OTP
+sidebarTitle: SMS OTP
+description: Learn about SMS OTP
+icon: message-sms
+---
+
+An SMS OTP (one-time password) is a secure authorization method where a numeric or alphanumeric code is sent to a mobile phone number.
+
+Nhost supports OTP via SMS with Twilio.
+
+## Configuration
+
+You need a [Twilio account](https://www.twilio.com/try-twilio) to use this feature because all SMS' are sent through Twilio.
+
+Enable the Phone Number (SMS) sign-in method in the Nhost Dashboard under **Settings -> Sign-In Methods -> Phone Number (SMS)**.
+
+You need to configure the following:
+
+- Account SID
+- Auth Token
+- Messaging Service SID (or a Twilio phone number)
+
+## Sign In
+
+Signing in users with a phone number is a two-step process:
+
+
+
+
+The user will receive the OTP on the phone number specified.
+
+
+
+```js
+await nhost.auth.signIn({
+ phoneNumber: '+11233213123'
+})
+```
+
+
+```dart
+await nhost.auth.signIn(
+ phoneNumber: '+11233213123'
+)
+```
+
+
+
+
+
+
+To sign in the user, pass in the OTP received on the previous step.
+
+
+
+```js
+await nhost.auth.signIn({
+ phoneNumber: '+11233213123',
+ otp: '123456'
+})
+```
+
+
+```dart
+await nhost.auth.signIn(
+ phoneNumber: '+11233213123',
+ otp: '123456'
+)
+```
+
+
+
+
+
+A user account is created the first time a phone number is used
+
+Phone numbers should start with `+` (not `00`) to follow the [E.164 formatting standard](https://en.wikipedia.org/wiki/E.164)
+
+## Other SMS Providers
+
+We only support Twilio for now. If you want support for another SMS provider, please create an issue on [GitHub](https://github.com/nhost/nhost).
diff --git a/docs/guides/auth/sign-in-webauthn.mdx b/docs/guides/auth/sign-in-webauthn.mdx
new file mode 100644
index 0000000000..b536ca0b63
--- /dev/null
+++ b/docs/guides/auth/sign-in-webauthn.mdx
@@ -0,0 +1,107 @@
+---
+title: Sign In with WebAuthn
+sidebarTitle: WebAuthn and Security Keys
+description: Learn about WebAuthn and Security Keys
+icon: atom
+---
+
+Follow this guide to sign in users with security keys and the WebAuthn API.
+
+Examples of security keys:
+
+- [Windows Hello](https://support.microsoft.com/en-us/windows/learn-about-windows-hello-and-set-it-up-dae28983-8242-bb2a-d3d1-87c9d265a5f0)
+- [Apple Touch ID](https://support.apple.com/en-us/HT201371)
+- [Apple Face ID](https://support.apple.com/en-us/HT208109)
+- [Yubico security keys](https://www.yubico.com/)
+- Android Fingerprint sensors
+
+You can read more about this feature in our [blog post](https://nhost.io/blog/webauthn-sign-in-method)
+
+## Configuration
+
+Enable the Security Key sign-in method in the Nhost Dashboard under **Settings -> Sign-In Methods -> Security Keys**.
+
+You need to make sure you also set a valid client URL under **Settings -> Authentication -> Client URL**.
+
+## Sign Up
+
+Users must use an email address to sign up with a security key.
+
+
+
+
+```tsx
+const { error, session } = await nhost.auth.signUp({
+ email: 'joe@example.com',
+ securityKey: true
+})
+```
+
+
+
+## Sign In
+
+Once a user signed up with a security key, and verfied their email if needed, they can use it to sign in.
+
+**Example:** Sign in with a security key:
+
+
+
+```js
+await nhost.auth.signIn({
+ email: 'joe@example.com',
+ securityKey: true
+})
+```
+
+
+
+## Add a Security Key
+
+Any signed-in user with a verified email can add a security key to their user account. Once a security key is added, the user can use it their email and the security key to sign in.
+
+It's possible to add multiple security keys to a user account.
+
+**Example:** Add a security key to a user account:
+
+```tsx
+const { key, error } = await nhost.auth.addSecurityKey()
+
+// Something unexpected happened
+if (error) {
+ console.log(error)
+ return
+}
+
+// Successfully added a new security key
+console.log(key.id)
+```
+
+A nickname can be associated with each security key to make it easier to manage security keys in the future.
+
+```js
+await nhost.auth.addSecurityKey('iPhone')
+```
+
+## List or Remove Security Keys
+
+To list and remove security keys, use GraphQL and set permissions on the `auth.security_keys` table:
+
+```graphql
+query securityKeys($userId: uuid!) {
+ authUserSecurityKeys(where: { userId: { _eq: $userId } }) {
+ id
+ nickname
+ }
+}
+```
+
+To remove a security key:
+
+```graphql
+mutation removeSecurityKey($id: uuid!) {
+ deleteAuthUserSecurityKey(id: $id) {
+ id
+ }
+}
+```
diff --git a/docs/guides/auth/social/sign-in-apple.mdx b/docs/guides/auth/social/sign-in-apple.mdx
new file mode 100644
index 0000000000..fa35816770
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-apple.mdx
@@ -0,0 +1,95 @@
+---
+title: Sign In with Apple
+description: Follow this guide to sign in users with Apple.
+icon: apple
+---
+
+
+
+
+
+## Create Apple Developer Account
+
+- Click on "Account" in the top menu.
+- Create a new [Apple Developer account](https://developer.apple.com) if you don't have one already and sign in to the Apple Developer platform.
+
+## Get an App ID
+
+- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
+- Click on **Certificates, IDs & Profiles** in the left menu.
+- Click on **Identifiers** in the left menu.
+- Click on the "+" button in the header next to "Identifiers".
+- Select **App IDs** and click **Continue**.
+- Select type **App** and click **Continue**.
+- Fill in the App information:
+
+ - Description.
+ - Bundle ID (ex. io.nhost.app or com.your-startup.app).
+ - Scroll down and check **Sign In With Apple**.
+ - Click **Continue** in the top right corner.
+ - Click **Register** in the top right corner.
+
+- Click on the newly created app to see **Team ID**.
+
+- **Team ID**: Copy and paste the **Team ID** to your Nhost OAuth settings for Apple.
+
+## Get a Service ID
+
+- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
+- Click on **Certificates, IDs & Profiles** in the left menu.
+- Click on **Identifiers** in the left menu.
+- Click on **Certificates, IDs & Profiles** in the left menu.
+- Click on **Identifiers** in the left menu.
+- Click on the "+" button in the header next to "Identifiers".
+- Select **Service IDs** and click **Continue**.
+
+- Fill in the Service information:
+
+ - Description.
+ - Identifier (Service ID) (ex. _service_.io.nhost.app or _service_.com.your-startup.app). Notice you can't use the same identifier as for the app so we recommend adding "service" at the beginning if the identifier.
+ - **Service ID**: Copy and paste the **Identifier (Service ID)** to your Nhost OAuth settings for Apple.
+ - Click **Continue** in the top right corner.
+ - Click **Register** in the top right corner.
+
+- Click on the newly created service in the list of Identifiers.
+- Click the checkbox to enable "Sign in with Apple".
+- Click **Configure** next to "Sign in with Apple".
+- Make sure your newly created Bundle ID is selected under Primary App ID.
+- Add your base auth domain under "Domains and Subdomains". E.g. `.auth..nhost.run`.
+- Add the full callback URL under "Return URLs". E.g. `https://.auth..nhost.run/v1/signin/provider/apple/callback`.
+- Click **Next**.
+- Click **Done**.
+- Click **Continue** in the top right corner.
+- Click **Save** in the top right corner.
+
+## Generate Key
+
+- Go to the [Apple Developer Dashboard](https://developer.apple.com/account/).
+- Click on **Certificates, IDs & Profiles** in the left menu.
+- Click on **Keys** in the left menu.
+- Click on **Create a key**.
+- Fill in a name for your key.
+- Click the checkbox to enable "Sign in with Apple".
+- Click **Configure** next to "Sign in with Apple".
+- Select your newly created App ID in the dropdown selector.
+- Click **Save** in the top right corner.
+- Click **Continue** in the top right corner.
+- Click **Register** in the top right corner.
+- **Key ID**: Copy and paste the **Key ID** to your Nhost OAuth settings for Apple.
+- Click **Download** to download the key to your computer.
+- **Private Key**: Copy and paste the content of the downloaded key to your Nhost OAuth settings for Apple.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'apple'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-discord.mdx b/docs/guides/auth/social/sign-in-discord.mdx
new file mode 100644
index 0000000000..1df4ef1dbd
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-discord.mdx
@@ -0,0 +1,43 @@
+---
+title: Sign In with Discord
+description: Follow this guide to sign in users with Discord.
+icon: discord
+---
+
+
+
+
+
+
+## Create Discord Account
+
+- Create a new [Discord account](https://discord.com/) if you don't have one already.
+
+## Create Discord App
+
+- Sign in to the [Discord Developer Portal](https://discord.com/developers/applications).
+- Click on **New Application** in the top right corner.
+- Fill in the name of your Discord Application and click **Create**.
+- Click on **OAuth2** settings in the left menu.
+- Copy the **Client ID** and paste it into your Nhost OAuth settings for Discord.
+- Click on **Reset Secret**.
+- Click **Yes, do it** to generate a new secret.
+- Copy the **Client Secret** and paste it into your Nhost OAuth settings for Discord.
+- Click on **Add Redirect**.
+- Copy and paste the callback URL from your Nhost OAuth settings for Discord to the input field in the Discord Developer portal.
+- Click **Save Changes** to save the added callback URL.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'discord'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-facebook.mdx b/docs/guides/auth/social/sign-in-facebook.mdx
new file mode 100644
index 0000000000..e48e03cd47
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-facebook.mdx
@@ -0,0 +1,66 @@
+---
+title: Sign In with Facebook
+description: Follow this guide to sign in users with Facebook.
+icon: facebook
+---
+
+
+
+
+
+
+## Create Facebook Account
+
+- Create a new [Facebook account](https://www.facebook.com/) if you don't have one already.
+
+## Create Facebook App
+
+- Go to [Meta for Developers](https://developers.facebook.com/).
+- Click **My Apps** in the top right.
+- Click **Create App** in the top right.
+- Select your **app type** (e.g. Consumer).
+- Click **Next**.
+- Fill in the **Display name**.
+- Click **Create app**.
+
+## Set up Facebook Login
+
+- Click on **Add Product** in the left menu.
+- Click on **Setup** on the Facebook login card.
+- **Don't** complete the quickstart. Instead, follow the next step.
+- Click on **Settings** under **Facebook Login** in the left menu.
+- Make sure **Embedded Browser OAuth Login** is set to **Yes**.
+- Fill in **Valid OAuth Redirect URIs** with your **OAuth Callback URL** from Nhost.
+- Click **Save changes**.
+
+## Activate Facebook Permissions and Features
+
+To make sure we can fetch all user data (email, profile picture and name). For that we need to enable **email** and **public_profile** permissions.
+
+- Click on App Review and Permission and Features in the left menu.
+- Search for **email** in the **Search Permissions and Features** search box.
+- Click on Request advanced access and complete the steps.
+- Search for **public_profile** in the **Search Permissions and Features** search box.
+- Click on **Request advanced access** and complete the steps.
+
+## Configure Nhost
+
+- Click **Settings** and then **Basic** in the left menu.
+- Copy and paste the **App ID (Client ID)** and **App secret (Client Secret)** from Facebook to your Nhost OAuth settings for Facebook. Make sure the OAuth provider is enabled in Nhost.
+- Click the checkbox “**I have pasted the redirect URI into Facebook”**.
+- Click **Confirm settings**.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'facebook'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-github.mdx b/docs/guides/auth/social/sign-in-github.mdx
new file mode 100644
index 0000000000..9eb7ac79a5
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-github.mdx
@@ -0,0 +1,51 @@
+---
+title: Sign In with GitHub
+description: Follow this guide to sign in users with GitHub.
+icon: github
+---
+
+
+
+
+
+
+## Create GitHub Account
+
+- Create a new [GitHub account](https://github.com/signup) if you don't have one already.
+
+## Create GitHub OAuth App
+
+- Create a new OAuth application [(direct link)](https://github.com/settings/applications/new) by:
+ - Click on your profile photo in the top right.
+ - Click on Settings.
+ - In the left menu, click Developer settings at the bottom.
+ - Click on Oauth Apps in the left menu.
+ - Click on New OAuth App button in the top right.
+
+## GitHub OAuth App Information
+
+- Fill in Application Name.
+- Fill in Homepage URL.
+- Fill in **Authorization callback URL** with your OAuth Callback URL from Nhost.
+
+## Configure Nhost
+
+- Click Generate a new client secret to generate an OAuth client secret.
+- Copy and paste the **Client ID** and **Client Secret** from GitHub to your Nhost OAuth settings for GitHub. Make sure the OAuth provider is enabled in Nhost.
+- Click the checkbox “**I have pasted the redirect URI into GitHub”**.
+- Click **Confirm settings**.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: "github",
+});
+```
diff --git a/docs/guides/auth/social/sign-in-google.mdx b/docs/guides/auth/social/sign-in-google.mdx
new file mode 100644
index 0000000000..33db1c4a03
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-google.mdx
@@ -0,0 +1,75 @@
+---
+title: Sign In with Google
+description: Follow this guide to sign in users with Google.
+icon: google
+---
+
+
+
+
+
+## Sign Up for Google
+
+- Sign up for [Google Cloud](https://cloud.google.com/free) if you don't have one already.
+
+## Create a Google Cloud Project
+
+> 💡 You can skip this step if you already have a Google Cloud project you want to use.
+
+- Create a new Google Cloud project if you don't already have a project you want to use.
+
+## Configure OAuth Consent Screen
+
+- Search for **OAuth consent screen** in the top search bar in the Google Cloud Console.
+- Click on **OAuth consent screen** in the search results.
+- Select User Type **External** and click **CREATE**.
+
+## **Edit app registration**
+
+### OAuth Consent Screen
+
+- Fill in your App information.
+- Click **SAVE AND CONTINUE**.
+
+### Scopes
+
+- Click **SAVE AND CONTINUE**.
+
+### Test User
+
+- Click **SAVE AND CONTINUE**.
+
+### Summary
+
+- Click **BACK TO DASHBOARD**.
+
+## Create Credentials
+
+- Click on **Credentials** under **APIs & Services** in the left menu.
+- Click **+ CREATE CREDENTIALS** and then **OAuth client ID** in the top menu.
+- On the **Create OAuth client ID** page for **Application Type** select **Web application**.
+- Under **Authorized JavaScript origins**, add your project's redirect URL for the Google sign-in method in the following format: `https://.auth..nhost.run`
+- Under **Authorized redirect URIs** add your **OAuth Callback URL** from Nhost.
+- Click **CREATE**.
+
+## Configure Nhost
+
+- A modal appears with your Google Client ID and Client Secret.
+- Copy and paste the **Client ID** and **Client Secret** from Google to your Nhost OAuth settings for Google. Make sure the OAuth provider is enabled in Nhost.
+- Click the checkbox “**I have pasted the redirect URI into Google”**.
+- Click **Confirm settings**.
+
+## Sign In Users
+
+Use the Nhost JavaScript client to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'google'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-linkedin.mdx b/docs/guides/auth/social/sign-in-linkedin.mdx
new file mode 100644
index 0000000000..fa45c3bd7a
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-linkedin.mdx
@@ -0,0 +1,66 @@
+---
+title: Sign In with LinkedIn
+description: Follow this guide to sign in users with LinkedIn.
+icon: linkedin
+---
+
+
+
+
+
+
+## Create LinkedIn Account
+
+- Create a [LinkedIn account](https://linkedin.com/) if you don't have one already.
+
+## Create a LinkedIn OAuth App
+
+- Go to the [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps).
+- Click on Create App in the top right.
+- Fill in **App Name**, **LinkedIn Page** and **App Logo**.
+- Click **“I have read and agree to these terms”**.
+- Click **Create app** in the bottom right.
+
+## LinkedIn OAuth App Information
+
+- Click on **Auth** in the top menu.
+- Click on the **pen icon** under **OAuth 2.0 settings** and right next to **Authorized redirect URLs for your app**.
+- Click **Add redirect URL**.
+- Copy and paste the **OAuth Callback URL** from Nhost.
+- Click **Update**.
+
+## Enable Sign In with LinkedIn using OpenID Connect
+
+- Click on **Products** in the top menu.
+- Scroll down and look for **Sign In with LinkedIn using OpenID Connect**.
+- Click **Request Access**.
+- Click the checkbox **I have read and agree to these terms**.
+- Click **Request Access**.
+
+## Configure Nhost
+
+- Copy and paste the **Client ID** and **Client Secret** from LinkedIn to your Nhost OAuth settings for LinkedIn.
+- Click the checkbox “**I have pasted the redirect URI into LinkedIn”**.
+- Click **Confirm settings**.
+
+## Enable Auth for your LinkedIn OAuth App
+
+- Click on **Products** in the top menu.
+- Click Select on the **Sign In with LinkedIn**.
+- Check the checkbox **I have read and agree to these terms**.
+- Click **Add product**.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'linkedin'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-spotify.mdx b/docs/guides/auth/social/sign-in-spotify.mdx
new file mode 100644
index 0000000000..f8115c9838
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-spotify.mdx
@@ -0,0 +1,51 @@
+---
+title: Sign In with Spotify
+description: Follow this guide to sign in users with Spotify.
+icon: spotify
+---
+
+
+
+
+
+
+## Create Spotify Account
+
+- Create a new [Spotify account](https://www.spotify.com/) if you don't have one already.
+
+## Create Spotify App
+
+- Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/).
+- Click on CREATE AN APP.
+- Fill in an App name and App description.
+- Check the box to agree Spotify's [Developer Terms of Service](https://developer.spotify.com/terms) and [Branding Guidelines](https://developer.spotify.com/branding-guidelines).
+
+## Configure OAuth Callback URL
+
+- Click EDIT SETTINGS.
+- A modal appears.
+- Fill in **Redirect URIs** with your **OAuth Callback URL** from Nhost.
+- Click ADD to add the OAuth callback URL.
+- Click SAVE.
+
+## Configure Nhost
+
+- Click SHOW CLIENT SECRET in the Spotify App Dashboard.
+- Copy and paste the **Client ID** and **Client Secret** from Spotify to your Nhost OAuth settings for Spotify.
+- Click the checkbox “**I have pasted the redirect URI into Spotify”**.
+- Click **Confirm settings**.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'spotify'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-twitch.mdx b/docs/guides/auth/social/sign-in-twitch.mdx
new file mode 100644
index 0000000000..33521c8355
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-twitch.mdx
@@ -0,0 +1,45 @@
+---
+title: Sign In with Twitch
+description: Follow this guide to sign in users with Twitch.
+icon: twitch
+---
+
+
+
+
+
+
+## Create Twitch Account
+
+- Create a new [Twitch account](https://twitch.tv/) if you don't have one already.
+
+## Create Twitch App
+
+- Sign in to the [Twitch Developer Console](https://dev.twitch.tv/console).
+- Click on **Register Your Application**.
+- Fill in a **Twitch application name**.
+- Copy and paste the callback URL from your Nhost OAuth settings for Twitch to the input field under **OAuth Redirect URLs** and click **Add** to the right of the input field.
+- Select an application **Category**. E.g. _Application Integration_.
+- Click **Create**.
+
+## Get Twitch Appplication Client ID and Client Secret
+
+- Click on **Manage** on your newly created Twitch application.
+- Copy the **Client ID** and paste it into your Nhost OAuth settings for Twitch.
+- Click on **New Secret** to generate a new client secret.
+- Copy the **Client Secret** and paste it into your Nhost OAuth settings for Twitch.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'twitch'
+})
+```
diff --git a/docs/guides/auth/social/sign-in-workos.mdx b/docs/guides/auth/social/sign-in-workos.mdx
new file mode 100644
index 0000000000..9ee8a69fff
--- /dev/null
+++ b/docs/guides/auth/social/sign-in-workos.mdx
@@ -0,0 +1,65 @@
+---
+title: Sign In with WorkOS
+description: Follow this guide to sign in users with WorkOS.
+icon: workos
+---
+
+
+
+
+
+
+## Create WorkOS Account
+
+- Go to [WorkOS's website](https://workos.com/).
+- Click on **Sign In** in the top menu and create a WorkOS account.
+
+## Get the Client ID
+
+- In the WorkOS dashboard, click on **Configuration** in the left menu.
+- Copy the **Client ID**, which starts with `project_`.
+- Paste the **Client ID** in the **Client ID** field in the WorkOS settings in the Nhost Dashboard.
+
+## Set correct Redirect URI
+
+- In the WorkOS dashboard, click on **Configuration** in the left menu.
+- Click on **Edit Redirect URIs** in the Redirect URIs section.
+- Add the **Redirect URL** from the Nhost Dashboard to the list of Redirect URIs.
+- Set the newly added redirect URI as the **Default Redirect URI**.
+- Click on **Close**.
+
+## Get the Client Secret
+
+- In the WorkOS dashboard, click on **API Keys** in the left menu.
+- Click on the eye icon next to the **Client Secret** to reveal it.
+- Copy the **Client Secret**, which stars with `sk_`.
+- Paste the **Client Secret** in the **Client Secret** field in the WorkOS settings in the Nhost Dashboard.
+
+## Get Organization ID
+
+- In the WorkOS dashboard, click on **Organizations** in the left menu.
+- Click on **Create an Organization**.
+- Fill in the organization details and click on **Create Organization**.
+- Click on the newly created organization.
+- Copy the **Organization ID**, which stars with `org_`.
+- Paste the **Organization ID** in the **Organization ID** field in the WorkOS settings in the Nhost Dashboard.
+- Click **Save** in the Nhost Dashboard to save all WorkOS settings.
+
+The WorkOS configuration is now completed with Nhost.
+
+See the [WorkOS documentation](https://workos.com/docs/) to learn more about how to configure WorkOS.
+
+## Sign In Users
+
+Use the [Nhost JavaScript client](/reference/javascript) to sign in users:
+
+```js
+nhost.auth.signIn({
+ provider: 'workos'
+})
+```
diff --git a/docs/guides/cli/configuration-overlays.mdx b/docs/guides/cli/configuration-overlays.mdx
new file mode 100644
index 0000000000..288d5c7df4
--- /dev/null
+++ b/docs/guides/cli/configuration-overlays.mdx
@@ -0,0 +1,75 @@
+---
+title: Configuration Overlays
+description: description
+icon: circles-overlap
+---
+
+## Introduction
+
+Nhost uses a single configuration file to configure both cloud projects and the local development environment, ensuring a near-identical replica of the production environment. This approach also simplifies connecting a repository to multiple projects, keeping them in sync with minimal effort. However, in cases where minor differences need to be accommodated, Nhost offers overlays - files containing operations to modify the configuration file:
+
+```bash
+[
+ {
+ "op": "replace",
+ "path": "/auth/method/emailPassword/emailVerificationRequired",
+ "value": false
+ },
+ {
+ "op": "replace",
+ "path": "/auth/redirections/clientUrl",
+ "value": "https://staging.myapp.io"
+ },
+ {
+ "op": "add",
+ "path": "/global/environment/3",
+ "value": {
+ "name": "ENVIRONMENT",
+ "value": "staging"
+ }
+ }
+]
+```
+
+The overlay above will perform the following changes to the configuration file:
+
+1. Disable email verification
+2. Set the correct client URL for the staging environment
+3. Add the environment variable `ENVIRONMENT=staging`
+
+Overlays are based on [RFC6902](https://www.rfc-editor.org/rfc/rfc6902).
+
+It's important to note that overlays in Nhost do not modify the original files, but rather manipulate the resulting configuration at runtime. This allows multiple environments to safely share the same base configuration and rely on the overlay to accommodate differences. Additionally, changes to the base configuration file will propagate to all environments unless an overlay operation prevents it, making overlays a convenient and efficient way to manage configuration differences.
+
+## Creating Overlays
+
+You can create overlays with the CLI command `nhost config edit [--subdomain $SUBDOMAIN]`:
+
+![open editor](/images/guides/cli/1.png)
+
+If you need to create an overlay for your local development environment remember to use `local` as subdomain
+
+This will open an editor with the configuration for your `$SUBDOMAIN`:
+
+![editor](/images/guides/cli/2.png)
+
+You can perform as many changes as needed using overlays. For example, you can add an environment variable, enable Hasura remote permissions, and change the client URL.
+
+![editor](/images/guides/cli/3.png)
+
+You can verify the overlay by checking the file `nhost/overlays/$SUBDOMAIN.json`
+
+![verify overlay](/images/guides/cli/4.png)
+
+## Viewing Configuration
+
+To verify that your final configuration is correct, you can use the command `nhost config show [--subdomain $SUBDOMAIN]`. This command will apply the specified overlay (if it exists) and render the configuration using the local secrets.
+
+![view configuration](/images/guides/cli/5.png)
+
+## Validating Configuration
+
+Finally, you can validate your configuration overlay with the command `nhost config validate [--subdomain $SUBDOMAIN]`
+
+![view configuration](/images/guides/cli/6.png)
+
diff --git a/docs/guides/cli/local-development.mdx b/docs/guides/cli/local-development.mdx
new file mode 100644
index 0000000000..f47e3509ff
--- /dev/null
+++ b/docs/guides/cli/local-development.mdx
@@ -0,0 +1,204 @@
+---
+title: Local Development
+description: description
+icon: code
+---
+
+Nhost's command-line interface (CLI) lets you run a complete Nhost development environment locally with the following services: PostgreSQL database, Hasura, Authentication, Storage (MinIO), Serverless Functions, and Emails (Mailhog).
+
+
+## Dependencies
+
+- [Git](https://git-scm.com/downloads)
+- [Docker](https://www.docker.com/get-started)
+
+## Login to Nhost
+
+```bash
+nhost login
+```
+
+If you used GitHub to register, you will have to first set a password in your [account page](https://app.nhost.io/account).
+
+
+## Initialize local project
+
+Let's start by creating a directory to hold your project.
+
+```bash
+mkdir my-project
+cd my-project
+```
+
+We can now initialize and create the necessary project configuration.
+
+```bash
+nhost init
+```
+
+`nhost init` creates all the configuration necessary for your project, including database migrations and Hasura metadata.
+
+
+We can now start your project with `nhost up`.
+
+```bash
+nhost up
+```
+
+Once all services are up and running, the following information is displayed for your project:
+
+```bash
+Nhost development environment started.
+
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/local
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+
+```
+
+You can use `nhost down` at any time to tear down your environment.
+
+### Access your project's services
+
+To test that the services are running, let's curl the Auth endpoint and get its version:
+
+```bash
+curl https://local.auth.nhost.run/v1/version
+
+{"version":"v0.20.1"}
+```
+
+Hurrah! Auth seems to be running on v0.20.1.
+
+We can also test that Postgres is running as expected by using `psql` (or your favourite Postgres client).
+
+```bash
+psql postgres://postgres:postgres@localhost:5432/local
+
+psql (14.8 (Ubuntu 14.8-0ubuntu0.22.04.1), server 14.6 (Debian 14.6-1.pgdg110+1))
+Type "help" for help.
+
+local=#
+```
+
+## Database Migrations and Metadata Changes
+
+All changes to your project should be tested locally first before deploying to your users. In this guide, we will be creating a database migration and setting permissions.
+
+### Migration
+
+Let's create a new table called `messages`, with the following columns:
+
+- id (UUID)
+- text (Text)
+- author_id (UUID)
+- created_at (Timestamp)
+
+There are other ways to generate a migration, here we will use the local Nhost Dashboard running on `https://local.dashboard.nhost.run/local/local`. Please head to the `database` tab and add the columns as follows:
+
+
+![Nhost Local Dashboard](/images/guides/cli/create-table-messages.png)
+
+To confirm that the migration was correctly generated with the correct SQL:
+
+```bash
+cat nhost/migrations/default/1685452095884_create_table_public_messages/up.sql
+
+CREATE TABLE public.messages (id uuid DEFAULT gen_random_uuid() NOT NULL, text text NOT NULL, author_id uuid NOT NULL, created_at timestamp DEFAULT now() NOT NULL, PRIMARY KEY (id));
+```
+
+Now is a good time to commit the new migration.
+
+```bash
+git add .
+git commit -m 'add database migration to create the table `messages`'
+```
+
+### Metadata
+
+Metadata is used to track the state of the API, permissions, event triggers, remote schemas, etc. In this guide, we will use permissions to show how metadata is tracked.
+
+Again on the `database` tab of the Nhost Dashboard, click on the 3 dots right next to the table name and choose "Edit Permissions" to open the permissions editor.
+
+![Permissions Editor](/images/guides/cli/matrix-permissions.png)
+
+Here we have access to a matrix of permissions for all available roles and actions. We want to set a permission to the `user` role and `insert` action as follows:
+
+![Permissions Editor](/images/guides/cli/insert-permissions.png)
+
+We defined a simple permission to allow a `user` to insert or create messages. We can look at the underlying metadata that tracks it.
+
+```bash
+cat nhost/metadata/databases/default/tables/public_messages.yaml
+
+table:
+ name: messages
+ schema: public
+insert_permissions:
+ - role: public
+ permission:
+ check:
+ author_id:
+ _eq: X-Hasura-User-Id
+ set:
+ author_id: X-Hasura-User-Id
+ columns:
+ - text
+```
+
+As before, we can now commit this change:
+
+```bash
+git add .
+git commit -m 'add permission for user insert messages'
+```
+
+## Deploy your Project to Nhost
+
+We've been developing your project locally, introducing changes via the Dashboard, which in turn creates the actual database migrations and metadata changes that can be properly versioned and tracked. It's time to deploy your project to the Nhost Platform using Git. If you haven't already, please head to [Nhost](https://app.nhost.io) and create a project to deploy to. You will also need to connect a GitHub repository to it for automatic deployments with Git.
+
+### Link your project
+
+It's time to link, or associate, your local project to the remote one:
+
+```bash
+nhost link
+
+ │ │ │ │ │
+ # │ Subdomain │ Project │ Workspace │ Region │
+ 1 │ kgrbyupffiamgqwnovkb │ local-development │ Nhost │ eu-central-1 │
+ 2 │ odtxlexktkcwdynjssqg │ nbp │ Nuno's Workspace │ eu-central-1 │
+ │ │ │ │ │
+- Select the workspace # to link: 1
+- Enter project subdomain to confirm: kgrbyupffiamgqwnovkb
+```
+
+You have now successfully linked your local project to a hosted project running on the Nhost Cloud.
+
+The final step is to push all changes to GitHub which will trigger a new deployment on Nhost.
+
+```bash
+git add -A
+git push -u origin main
+```
+
+To check out your deployment, head over to the **Deployments** tab (https://app.nhost.io).
+
+![Deployments](/images/guides/cli/deployments.png)
+
+You should now have the same `messages` table (and permissions) on your production instance!
+
diff --git a/docs/guides/cli/migrate-config.mdx b/docs/guides/cli/migrate-config.mdx
new file mode 100644
index 0000000000..3f2e6b2fa8
--- /dev/null
+++ b/docs/guides/cli/migrate-config.mdx
@@ -0,0 +1,98 @@
+---
+title: Migrate Existing Projects
+description: description
+icon: arrow-down-to-bracket
+---
+
+If you want to migrate an existing project you need to:
+
+1. Go into your project's folder:
+
+```bash
+$ cd /path/to/existingproject
+```
+
+2. Login:
+
+```bash
+$ nhost login
+- email: david@nhost.io
+- password:
+Authenticating
+Successfully logged in, creating PAT
+Successfully created PAT
+Storing PAT for future user
+```
+
+3. Link your project:
+
+```bash
+$ nhost link
+
+ │ │ │ │ │
+ # │ Subdomain │ Project │ Workspace │ Region │
+ 1 │ lrkadqfanxgmscttabiv │ demo │ david-yirq │ eu-central-1 │
+ │ │ │ │ │
+- Select # the workspace to link: 1
+- Enter project subdomain to confirm: lrkadqfanxgmscttabiv
+```
+
+4. Pull the configuration from the cloud:
+
+```bash
+$ nhost config pull
+
+- /path/to/existingproject/nhost/nhost.toml already exists. Do you want to overwrite it? [y/N] y
+- /path/to/existingproject/.secrets already exists. Do you want to overwrite it? [y/N] y
+Pulling config from Nhost...
+Getting secrets list from Nhost...
+Adding .secrets to .gitignore...
+Success!
+- Review `nhost/nhost.toml` and make sure there are no secrets before you commit it to git.
+- Review `.secrets` file and set your development secrets
+- Review `.secrets` was added to .gitignore
+```
+
+5. Follow the instructions on screen to ensure your configuration contains no secrets and you don't commit sensitive information to git.
+
+6. Profit:
+
+```bash
+$ nhost up
+
+Verifying configuration...
+Configuration is valid!
+Setting up Nhost development environment...
+Starting Nhost development environment...
+[+] Running 11/11
+ ✔ Network existingproject_default Created 0.0s
+ ✔ Container existingproject-minio-1 Healthy 13.9s
+ ✔ Container existingproject-postgres-1 Healthy 13.9s
+ ✔ Container existingproject-traefik-1 Healthy 13.9s
+ ✔ Container existingproject-dashboard-1 Healthy 13.9s
+ ✔ Container existingproject-mailhog-1 Healthy 13.9s
+ ✔ Container existingproject-functions-1 Healthy 13.9s
+ ✔ Container existingproject-graphql-1 Healthy 13.8s
+ ✔ Container existingproject-console-1 Healthy 18.8s
+ ✔ Container existingproject-storage-1 Healthy 13.8s
+ ✔ Container existingproject-auth-1 Healthy 18.8s
+Applying migrations...
+INFO nothing to apply on database: default
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/postgres
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+```
+
diff --git a/docs/guides/cli/multiple-projects.mdx b/docs/guides/cli/multiple-projects.mdx
new file mode 100644
index 0000000000..5c2661f084
--- /dev/null
+++ b/docs/guides/cli/multiple-projects.mdx
@@ -0,0 +1,107 @@
+---
+title: 'Running multiple projects at the same time'
+description: 'description'
+icon: clone
+---
+
+By default the name of the project is going to be the folder of the root of your project and it's goint to run on port 443 (https) and 5432 (postgres). If you need to run multiple projects or multiple instances of the same project at the same time you may need to override those. For instance:
+
+```bash
+$ nhost up
+Verifying configuration...
+Configuration is valid!
+Setting up Nhost development environment...
+Starting Nhost development environment...
+[+] Running 11/11
+ ✔ Network existingproject_default Created 0.0s
+ ✔ Container existingproject-minio-1 Healthy 13.9s
+ ✔ Container existingproject-postgres-1 Healthy 13.9s
+ ✔ Container existingproject-traefik-1 Healthy 13.9s
+ ✔ Container existingproject-dashboard-1 Healthy 13.9s
+ ✔ Container existingproject-mailhog-1 Healthy 13.9s
+ ✔ Container existingproject-functions-1 Healthy 13.9s
+ ✔ Container existingproject-graphql-1 Healthy 13.8s
+ ✔ Container existingproject-console-1 Healthy 18.8s
+ ✔ Container existingproject-storage-1 Healthy 13.8s
+ ✔ Container existingproject-auth-1 Healthy 18.8s
+Applying migrations...
+INFO nothing to apply on database: default
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5432/postgres
+- Hasura: https://local.hasura.nhost.run
+- GraphQL: https://local.graphql.nhost.run
+- Auth: https://local.auth.nhost.run
+- Storage: https://local.storage.nhost.run
+- Functions: https://local.functions.nhost.run
+- Dashboard: https://local.dashboard.nhost.run
+- Mailhog: https://local.mailhog.nhost.run
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+
+$ nhost --project-name alternativeproject dev up --http-port 8433 --postgres-port 5433
+Verifying configuration...
+Configuration is valid!
+Setting up Nhost development environment...
+Starting Nhost development environment...
+[+] Running 13/13
+ ✔ Network alternativeproject_default Created 0.0s
+ ✔ Volume "alternativeproject_root_node_modules" Created 0.0s
+ ✔ Volume "alternativeproject_functions_node_modules" Created 0.0s
+ ✔ Container alternativeproject-mailhog-1 Healthy 13.7s
+ ✔ Container alternativeproject-functions-1 Healthy 13.7s
+ ✔ Container alternativeproject-dashboard-1 Healthy 13.7s
+ ✔ Container alternativeproject-postgres-1 Healthy 13.7s
+ ✔ Container alternativeproject-traefik-1 Healthy 13.7s
+ ✔ Container alternativeproject-minio-1 Healthy 13.7s
+ ✔ Container alternativeproject-graphql-1 Healthy 13.7s
+ ✔ Container alternativeproject-storage-1 Healthy 13.7s
+ ✔ Container alternativeproject-console-1 Healthy 18.7s
+ ✔ Container alternativeproject-auth-1 Healthy 18.2s
+Applying migrations...
+INFO nothing to apply on database: default
+Nhost development environment started.
+URLs:
+- Postgres: postgres://postgres:postgres@localhost:5433/postgres
+- Hasura: https://local.hasura.nhost.run:8433
+- GraphQL: https://local.graphql.nhost.run:8433
+- Auth: https://local.auth.nhost.run:8433
+- Storage: https://local.storage.nhost.run:8433
+- Functions: https://local.functions.nhost.run:8433
+- Dashboard: https://local.dashboard.nhost.run:8433
+- Mailhog: https://local.mailhog.nhost.run:8433
+
+SDK Configuration:
+ Subdomain: local
+ Region: (empty)
+
+Run `nhost up` to reload the development environment
+Run `nhost down` to stop the development environment
+Run `nhost logs` to watch the logs
+```
+
+From now on you can operate on each one of them accordingly by specifying `--project-name`:
+
+```bash
+$ nhost --project-name alternativeproject dev logs auth
+alternativeproject-auth-1 |
+alternativeproject-auth-1 | > hasura-auth@0.19.1 start /app
+alternativeproject-auth-1 | > node ./dist/start.js
+alternativeproject-auth-1 |
+alternativeproject-auth-1 | {"level":"info","message":"Log level: info"}
+alternativeproject-auth-1 | {"level":"info","message":"Waiting for Hasura to be ready..."}
+alternativeproject-auth-1 | {"level":"info","message":"Hasura is ready"}
+alternativeproject-auth-1 | {"level":"info","message":"Applying SQL migrations..."}
+alternativeproject-auth-1 | {"level":"info","message":"SQL migrations applied"}
+alternativeproject-auth-1 | {"level":"info","message":"Applying metadata..."}
+alternativeproject-auth-1 | {"level":"info","message":"Metadata applied"}
+alternativeproject-auth-1 | {"level":"info","message":"Running on port 4000"}
+```
+
+
diff --git a/docs/guides/cli/seeds.mdx b/docs/guides/cli/seeds.mdx
new file mode 100644
index 0000000000..600f670f83
--- /dev/null
+++ b/docs/guides/cli/seeds.mdx
@@ -0,0 +1,80 @@
+---
+title: 'Seeds'
+description: description
+icon: peapod
+---
+
+When developing locally, it is very useful to work with a known set of data as it can simplify testing and development, especially when working in larger teams with multiple developers.
+
+With the CLI, it is easy to extract data from an existing environment and generate a "seed" that can be shared and used to pre-populate any development environment as it initializes.
+
+As mentioned before, you can create a seed from any environment. In this guide, we will assume that we have already started a local development with a table called "animals". At this point, we can add some data ourselves as usual. Once we are satisfied and have the data we want, we can run the following command to create a seed:
+
+```bash
+$ nhost dev hasura seed create some-initial-data \
+ --endpoint https://local.hasura.nhost.run \
+ --admin-secret nhost-admin-secret \
+ --database-name default \
+ --from-table animals
+
+INFO created seed file successfully file=/app/seeds/default/1685692310174_some-initial-data.sql
+```
+
+In the previous command, we instructed the CLI to create a seed named `some-initial-data` while specifying the connection parameters for our local environment. You could also extract data from a cloud project by specifying the correct parameters. Finally, we are only extracting data from the `animals` table, but you could also extract data from any other table or even from all tables.
+
+We can now inspect the file and see its contents:
+
+```bash
+$ cat nhost/seeds/default/1685692310174_some-initial-data.sql
+SET check_function_bodies = false;
+INSERT INTO public.animals (id, created_at, updated_at, name) VALUES ('d50ff2e8-ec2a-496b-a2e6-a50eecccdb16', '2023-05-16 14:01:59.072576+00', '2023-05-16 14:01:59.072576+00', 'dog');
+INSERT INTO public.animals (id, created_at, updated_at, name) VALUES ('8224ec02-6fed-48ff-8c06-6c36298d0fd0', '2023-05-16 14:02:06.300074+00', '2023-05-16 14:02:06.300074+00', 'cat');
+```
+
+Now, when you start a new development environment you can pass the `--apply-seeds` argument to pre-populate your environment with the seeds:
+
+```bash
+$ nhost up --apply-seeds
+Setting up Nhost development environment...
+Starting Nhost development environment...
+
+(...) omitted for brevity
+
+Applying migrations...
+INFO migrations applied on database: default
+Applying metadata...
+INFO Metadata applied
+Applying seeds...
+INFO Seed data planted for database: default
+
+(...) omitted for brevity
+```
+
+Or you could also apply the seeds yourself after starting nhost:
+
+```bash
+$ nhost up
+Setting up Nhost development environment...
+Starting Nhost development environment...
+
+(...) omitted for brevity
+
+Applying migrations...
+INFO migrations applied on database: default
+Applying metadata...
+INFO Metadata applied
+
+(...) omitted for brevity
+
+$ nhost dev hasura seed apply \
+ --endpoint https://local.hasura.nhost.run \
+ --admin-secret nhost-admin-secret \
+ --database-name default
+INFO Help us improve Hasura! The cli collects anonymized usage stats which
+allow us to keep improving Hasura at warp speed. To opt-out or read more,
+visit https://hasura.io/docs/latest/graphql/core/guides/telemetry.html
+INFO Seeds planted
+```
+
+Seeds are different from migrations because seeds are not automatically applied. If there is data that you want to have in all of your environments, it is best to use a database migration.
+
diff --git a/docs/guides/database/configuring-postgres.mdx b/docs/guides/database/configuring-postgres.mdx
new file mode 100644
index 0000000000..16ce393c31
--- /dev/null
+++ b/docs/guides/database/configuring-postgres.mdx
@@ -0,0 +1,93 @@
+---
+title: Configuring Postgres
+description: Learn how to configure your Postgres server instance
+icon: gear
+---
+
+Postgres configuration can be tweaked to customize the **runtime behavior**, **peformance**, and **operational** aspects of your Postgres server instance.
+
+
+ Making changes should be done with caution, especially in a production
+ environment, as incorrect settings can affect the stability and performance of
+ Postgres.
+
+
+### Available Settings
+
+The following `CUE` schema contains all postgres settings available in `nhost.toml`.
+
+```cue schema
+#Postgres: {
+ version: string | *"14.6-20230705-1"
+
+ // Resources for the service, optional
+ resources?: #Resources & {
+ replicas: 1
+ }
+
+ // postgres settings of the same name in camelCase, optional
+ settings?: {
+ jit: "off" | "on" | *"on"
+ maxConnections: int32 | *100
+ sharedBuffers: string | *"128MB"
+ effectiveCacheSize: string | *"4GB"
+ maintenanceWorkMem: string | *"64MB"
+ checkpointCompletionTarget: number | *0.9
+ walBuffers: int32 | *-1
+ defaultStatisticsTarget: int32 | *100
+ randomPageCost: number | *4.0
+ effectiveIOConcurrency: int32 | *1
+ workMem: string | *"4MB"
+ hugePages: string | *"try"
+ minWalSize: string | *"80MB"
+ maxWalSize: string | *"1GB"
+ maxWorkerProcesses: int32 | *8
+ maxParallelWorkersPerGather: int32 | *2
+ maxParallelWorkers: int32 | *8
+ maxParallelMaintenanceWorkers: int32 | *2
+ walLevel: string | *"replica"
+ maxWalSenders: int32 | *10
+ maxReplicationSlots: int32 | *10
+ }
+}
+```
+
+### Configuration Example
+
+To configure your Postgres instance, simply add the relevant settings under `[postgres.settings]` in your project's `nhost.toml` file.
+
+```toml nhost.toml
+[postgres]
+version = '14.6-20230925-1'
+
+[postgres.resources.compute]
+cpu = 1000
+memory = 2048
+
+[postgres.settings]
+jit = "off"
+maxConnections = 100
+sharedBuffers = '256MB'
+effectiveCacheSize = '768MB'
+maintenanceWorkMem = '64MB'
+checkpointCompletionTarget = 0.9
+walBuffers = -1
+defaultStatisticsTarget = 100
+randomPageCost = 1.1
+effectiveIOConcurrency = 200
+workMem = '1310kB'
+hugePages = 'off'
+minWalSize = '80MB'
+maxWalSize = '1GB'
+maxWorkerProcesses = 8
+maxParallelWorkersPerGather = 2
+maxParallelWorkers = 8
+maxParallelMaintenanceWorkers = 2
+walLevel = "replica"
+maxWalSenders = 10
+maxReplicationSlots = 10
+```
+
+### Resources
+
+- [Official documentation](https://www.postgresql.org/docs/14/runtime-config.html) from Postgres
diff --git a/docs/guides/database/extensions.mdx b/docs/guides/database/extensions.mdx
new file mode 100644
index 0000000000..2d855ab00d
--- /dev/null
+++ b/docs/guides/database/extensions.mdx
@@ -0,0 +1,189 @@
+---
+title: List of Available Extensions
+description: List of available extensions with Nhost Postgres.
+icon: grid
+---
+
+## postgis
+
+PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION postgis;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION postgis;
+```
+
+### Resources
+
+- [Official website](https://postgis.net/)
+
+## pgvector
+
+Open-source vector similarity search for Postgres. Store your vectors with the rest of your data.
+
+Supports:
+
+- exact and approximate nearest neighbor search
+- L2 distance, inner product, and cosine distance
+- any language with a Postgres client
+
+Plus ACID compliance, point-in-time recovery, JOINs, and all of the other great features of Postgres
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION vector;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION vector;
+```
+
+### Resources
+
+- [GitHub](https://github.com/pgvector/pgvector)
+
+## pg_cron
+
+pg_cron is a simple cron-based job scheduler for PostgreSQL (10 or higher) that runs inside the database as an extension. It uses the same syntax as regular cron, but it allows you to schedule PostgreSQL commands directly from the database. You can also use '[1-59] seconds' to schedule a job based on an interval.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION pg_cron;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION pg_cron;
+```
+
+### Resources
+
+- [GitHub](https://github.com/citusdata/pg_cron)
+
+## hypopg
+
+HypoPG is a PostgreSQL extension adding support for hypothetical indexes.
+
+An hypothetical -- or virtual -- index is an index that doesn't really exists, and thus doesn't cost CPU, disk or any resource to create. They're useful to know if specific indexes can increase performance for problematic queries, since you can know if PostgreSQL will use these indexes or not without having to spend resources to create them.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION hypopg;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION hypopg;
+```
+
+### Resources
+
+- [GitHub](https://github.com/HypoPG/hypopg)
+- [Documentation](https://hypopg.readthedocs.io/)
+
+## timescaledb
+
+TimescaleDB is an open-source database designed to make SQL scalable for time-series data. It is engineered up from PostgreSQL and packaged as a PostgreSQL extension, providing automatic partitioning across time and space (partitioning key), as well as full SQL support.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION timescaledb;
+```
+
+SET ROLE postgres;
+CREATE EXTENSION timescaledb;
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION timescaledb;
+```
+
+### Resources
+
+- [GitHub](https://github.com/timescale/timescaledb)
+- [Documentation](https://docs.timescale.com/)
+- [Website](https://www.timescale.com/)
+
+## pg_stat_statements
+
+The pg_stat_statements module provides a means for tracking planning and execution statistics of all SQL statements executed by a server.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION pg_stat_statements;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION pg_stat_statements;
+```
+
+### Resources
+
+- [Documentation](https://www.postgresql.org/docs/14/pgstatstatements.html)
+
+## http
+
+HTTP client for PostgreSQL, retrieve a web page from inside the database.
+
+### Managing
+
+To install the extension you can create a migration with the following contents:
+
+```sql SQL
+SET ROLE postgres;
+CREATE EXTENSION http;
+```
+
+To uninstall it, you can use the following migration:
+
+```sql SQL
+SET ROLE postgres;
+DROP EXTENSION http;
+```
+
+### Resources
+
+- [GitHub](https://github.com/pramsey/pgsql-http)
diff --git a/docs/guides/database/performance.mdx b/docs/guides/database/performance.mdx
new file mode 100644
index 0000000000..5ad6e6f190
--- /dev/null
+++ b/docs/guides/database/performance.mdx
@@ -0,0 +1,92 @@
+---
+title: "Performance"
+description: "Ensure Postgres Performance"
+icon: chart-line-up
+---
+
+Ensuring a healthy and performant PostgreSQL service is crucial as it directly impacts the overall response time and stability of your backend. Since Postgres serves as the centerpiece of your backend, prioritize the optimization and maintenance of your Postgres service to achieve the desired performance and reliability.
+
+In case your Postgres service is not meeting your performance expectations, you can explore the following options:
+
+1. Consider upgrading your [dedicated compute](/platform/compute) resources to provide more processing power and memory to the Postgres server.
+
+2. Fine-tune the configuration parameters of Postgres to optimize its performance. Adjust settings such as `shared_buffers`, `work_mem`, and `effective_cache_size` to better align with your workload and server resources.
+
+3. Identify and analyze slow-performing queries using tools like query logs or query monitoring extensions. Optimize or rewrite these queries to improve their efficiency.
+
+4. Evaluate the usage of indexes in your database. Identify queries that could benefit from additional indexes and strategically add them to improve query performance.
+
+By implementing these steps, you can effectively address performance concerns and enhance the overall performance of your Postgres service.
+
+## Upgrade to our latest postgres image
+
+Before trying anything else, always upgrade to our latest postgres image first. You can find our available images in our dashboard, under your database settings.
+
+## Upgrade to dedicated compute
+
+Increasing CPU and memory is the simplest way to address performance issues. You can read more about compute resources [here](/platform/compute).
+
+## Fine-tune configuration parameters
+
+When optimizing your Postgres setup, you can consider adjusting various Postgres settings. You can find a list of these parameters [here](/database/settings). Keep in mind that the optimal values for these parameters will depend on factors such as available resources, workload, and data distribution.
+
+To help you get started, you can use [pgtune](https://pgtune.leopard.in.ua) as a reference tool. Pgtune can generate recommended configuration settings based on your system specifications. By providing information about your system, it can suggest parameter values that may be a good starting point for optimization.
+
+However, it's important to note that the generated settings from pgtune are not guaranteed to be the best for your specific environment. It's always recommended to review and customize the suggested settings based on your particular requirements, performance testing, and ongoing monitoring of your Postgres database.
+
+## Identifying slow queries
+
+Monitoring slow queries is a highly effective method for tackling performance issues. Several tools leverage [pg_stat_statements](https://www.postgresql.org/docs/14/pgstatstatements.html), a PostgreSQL extension, to provide constant monitoring. You can employ these tools to identify and address slow queries in real-time.
+
+### pghero
+
+[PgHero](https://github.com/ankane/pghero) is one of such tools you can use to idenfity and address slow queries. You can easily run pghero alongside your postgres with [Nhost Run](/run):
+
+1. First, make sure the extension [pg_stat_statements](/database/extensions#pg_stat_statements) is enabled.
+
+2. Click on this [one-click install link](https://app.nhost.io:/run-one-click-install?config=eyJuYW1lIjoicGdoZXJvIiwiaW1hZ2UiOnsiaW1hZ2UiOiJkb2NrZXIuaW8vYW5rYW5lL3BnaGVybzpsYXRlc3QifSwiY29tbWFuZCI6W10sInJlc291cmNlcyI6eyJjb21wdXRlIjp7ImNwdSI6MTI1LCJtZW1vcnkiOjI1Nn0sInN0b3JhZ2UiOltdLCJyZXBsaWNhcyI6MX0sImVudmlyb25tZW50IjpbeyJuYW1lIjoiREFUQUJBU0VfVVJMIiwidmFsdWUiOiJwb3N0Z3JlczovL3Bvc3RncmVzOltQQVNTV09SRF1AcG9zdGdyZXMtc2VydmljZTo1NDMyL1tTVUJET01BSU5dP3NzbG1vZGU9ZGlzYWJsZSJ9LHsibmFtZSI6IlBHSEVST19VU0VSTkFNRSIsInZhbHVlIjoiW1VTRVJdIn0seyJuYW1lIjoiUEdIRVJPX1BBU1NXT1JEIiwidmFsdWUiOiJbUEFTU1dPUkRdIn1dLCJwb3J0cyI6W3sicG9ydCI6ODA4MCwidHlwZSI6Imh0dHAiLCJwdWJsaXNoIjp0cnVlfV19)
+
+3. Select your project:
+ ![select your project](/images/guides/database/pghero_01.png)
+
+4. Replace the placeholders with your postgres password, subdomain and a user and password to protect your pghero service. Finally, click on create.
+ ![fill run service details](/images/guides/database/pghero_02.png)
+
+5. After confirming the service, copy the URL:
+ ![run service details](/images/guides/database/pghero_03.png)
+
+6. Finally, you can open the link you just copied to access pghero:
+
+![pghero](/images/guides/database/pghero_04.png)
+
+
+ When you create a new service, it can take a few minutes for the DNS (Domain
+ Name System) to propagate. If your browser displays an error stating that it
+ couldn't find the server or website, simply wait for a couple of minutes and
+ then try again.
+
+
+After successfully setting up pghero, it will begin displaying slow queries, suggesting index proposals, and offering other valuable information. Utilize this data to enhance your service's performance.
+
+## Adding indexes
+
+Indexes can significantly enhance the speed of data retrieval. However, it's essential to be aware that they introduce additional overhead during mutations. Therefore, understanding your workload is crucial before opting to add an index.
+
+There are tools you can use to help analyze your workload and detect missing indexes.
+
+### pghero
+
+[PgHero](https://github.com/ankane/pghero), in addition to help with slow queries, can also help finding missing and duplicate indexes. See previous section on how to deploy pghero with [Nhost Run](/run).
+
+### dexter
+
+[Dexter](https://github.com/ankane/dexter) can leverage both [pg_stat_statements](https://www.postgresql.org/docs/14/pgstatstatements.html) and [hypopg](https://hypopg.readthedocs.io/en/rel1_stable/) to find and evaluate indexes. You can run dexter directly from your machine:
+
+1. Enable [hypopg](/database/extensions#hypopg)
+2. Execute the command `docker run --rm -it ankane/dexter [POSTGRES_CONN_STRING] --pg-stat-statements`
+
+```
+$ docker run --rm -it ankane/dexter [POSTGRES_CONN_STRING] --pg-stat-statements
+Processing 1631 new query fingerprints
+No new indexes found
+```
diff --git a/docs/guides/functions/overview.mdx b/docs/guides/functions/overview.mdx
new file mode 100644
index 0000000000..40a21b6c35
--- /dev/null
+++ b/docs/guides/functions/overview.mdx
@@ -0,0 +1,75 @@
+---
+title: Overview
+description: Learn how to use Nhost Functions
+icon: play
+---
+
+All you have to do is throw your `.js` and `.ts` files inside of the `./functions` folder of your project and Nhost takes care of deploying your functions as part of a [Deployment](/platform/deployments).
+
+To deploy Nhost Functions, your project needs to be connected to a GitHub repository.
+
+## Nhost Functions
+
+
+
+
+```js ./functions/hello.js
+export default (req, res) => {
+ res.status(200).send(`Hello ${req.query.name}!`)
+}
+```
+
+
+
+
+```ts ./functions/hello.ts
+import { Request, Response } from 'express'
+
+export default (req: Request, res: Response) => {
+ res.status(200).send(`Hello ${req.query.name}!`)
+}
+```
+
+
+To get the `Request` and `Response` types you have to install the `@types/express` package.
+
+
+
+
+
+
+Folders and filenames prepended with an underscore are not exposed. This is useful, for example, for utility functions that you want to share across multiple functions.
+
+### Endpoints
+
+Functions are exposed through HTTP endpoints generated based on the contents of `./functions`:
+
+| File | HTTP Endpoint |
+| --------------------------- | ------------------------------------------------------------------ |
+| `functions/index.js` | `https://[subdomain].functions.[region].nhost.run/v1/` |
+| `functions/users/index.ts` | `https://[subdomain].functions.[region].nhost.run/v1/users` |
+| `functions/users/active.ts` | `https://[subdomain].functions.[region].nhost.run/v1/users/active` |
+| `functions/my-company.js` | `https://[subdomain].functions.[region].nhost.run/v1/my-company` |
+
+
+Folders and filenames prepended with an underscore are not exposed. This is useful, for example, for utility functions that you want to share across multiple functions.
+
+### Environment Variables
+
+[Environment variables](/platform/environment-variables) are available to your Functions. Both in production and when running Nhost locally using the [Nhost CLI](/development/cli).
+
+The same environment variables that are used to configure event triggers can be used to authenticate functions.
+
+### Billing
+
+Functions are billed per GB-sec or GB-hour. 1 GB-hour is 3600 GB-seconds.
+
+1 GB-sec is 1 Function with 1GB of RAM running for 1 second. If 1 Function with 1GB of RAM runs for 3600 seconds, that's the equivalent of 1 GB-hour.
+
+### Additional Resources
+
+
+
+
+
+
diff --git a/docs/guides/overview.mdx b/docs/guides/overview.mdx
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/guides/quickstarts/nextjs.mdx b/docs/guides/quickstarts/nextjs.mdx
new file mode 100644
index 0000000000..9a42bb5483
--- /dev/null
+++ b/docs/guides/quickstarts/nextjs.mdx
@@ -0,0 +1,161 @@
+---
+title: Setup Nhost with Next.js
+sidebarTitle: Next.js
+description: Get up and running with Nhost and Next.js
+icon: react
+---
+
+
+
+ If you haven't, please create a project through the [Nhost Dashboard](https://app.nhost.io/new).
+
+
+
+ Navigate to the **SQL Editor** of the database and run the following SQL to create a new table `movies` with some great movies.
+
+ ```sql SQL Editor
+ CREATE TABLE movies (
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(255) NOT NULL,
+ director VARCHAR(255),
+ release_year INTEGER,
+ genre VARCHAR(100),
+ rating FLOAT
+ );
+
+ INSERT INTO movies (title, director, release_year, genre, rating) VALUES
+ ('Inception', 'Christopher Nolan', 2010, 'Sci-Fi', 8.8),
+ ('The Godfather', 'Francis Ford Coppola', 1972, 'Crime', 9.2),
+ ('Forrest Gump', 'Robert Zemeckis', 1994, 'Drama', 8.8),
+ ('The Matrix', 'Lana Wachowski, Lilly Wachowski', 1999, 'Action', 8.7);
+ ```
+
+ Make sure the option `Track this` is enabled
+
+ ![SQL Editor](/images/guides/quickstarts/react/sql-editor.png)
+
+
+
+
+ Select the new table `movies` just created, and click in **Edit Permissions** to set the following permissions for the `public` role and `select` action.
+
+ ![Permission Rules](/images/guides/quickstarts/react/permissions.png)
+
+
+
+
+ Create a Next.js application.
+
+ ```bash Terminal
+ npx create-next-app@latest --no-eslint \
+ --src-dir \
+ --no-tailwind \
+ --import-alias "@/*" \
+ --js \
+ --app \
+ nhost-nextjs-quickstart
+ ```
+
+
+
+
+ Navidate to the React application and install `@nhost/nextjs`.
+
+ ```bash Terminal
+ cd nhost-nextjs-quickstart && npm install @nhost/nextjs
+ ```
+
+
+
+
+
+ Create a new file with the following code to creates the Nhost client.
+
+ ```js ./src/lib/nhost.js
+ import { NhostClient } from "@nhost/nextjs";
+
+ export const nhost = new NhostClient({
+ subdomain: "",
+ region: "",
+ })
+ ```
+
+ Replace `` and `` with the subdomain and region for the project
+
+ Finally, update `./src/app/page.js` to fetch the list of movies.
+
+ ```js src/app/page.js
+ 'use client'
+
+ import { useEffect, useState } from "react";
+ import { NhostProvider } from "@nhost/nextjs";
+ import { nhost } from '../lib/nhost'
+
+ const getMovies = `
+ query {
+ movies {
+ title
+ genre
+ rating
+ }
+ }
+ `;
+
+ function App() {
+ return (
+
+
+
+ );
+ }
+
+ function Home() {
+ const [loading, setLoading] = useState(true);
+ const [movies, setMovies] = useState([]);
+
+ useEffect(() => {
+ async function fetchMovies() {
+ setLoading(true);
+ const { data, error } = await nhost.graphql.request(getMovies);
+
+ setMovies(data.movies);
+ setLoading(false);
+ }
+
+ fetchMovies();
+ }, []);
+
+ return (
+
+ {loading ? (
+
Loading...
+ ) : (
+
+
+ {movies.map((movie, index) => (
+
+ {movie.title}
+ {movie.genre}
+ {movie.rating}
+
+ ))}
+
+
+ )}
+
+ );
+ }
+
+ export default App;
+ ```
+
+
+
+
+ Run your project with `npm run dev` and navigate to `http://localhost:3000` in your browser.
+
+
+
+```
+
+```
diff --git a/docs/guides/quickstarts/react.mdx b/docs/guides/quickstarts/react.mdx
new file mode 100644
index 0000000000..f4974d18c5
--- /dev/null
+++ b/docs/guides/quickstarts/react.mdx
@@ -0,0 +1,149 @@
+---
+title: Setup Nhost with React
+sidebarTitle: React
+description: Get up and running with Nhost and React
+icon: react
+---
+
+
+
+ If you haven't, please create a project through the [Nhost Dashboard](https://app.nhost.io/new).
+
+
+
+ Navigate to the **SQL Editor** of the database and run the following SQL to create a new table `movies` with some great movies.
+
+ ```sql SQL Editor
+ CREATE TABLE movies (
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(255) NOT NULL,
+ director VARCHAR(255),
+ release_year INTEGER,
+ genre VARCHAR(100),
+ rating FLOAT
+ );
+
+ INSERT INTO movies (title, director, release_year, genre, rating) VALUES
+ ('Inception', 'Christopher Nolan', 2010, 'Sci-Fi', 8.8),
+ ('The Godfather', 'Francis Ford Coppola', 1972, 'Crime', 9.2),
+ ('Forrest Gump', 'Robert Zemeckis', 1994, 'Drama', 8.8),
+ ('The Matrix', 'Lana Wachowski, Lilly Wachowski', 1999, 'Action', 8.7);
+ ```
+
+ Make sure the option `Track this` is enabled
+
+ ![SQL Editor](/images/guides/quickstarts/react/sql-editor.png)
+
+
+
+
+ Select the new table `movies` just created, and click in **Edit Permissions** to set the following permissions for the `public` role and `select` action.
+
+ ![Permission Rules](/images/guides/quickstarts/react/permissions.png)
+
+
+
+ Create a React application using Vite.
+
+ ```bash Terminal
+ npm create vite@latest nhost-react-quickstart -- --template react
+ ```
+
+
+
+ Navidate to the React application and install `@nhost/react`.
+
+ ```bash Terminal
+ cd nhost-react-quickstart && npm install @nhost/react
+ ```
+
+
+
+
+ Create a new file with the following code to creates the Nhost client.
+
+ ```js ./src/lib/nhost.js
+ import { NhostClient } from "@nhost/react";
+
+ export const nhost = new NhostClient({
+ subdomain: "",
+ region: "",
+ })
+ ```
+
+ Replace `` and `` with the subdomain and region for the project
+
+ Finally, update `./src/App.jsx` to fetch the list of movies.
+
+ ```js src/App.jsx
+ import { useEffect, useState } from "react";
+ import { NhostProvider } from "@nhost/react";
+ import { nhost } from './lib/nhost'
+
+ const getMovies = `
+ query {
+ movies {
+ title
+ genre
+ rating
+ }
+ }
+ `;
+
+ function App() {
+ return (
+
+
+
+ );
+ }
+
+ function Home() {
+ const [loading, setLoading] = useState(true);
+ const [movies, setMovies] = useState([]);
+
+ useEffect(() => {
+ async function fetchMovies() {
+ setLoading(true);
+ const { data, error } = await nhost.graphql.request(getMovies);
+
+ setMovies(data.movies);
+ setLoading(false);
+ }
+
+ fetchMovies();
+ }, []);
+
+ return (
+
+ {loading ? (
+
Loading...
+ ) : (
+
+
+ {movies.map((movie, index) => (
+
+ {movie.title}
+ {movie.genre}
+ {movie.rating}
+
+ ))}
+
+
+ )}
+
+ );
+ }
+
+ export default App;
+ ```
+
+
+
+ Run your project with `npm run dev -- --open --port 3000` and enter `http://localhost:3000` in your browser.
+
+
+
+```
+
+```
diff --git a/docs/guides/quickstarts/vue.mdx b/docs/guides/quickstarts/vue.mdx
new file mode 100644
index 0000000000..7d33414940
--- /dev/null
+++ b/docs/guides/quickstarts/vue.mdx
@@ -0,0 +1,132 @@
+---
+title: Setup Nhost with Vue
+sidebarTitle: Vue
+description: Get up and running with Nhost and Vue
+icon: vuejs
+---
+
+
+
+ If you haven't, please create a project through the [Nhost Dashboard](https://app.nhost.io/new).
+
+
+
+ Navigate to the **SQL Editor** of the database and run the following SQL to create a new table `movies` with some great movies.
+
+ ```sql SQL Editor
+ CREATE TABLE movies (
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(255) NOT NULL,
+ director VARCHAR(255),
+ release_year INTEGER,
+ genre VARCHAR(100),
+ rating FLOAT
+ );
+
+ INSERT INTO movies (title, director, release_year, genre, rating) VALUES
+ ('Inception', 'Christopher Nolan', 2010, 'Sci-Fi', 8.8),
+ ('The Godfather', 'Francis Ford Coppola', 1972, 'Crime', 9.2),
+ ('Forrest Gump', 'Robert Zemeckis', 1994, 'Drama', 8.8),
+ ('The Matrix', 'Lana Wachowski, Lilly Wachowski', 1999, 'Action', 8.7);
+ ```
+
+ Make sure the option `Track this` is enabled
+
+ ![SQL Editor](/images/guides/quickstarts/react/sql-editor.png)
+
+
+
+
+ Select the new table `movies` just created, and click in **Edit Permissions** to set the following permissions for the `public` role and `select` action.
+
+ ![Permission Rules](/images/guides/quickstarts/react/permissions.png)
+
+
+
+
+ Create a Vue application using Vite.
+
+ ```bash Terminal
+ npm create vue@latest nhost-vue-quickstart
+ ```
+
+
+
+
+ Navidate to the React application and install `@nhost/vue`.
+
+ ```bash Terminal
+ cd nhost-vue-quickstart && npm install @nhost/vue
+ ```
+
+
+
+
+
+ Create a new file with the following code to creates the Nhost client.
+
+ ```js ./src/lib/nhost.js
+ import { NhostClient } from "@nhost/vue";
+
+ export const nhost = new NhostClient({
+ subdomain: "",
+ region: "",
+ })
+ ```
+
+ Replace `` and `` with the subdomain and region for the project
+
+ Finally, update `./src/App.vue` to fetch the list of movies.
+
+ ```js src/App.vue
+
+
+
+
+
+
+
+ {{ movie.title }}
+ {{ movie.genre }}
+ {{ movie.rating }}
+
+
+
+
+
+ ```
+
+
+
+
+ Run your project with `npm run dev -- --open --port 3000` and enter `http://localhost:3000` in your browser.
+
+
+
+```
+
+```
diff --git a/docs/guides/run/cli-deployments.mdx b/docs/guides/run/cli-deployments.mdx
new file mode 100644
index 0000000000..66e276e407
--- /dev/null
+++ b/docs/guides/run/cli-deployments.mdx
@@ -0,0 +1,50 @@
+---
+title: CLI & CI Deployments
+description: description
+icon: rocket-launch
+---
+
+## Deploying with the CLI
+
+Below you can find a simple script to deploy a Nhost Run service using the CLI. This script can be leveraged on any CI or environment as long as you can install the Nhost CLI and have access to docker buildx.
+
+```bash
+#!/bin/sh
+SERVICE_ID="2503b290-249c-42f5-b89e-fd9a98980e22"
+IMAGE="registry.eu-central-1.nhost.run/2503b290-249c-42f5-b89e-fd9a98980e22"
+PAT="this-is-my-pat"
+VERSION="1.0.0"
+CONFIGURATION_FILE="nhost-service.toml"
+
+# this only needs to be done once in each environment
+# but usually CIs start with a clean environment each time
+#
+# you can also login with your regular email/password
+# credentials if you prefer
+nhost login --pat $PAT
+
+# this only needs to be done once in each environment
+# but usually CIs start with a clean environment each time
+nhost docker-credentials configure --no-interactive
+
+docker buildx build \
+ --push \
+ --platform linux/amd64,linux/arm64 \
+ -t $IMAGE:$VERSION \
+ .
+
+nhost run config-deploy \
+ --config $CONFIGURATION_FILE \
+ --service-id $SERVICE_ID
+```
+
+You can create a PAT by heading to the dashboard -> Account Settings -> Create Personal Access Token
+
+## Deploy from Github Actions
+
+If you prefer to deploy from GitHub actions we support a few GitHub actions you can use to build your own workflows. We also have an already-made workflow you can leverage and there is a hello-world application you can check for a more thorough example and a step-by-step demo:
+
+1. [Github actions](https://github.com/marketplace?type=actions&query=nhost+)
+2. [Workflows](https://github.com/nhost-actions/workflows#build-and-release-nhost-runyaml)
+3. [Hello World](https://github.com/nhost/nhost-run-hello-world)
+
diff --git a/docs/guides/run/configuration.mdx b/docs/guides/run/configuration.mdx
new file mode 100644
index 0000000000..b0a2e70552
--- /dev/null
+++ b/docs/guides/run/configuration.mdx
@@ -0,0 +1,56 @@
+---
+title: Configuration
+description: Configure
+icon: gear
+---
+
+To configure a service you can use either the dashboard or a TOML configuration file with the following format:
+
+
+
+
+
+![configuration](/images/guides/run/configuration.png)
+
+
+
+
+```toml
+name="mynodeapp"
+
+[image]
+image="registry.eu-central-1.nhost.run/b719c4a4-6fb2-4feb-8220-c7f01ef5bfe8:0.1.1"
+
+[[environment]]
+name="ENV"
+value="prod"
+
+[[ports]]
+type="http"
+port=3000
+publish=true
+
+[resources]
+replicas=1
+
+[resources.compute]
+cpu=62
+memory=128
+
+[[resources.storage]]
+name="data"
+path="/var/lib/data"
+capacity=1
+```
+
+
+
+
+Head to [CLI & CI deployments](/run/ci) for more details on how to deploy using a configuration file.
+
+The `name` of the service is used as an identifier and to generate URLs when exposing the service to the Internet. You can use any container image publicly available or you can push your own to the [Nhost registry](/run/registry).
+
+All environment variables set here are exclusive to this service and will not be shared with other services or with the Nhost stack. If you are using a configuration file secrets are supported.
+
+For more details about the `Ports` section head to [networking](/run/networking). You can also head to [resources](/run/resources) for more information about replicas, compute, and storage.
+
diff --git a/docs/guides/run/getting-started.mdx b/docs/guides/run/getting-started.mdx
new file mode 100644
index 0000000000..5e0fb11448
--- /dev/null
+++ b/docs/guides/run/getting-started.mdx
@@ -0,0 +1,35 @@
+---
+title: Getting Started
+description: 'Learn how to get started with Run'
+icon: play
+---
+
+To start with Nhost Run, you will need to create an Nhost project first. Then you can click on `Run` in the sidebar:
+
+![click on run](/images/guides/run/getting_started_1.png)
+
+Then on `New Service`:
+
+![click on New Service](/images/guides/run/getting_started_2.png)
+
+Now you can fill your [service configuration](/run/configuration):
+
+![click on New Service](/images/guides/run/getting_started_3.png)
+
+As you configure the `Ports` section you can take note of the generated URL. You can find more information about this section under [Networking](/run/networking).
+
+![copy the URL](/images/guides/run/getting_started_4.png)
+
+Once you are done configuring your service you can click on `Create`:
+
+![click on create](/images/guides/run/getting_started_5.png)
+
+Now wait for the service to finish updating:
+
+![wait for the service to finish updating](/images/guides/run/getting_started_6.png)
+
+Finally you can visit the URL you copied before:
+
+![visit url](/images/guides/run/getting_started_7.png)
+
+And profit!
diff --git a/docs/guides/run/health-checks.mdx b/docs/guides/run/health-checks.mdx
new file mode 100644
index 0000000000..796b2380b1
--- /dev/null
+++ b/docs/guides/run/health-checks.mdx
@@ -0,0 +1,26 @@
+---
+title: Healthchecks
+description: description
+icon: heart-pulse
+---
+
+## Configuration
+
+Below you can find an excerpt from a toml configuration file for a service with healthcheck enabled:
+
+```toml
+[healthCheck]
+port = 3000
+initialDelaySeconds = 30
+probePeriodSeconds = 60
+```
+
+## Healthcheck behaviour
+
+The healthcheck endpoint must be available at `/healthz` on the port specified in `healthCheck.port`. It is not necessary to publish the port in order to enable healthchecks on it. However, if the container image itself exposes multiple ports, only one of them can be used for healthchecks.
+
+The endpoint must return `200` status code within `5` seconds for the service to be considered healthy. If the service fails to respond correctly `3` times in a row it will be considered not healthy and will be restarted with an exponential backoff delay (10s, 20s, 40s, …), that is capped at five minutes.
+
+With `healthCheck.initialDelaySeconds` you can specify the number of seconds to wait before sending the first healthcheck request, this is useful if the service needs some time to start up. The default value is `30` seconds.
+
+With `healthCheck.probePeriodSeconds` you can specify the number of seconds to wait between healthcheck requests. The default value is `60` seconds.
diff --git a/docs/guides/run/networking.mdx b/docs/guides/run/networking.mdx
new file mode 100644
index 0000000000..482563767d
--- /dev/null
+++ b/docs/guides/run/networking.mdx
@@ -0,0 +1,107 @@
+---
+title: Networking
+description: descriptioon
+icon: network-wired
+---
+
+
+Nhost Run services and the main Nhost stack share the same network, facilitating direct and efficient communication. This network connectivity offers low latency, high throughput, and eliminates egress costs.
+## Connecting to the Nhost stack
+
+To connect your service to the Nhost stack, use the following information:
+
+- postgres: `postgres://postgres:@postgres-service:5432/?sslmode=disable`
+- hasura: base URL is `http://hasura-service:8080`
+- hasura-auth: base URL is `http://hasura-auth-service:4000`
+- hasura-storage: base URL is `http://hasura-storage-service:5000`
+
+## Connecting to your service internally
+
+To connect to your own service internally from another service, follow these steps:
+
+1. Expose the desired port(s).
+
+Example for Redis service:
+
+
+
+![exposing a port](/images/guides/run/configure-port.png)
+
+
+
+```
+[[ports]]
+type = "tcp"
+port = 6379
+publish = false
+```
+
+
+
+
+
+2. Once the port is exposed, you can connect to the service using its name and the corresponding port.
+
+Example: `redis://user:password@redis:6379`
+
+If needed, you can open internally more than one port by repeating the block for each one of them:
+
+Example for a service exposing the ports tcp/3000 and udp/4000:
+
+
+
+
+![exposing multiple ports](/images/guides/run/configure-multiple-ports.png)
+
+
+
+```
+[[ports]]
+type = "tcp"
+port = 3000
+publish = false
+
+[[ports]]
+type = "udp"
+port = 4000
+publish = false
+```
+
+
+
+## Exposing Your Service to the Internet
+
+To expose your service to the internet, follow these steps:
+
+1. Update your configuration with the relevant port information:
+
+Example for a nodejs service exposing an API on port 3000:
+
+
+
+
+![expose http port](/images/guides/run/configure-http-port.png)
+
+
+
+
+```
+[[ports]]
+type = "http"
+port = 3000
+publish = true
+```
+
+
+
+
+Currently, only services of type `http` can be exposed to the internet.
+
+2. Once the service of type `http` is published, you can connect to it using a URL with the following format:
+
+ `https://-.svc..nhost.run`
+
+ For example:
+
+ `https://zlbmqjfczuwqvsquujno-3000.svc.eu-central-1.nhost.run`
+
diff --git a/docs/guides/run/registry.mdx b/docs/guides/run/registry.mdx
new file mode 100644
index 0000000000..bfc820b763
--- /dev/null
+++ b/docs/guides/run/registry.mdx
@@ -0,0 +1,95 @@
+---
+title: Registry
+description: registru
+icon: box-archive
+---
+
+## Creating a private repository for your image
+
+We provide a private image registry you can push images to with each service. To make use of it you can start by creating a service and configuring it:
+
+![configure service](/images/guides/run/registry_1.png)
+
+Note that we are leaving the Image empty, this will auto-populate the service with the provisioned registry. We are also setting `Replicas` to 0 to avoid starting the service and incurring costs before we have pushed the image.
+
+Now you can click on Create:
+
+![create service](/images/guides/run/registry_2.png)
+
+Now you can click on the newly created service:
+
+![click on the new service](/images/guides/run/registry_3.png)
+
+And copy the image:
+
+![copy the image](/images/guides/run/registry_4.png)
+
+## Configuring docker to use Nhost's registry
+
+The CLI can configure docker automatically to be able to push and pull images from the docker registry. To do so you need to run the following command:
+
+```bash
+$ nhost docker-credentials configure
+
+Installing credentials helper for docker in /usr/local/bin/docker-credential-nhost-login
+I need root privileges to install the file. Please, enter your password.
+Password:
+- I am about to configure docker to authenticate with Nhost's registry. This will modify your docker config file on /Users/dbarroso/.docker/config.json. Should I continue? [y/N] y
+```
+
+After you have configured the credentials helper with the command above docker should be able to interact with your images normally:
+
+
+```bash
+$ docker buildx build \
+ --push \
+ --platform linux/amd64,linux/arm64 \
+ -t registry.eu-central-1.nhost.run/f02bb536-f785-4732-9eb8-d1d3664d7949:123 \
+ .
+[+] Building 8.7s (11/11) FINISHED docker-container:focused_dirac
+ => [internal] load .dockerignore 0.0s
+ => => transferring context: 2B 0.0s
+ => [internal] load build definition from Dockerfile 0.0s
+ => => transferring dockerfile: 96B 0.0s
+ => [linux/arm64 internal] load metadata for docker.io/library/node:18-slim 6.4s
+ => [linux/amd64 internal] load metadata for docker.io/library/node:18-slim 6.4s
+ => [linux/arm64 1/2] FROM docker.io/library/node:18-slim@sha256:bfa807593c4e904c9dbdeec45a266d38040804e498c714bddf59734a1ed34730 0.0s
+ => => resolve docker.io/library/node:18-slim@sha256:bfa807593c4e904c9dbdeec45a266d38040804e498c714bddf59734a1ed34730 0.0s
+ => [internal] load build context 0.0s
+ => => transferring context: 28B 0.0s
+ => [linux/amd64 1/2] FROM docker.io/library/node:18-slim@sha256:bfa807593c4e904c9dbdeec45a266d38040804e498c714bddf59734a1ed34730 0.0s
+ => => resolve docker.io/library/node:18-slim@sha256:bfa807593c4e904c9dbdeec45a266d38040804e498c714bddf59734a1ed34730 0.0s
+ => CACHED [linux/arm64 2/2] ADD app.js app.js 0.0s
+ => CACHED [linux/amd64 2/2] ADD app.js app.js 0.0s
+ => exporting to image 2.2s
+ => => exporting layers 0.0s
+ => => exporting manifest sha256:b38199ab8a25d3c765cd763be8af6ea6b3542455f2e7ad37f92924538dbc2af7 0.0s
+ => => exporting config sha256:d66a5274b034a3b5698044a03bbec53dccc9e4f5f774701c59604fa17c8f0ff3 0.0s
+ => => exporting attestation manifest sha256:c5487067b094ab1d7a81a216595a0f773c55ceec95319e844cded94247e4d341 0.0s
+ => => exporting manifest sha256:f1c56d22755cae4d73ee432f11d248ca10ae4b89be3d56f0ffe95e5d7ce10542 0.0s
+ => => exporting config sha256:a532f91c5f9899a150b9c981933fa3b163879dcb5ceb48ebc132f72b564a5878 0.0s
+ => => exporting attestation manifest sha256:9e1a0207de26c335df4cee8398ada86f7b6a68ebb86e39550fe862416a10df84 0.0s
+ => => exporting manifest list sha256:f0d8521804f16280642e99c8c25bbd66f659a9a9bd7bb72cf0726dd98d9bfb00 0.0s
+ => => pushing layers 1.2s
+ => => pushing manifest for registry.eu-central-1.nhost.run/f02bb536-f785-4732-9eb8-d1d3664d7949:123@sha256:f0d8521804f16280642e99c8c25bbd66f659a9a9bd7bb72cf0726dd98d9bfb00 1.0s
+ => [auth] sharing credentials for registry.eu-central-1.nhost.run 0.0s
+
+
+```
+
+The credentials helper will authenticate requests with the logged in user, so don't forget to authenticate with your user before trying to push or pull images. You can log in by running the command `nhost login`.
+
+## Updating the image in the service configuration
+
+After you have pushed your image you can click on your service again and update the configuration:
+
+![configure service](/images/guides/run/registry_5.png)
+
+Notice we added the tag `:123` to the image that was already pre-populated and that we increased replicas to `1` to unpause the service. Don't forget to copy the URL where we are exposing the service. Now you can click on update:
+
+![update service](/images/guides/run/registry_6.png)
+
+Wait a few seconds until the project is done updating the new service and visit the URL we copied before:
+
+![visit url](/images/guides/run/registry_7.png)
+
diff --git a/docs/guides/run/resources.mdx b/docs/guides/run/resources.mdx
new file mode 100644
index 0000000000..c0595b5c08
--- /dev/null
+++ b/docs/guides/run/resources.mdx
@@ -0,0 +1,95 @@
+---
+title: Resources
+description: description
+icon: gauge-max
+---
+
+## Compute
+
+You can configure compute resources for your service like this:
+
+
+
+
+![compute slider](/images/guides/run/resources_1.png)
+
+
+
+
+```toml
+[resources.compute]
+cpu = 62
+memory = 128
+```
+
+
+
+If you are configuring the resources via the configuration file instead of using the dashboard, keep in mind that cpu and memory allocation need to follow the following rules:
+
+* The value of the `memory` parameter must be exactly 2,048 times the value of the cpu parameter.
+* The value of the memory parameter must be within the range of 128 to 7,168 (inclusive).
+
+Don't forget you can use `nhost run config-validate` command to verify your values are correct.
+
+## Storage
+
+By default a container's disk is ephemeral so data isn't persisted across reboots. If your service needs persistent storage you can attach one or more SSD disks by adding the following configuration:
+
+
+
+
+
+![storage](/images/guides/run/resources_2.png)
+
+
+
+
+```toml
+[[resources.storage]]
+name="database"
+path="/var/lib/db"
+capacity=10
+
+
+[[resources.storage]]
+name="data"
+path="/mnt/data"
+capacity=1
+```
+
+
+
+
+With the above configuration, two disks will be provided. The first disk named `database` will have a capacity of 10 GiB and will be mounted at `/var/lib/db`. The second disk named `data` will have a capacity of 1 GiB and will be mounted at ``/mnt/data`.`
+
+Please note that renaming a disk will result in the destruction of the old disk and the creation of a new one, potentially leading to data loss.
+
+Volume capacity can not be decreased. Once a volume with a given size has been created, its capacity can only by expanded.
+
+It's important to note that disks are unique to each service and cannot be shared across multiple services.
+
+## Pausing a service
+
+To pause a service, simply set its number of replicas to `0`:
+
+
+
+
+
+![pausing a service](/img/run/resources_3.png)
+
+
+
+
+```toml
+[resources]
+replicas = 0
+```
+
+
+
+
+When you pause a service, it will cease running while keeping any associated disk and registry intact.
+
+While the service is paused, computing costs will not be charged. However, storage costs will continue to apply.
+
diff --git a/docs/guides/storage/antivirus.mdx b/docs/guides/storage/antivirus.mdx
new file mode 100644
index 0000000000..756294233f
--- /dev/null
+++ b/docs/guides/storage/antivirus.mdx
@@ -0,0 +1,28 @@
+---
+title: Antivirus
+description: Learn how to integrate with ClamAV
+icon: shield-virus
+---
+
+Integration with [clamav](https://www.clamav.net) antivirus relies on an external [clamd](https://docs.clamav.net/manual/Usage/Scanning.html#clamd) service. When a file is uploaded `hasura-storage` will create the file metadata first and then check if the file is clean with `clamd` via its TCP socket. If the file is clean the rest of the process will continue as usual. If a virus is found details about the virus will be added to the `virus` table and the rest of the process will be aborted.
+
+![sequence](/images/guides/storage/sequence.png)
+
+To enable the antivirus you need to follow the next steps:
+
+
+1. Deploy using [Nhost Run](/run) a dedicated instance of `clamd` with this [one-click install link](https://app.nhost.io:/run-one-click-install?config=eyJuYW1lIjoiY2xhbWF2IiwiaW1hZ2UiOnsiaW1hZ2UiOiJkb2NrZXIuaW8vbmhvc3QvY2xhbWF2OjAuMS4xIn0sImNvbW1hbmQiOltdLCJyZXNvdXJjZXMiOnsiY29tcHV0ZSI6eyJjcHUiOjEwMDAsIm1lbW9yeSI6MjA0OH0sInN0b3JhZ2UiOltdLCJyZXBsaWNhcyI6MX0sImVudmlyb25tZW50IjpbXSwicG9ydHMiOlt7InBvcnQiOiIzMzEwIiwidHlwZSI6InRjcCIsInB1Ymxpc2giOmZhbHNlfV19).
+2. Select the project:
+![select project](/images/guides/storage/av_01.png)
+3. Click on "Create":
+![click on create](/images/guides/storage/av_02.png)
+4. Make sure you are running **at least** storage version 0.4.0 and enable the antivirus:
+![update settings](/images/guides/storage/av_03.png)
+5. Wait for the service to update and try to upload a sample virus file like [eicar](https://www.eicar.org/download-anti-malware-testfile/)
+![upload virus](/images/guides/storage/av_04.png)
+6. If the setup is working the upload should fail
+![upload fails](/images/guides/storage/av_05.png)
+7. You can also head to hasura and verify entries were added to the `virus` table:
+![click on create](/images/guides/storage/av_06.png)
+
+That entry should have useful information about like the filename, the virus found and the user session. In addition, the information on that table can be used a source for events.
diff --git a/docs/guides/storage/overview.mdx b/docs/guides/storage/overview.mdx
new file mode 100644
index 0000000000..6ea526fb5f
--- /dev/null
+++ b/docs/guides/storage/overview.mdx
@@ -0,0 +1,193 @@
+---
+title: Overview
+description: Learn how to use Nhost Storage
+icon: play
+---
+
+Nhost Storage lets your users upload and download files. Nhost Storage is partially integrated with the GraphQL API, where file metadata and permissions are managed. Files are stored in S3 and served via a CDN.
+
+## Files
+
+Files can be of any type, such as images, documents, videos, etc.
+
+File metadata is stored in your database in the `files` table in the `storage` schema. This means that file metadata is available in your GraphQL API, which makes it easy to:
+
+- Read file metadata via GraphQL.
+- Manage file permissions (in Hasura).
+- Create GraphQL relationships between files and your database tables.
+
+
+Don't modify the database schema, nor GraphQL root fields in any of the tables in the `storage` schema.
+
+
+
+You're allowed to add and modify the following:
+
+- GraphQL Relationships
+- Permissions
+
+
+### Upload File
+
+When a file is uploaded, the file metadata is inserted into the `storage.files` table and a file `id` is returned. The file's `id` is how you reference and access the file. It's recommended to create your own table to store the uploaded file `id`, to access the file in the future.
+
+
+
+
+```js
+await nhost.storage.upload({ file })
+```
+
+Learn more about [`upload()`](/reference/javascript/storage/upload).
+
+
+
+
+```http
+POST https://local.storage.nhost.run/v1/files HTTP/1.1
+```
+
+
+
+
+### Download File
+
+There are two ways to download a file:
+
+- Public URL
+- Pre-signed URL
+
+#### Public URL
+
+Public URLs are available for both unauthenticated and authenticated users. Permissions are checked for every file request. To get a public URL for a file, you would normally use the `public` role to set **select** permissions.
+
+
+
+
+```js
+await nhost.storage.getPublicUrl({
+ fileId: ''
+})
+```
+
+Learn more about [`getPublicUrl()`](/reference/javascript/storage/get-public-url).
+
+
+
+
+```http
+GET https://local.storage.nhost.run/v1/files/{file_id} HTTP/1.1
+```
+
+
+
+
+#### Pre-signed URL
+
+Pre-signed URLs work a bit differently from public URLs.
+
+The permission check only happens when the user requests a pre-signed URL. Once a pre-signed URL is generated, anyone with the URL can download the file.
+
+Pre-signed URLs expire after an expiration time. For files in the `default` bucket, the expiration time is 30 seconds. You can change the expiration time for pre-signed URLs by changing the `download_expiration` (in seconds) field for the bucket where the file is located.
+
+
+
+
+```js
+await nhost.storage.getPresignedUrl({
+ fileId: ''
+})
+```
+
+Learn more about [`getPresignedUrl()`](/reference/javascript/storage/get-presigned-url).
+
+
+
+
+```http
+GET https://local.storage.nhost.run/v1/files/{file_id}/presignedurl HTTP/1.1
+```
+
+
+
+
+### Delete File
+
+Delete a file and the file metadata in the database.
+
+
+
+
+```js
+const { error } = await nhost.storage.delete({ fileId: 'uuid' })
+```
+
+Learn more about [`delete()`](/reference/javascript/storage/delete).
+
+
+
+
+```http
+DELETE https://local.storage.nhost.run/v1/files/{file_id} HTTP/1.1
+```
+
+
+
+
+## Buckets
+
+Buckets are used to organize files and group permissions for files. Buckets are stored in the `storage.buckets` table in your database, and accessible via `buckets` in your GraphQL API.
+
+For each Bucket, you can specify file permissions for the following properties:
+
+- MIME type.
+- Minimum size in bytes.
+- Maximum size in bytes.
+- Cache control.
+- Allow pre-signed URLs.
+- Download expiration (for pre-signed URLs).
+
+There is a default Bucket (`default`) that is used if no Bucket is specified during file upload. It's not possible to delete the `default` Bucket.
+
+## Permissions
+
+Permissions to upload, download, and delete files are managed through Hasura's permission system on the `storage.files` table.
+
+### Upload
+
+To upload a file, a user must have the **`insert` permission** to the `storage.files` table. The `id` column must be granted.
+
+The following columns can be used for insert permissions:
+
+- `id`
+- `bucket_id`
+- `name`
+- `size`
+- `mime_type`
+
+### Download
+
+To download a file, a user must have the **`select` permission** to the `storage.files` table. **All** columns must be granted.
+
+### Delete
+
+To delete a file, a user must have the **`delete` permission** to the `storage.files` table.
+
+Updating an existing file is not supported. If you need to update a file, delete the file and upload a new file.
+
+Just deleting the file metadata in the `storage.files` table does **not** delete the actual file. Always delete files via Nhost Storage. This way, both the file metadata and the actual file are deleted.
+
+## Image Transformation
+
+Images can be transformed, on the fly, by adding query parameters. The following query parameters are available:
+
+- `w` - Width of the image in pixels.
+- `h` - Height of the image in pixels.
+
+Image Transformation works on both public and pre-signed URLs.
+
+**Example**: Transform an image to 500px width (`?w=500`):
+
+```text
+https://[subdomain].storage.[region].nhost.run/v1/files/08e6fa32-0880-4d0e-a832-278198acb363?w=500
+```
diff --git a/docs/guides/tutorials/nextjs.mdx b/docs/guides/tutorials/nextjs.mdx
new file mode 100644
index 0000000000..7a6756588e
--- /dev/null
+++ b/docs/guides/tutorials/nextjs.mdx
@@ -0,0 +1,509 @@
+---
+title: Build a Todo Manager with Next.js
+description: Learn how to use Nhost with Next.js
+sidebarTitle: Next.js
+icon: react
+---
+
+In this tutorial, you will build a simple **Todo Manager** application with Nhost and Next.js. Along the way you will interact with the Database, Authentication, and Storage services.
+
+The Todo Manager will allow users to see public `todos` and sign in using a Magic Link to manage their own `todos` with attachments.
+
+
+
+To store todos
+
+
+
+To sign in users
+
+
+
+To store attachments
+
+
+
+
+## Setup Nhost Backend
+
+In this section, you will create and setup your first Nhost project.
+
+### Create project
+
+Create a new project in the [Nhost Dashboard](https://app.nhost.io/new).
+
+Enter the details for your project and wait a couple of minutes while Nhost provisions your backend infrastructure:
+
+- Dedicated PostgreSQL
+- Realtime APIs over your data
+- Authentication for managing your users
+- Storage for handling files
+
+### Create table `todos`
+
+On the project's dashboard, navigate to **Database** and create a new table called `todos`.
+
+![Database](/images/guides/todos-react-database.png)
+
+You can either copy and paste the following SQL into the SQL Editor, **Database -> SQL Editor**, or manually create the table by clicking on **New Table**.
+
+
+
+
+ Copy and paste the following SQL into the SQL Editor and press **Run**.
+
+ Please make sure to enable **Track this** so that the new table `todos` is available through the auto-generated APIs
+
+ ```sql SQL
+ CREATE TABLE public.todos (
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
+ created_at timestamptz DEFAULT now() NOT NULL,
+ updated_at timestamptz DEFAULT now() NOT NULL,
+ title text NOT NULL,
+ completed bool DEFAULT 'false' NOT NULL,
+ file_id uuid,
+ user_id uuid NOT NULL,
+ PRIMARY KEY (id),
+ FOREIGN KEY (file_id) REFERENCES storage.files (id) ON UPDATE SET NULL ON DELETE SET NULL,
+ FOREIGN KEY (user_id) REFERENCES auth.users (id) ON UPDATE SET NULL ON DELETE SET NULL
+ );
+ ```
+
+
+ Click on **New Table** and fill in the details for the `todos` table as shown.
+
+ ![New Table](/images/guides/todos-react-database-new-table.png)
+
+
+
+
+You should now see a new table called `todos` on the left panel, below **New Table**.
+
+### Set permissions for todos
+
+It's now time to set permission rules for the table you just created. With the table `todos` selected, click on **...**, followed by **Edit Permissions**.
+
+You will set permissions for the `user` role and actions `insert`, `select`, `update`, and `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-select.png)
+
+
+Click on the right cell for the `user` role and action `update` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-update.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-delete.png)
+
+
+
+### Set permissions for files
+
+The `files` table is managed by Nhost and is defined on the `storage` schema. Click on the dropdown right next to `schema.public` and choose `schema.storage`.
+
+With the `files` table selected, click on **...**, followed by **Edit Permissions**.
+
+As before, we want to set permissions for the `user` role and actions `insert`, `select`, `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-files-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-files-select.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-files-delete.png)
+
+
+
+### Enable Sign In with Magic Link
+
+To enable Magic Links, navigate to your project's **Settings -> Sign-In Methods**, toggle Magic Link, and save.
+
+### Recap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Setup Next.js Application
+
+Now that we have Nhost configured, let's move on to setup the React application and the Nhost client.
+
+### Create React Application
+
+Run the following command in your terminal to create a React application using Vite.
+
+```bash Terminal
+npx create-next-app@latest --no-eslint \
+ --src-dir \
+ --no-tailwind \
+ --import-alias "@/*" \
+ --js \
+ --app \
+ nhost-nextjs
+```
+
+### Install Nhost React package
+
+To install Nhost's React package, run the following command.
+
+```bash Terminal
+cd nhost-nextjs && npm install @nhost/nextjs
+```
+
+#### Configure the Nhost Client
+
+Create a new file with the following code to create a Nhost client. Replace `` and `` with the values from the project created earlier.
+
+```ts ./src/lib/nhost.ts
+import { NhostClient } from "@nhost/nextjs";
+
+export const nhost = new NhostClient({
+ subdomain: "",
+ region: ""
+});
+```
+
+The project's `subdomain` and `region` can be found in the Nhost Dashboard under **Project Info**
+
+### Setup Sign In Component
+
+It is time to setup a new React component to handle the login functionality. Users will be able to sign in using a Magic Link.
+
+Create a new file with the following content:
+
+```js ./src/app/signin.js
+"use client";
+
+import { useState } from 'react'
+import { useSignInEmailPasswordless } from '@nhost/nextjs'
+
+export default function SignIn() {
+ const [loading, setLoading] = useState(false)
+ const [email, setEmail] = useState('')
+
+ const { signInEmailPasswordless, error } = useSignInEmailPasswordless()
+
+ const handleSignIn = async (event) => {
+ event.preventDefault()
+
+ setLoading(true)
+ const { error } = await signInEmailPasswordless(email)
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ setLoading(false)
+ alert('Magic Link Sent!')
+ }
+
+ return (
+
+
Todo Manager
+
powered by Nhost and React
+
+
+ )
+}
+```
+
+### Setup `Todos` Component
+
+Now that users can sign in, let's move on and create the authenticated page that lists a user's todos and has a form for managing todos with attachments.
+
+```js ./src/app/todos.jsx
+"use client";
+
+import { useState, useEffect } from 'react'
+import { useNhostClient, useFileUpload } from '@nhost/nextjs'
+
+const deleteTodo = `
+ mutation($id: uuid!) {
+ delete_todos_by_pk(id: $id) {
+ id
+ }
+ }
+ `
+const createTodo = `
+ mutation($title: String!, $file_id: uuid) {
+ insert_todos_one(object: {title: $title, file_id: $file_id}) {
+ id
+ }
+ }
+ `
+const getTodos = `
+ query {
+ todos {
+ id
+ title
+ file_id
+ completed
+ }
+ }
+ `
+
+export default function Todos() {
+ const [loading, setLoading] = useState(true)
+ const [todos, setTodos] = useState([])
+
+ const [todoTitle, setTodoTitle] = useState('')
+ const [todoAttachment, setTodoAttachment] = useState(null)
+ const [fetchAll, setFetchAll] = useState(false)
+
+ const nhostClient = useNhostClient()
+ const { upload } = useFileUpload()
+
+ useEffect(() => {
+ async function fetchTodos() {
+ setLoading(true)
+ const { data, error } = await nhostClient.graphql.request(getTodos)
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ setTodos(data.todos)
+ setLoading(false)
+ }
+
+ fetchTodos()
+
+ return () => {
+ setFetchAll(false)
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [fetchAll])
+
+ const handleCreateTodo = async (e) => {
+ e.preventDefault()
+
+ let todo = { title: todoTitle }
+ if (todoAttachment) {
+ const { id, error } = await upload({
+ file: todoAttachment,
+ name: todoAttachment.name
+ })
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ todo.file_id = id
+ }
+
+ const { error } = await nhostClient.graphql.request(createTodo, todo)
+
+ if (error) {
+ console.error({ error })
+ }
+
+ setTodoTitle('')
+ setTodoAttachment(null)
+ setFetchAll(true)
+ }
+
+ const handleDeleteTodo = async (id) => {
+ if (!window.confirm('Are you sure you want to delete this TODO?')) {
+ return
+ }
+
+ const todo = todos.find((todo) => todo.id === id)
+ if (todo.file_id) {
+ await nhostClient.storage.delete({ fileId: todo.file_id })
+ }
+
+ const { error } = await nhostClient.graphql.request(deleteTodo, { id })
+ if (error) {
+ console.error({ error })
+ }
+
+ setFetchAll(true)
+ }
+
+ const completeTodo = async (id) => {
+ const { error } = await nhostClient.graphql.request(
+ `
+ mutation($id: uuid!) {
+ update_todos_by_pk(pk_columns: {id: $id}, _set: {completed: true}) {
+ completed
+ }
+ }
+ `,
+ { id }
+ )
+
+ if (error) {
+ console.error({ error })
+ }
+
+ setFetchAll(true)
+ }
+
+ const openAttachment = async (todo) => {
+ const { presignedUrl, error } = await nhostClient.storage.getPresignedUrl({
+ fileId: todo.file_id
+ })
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ window.open(presignedUrl.url, '_blank')
+ }
+
+ return (
+ <>
+
+
+
+ {(!loading &&
+ todos.map((todo) => (
+
+
completeTodo(todo.id)}
+ />
+ {todo.file_id && (
+
+ openAttachment(todo)}> Open Attachment
+
+ )}
+
+ {todo.completed && {todo.title} }
+ {!todo.completed && todo.title}
+
+
handleDeleteTodo(todo.id)}>
+ Delete
+
+
+ ))) || (
+
+ Loading...
+
+ )}
+
+
+
+
+ nhostClient.auth.signOut()}>
+ Sign Out
+
+
+ >
+ )
+}
+```
+
+With both `SignIn` and `Todos` in place, update `./src/App.jsx` to use the new components:
+
+```js ./src/app/App.js
+"use client";
+
+import './App.css'
+import { NhostProvider } from '@nhost/nextjs'
+import { nhost } from '../lib/nhost.js'
+import SignIn from './signin'
+import Todos from './todos'
+import { useEffect, useState } from 'react'
+
+function App() {
+ const [session, setSession] = useState(null)
+
+ useEffect(() => {
+ setSession(nhost.auth.getSession())
+
+ nhost.auth.onAuthStateChanged((_, session) => {
+ setSession(session)
+ })
+ }, [])
+
+ return (
+
+ {session ? : }
+
+ )
+}
+
+export default App
+```
+
+
+## The End
+
+Run the Todo Manager with:
+
+```bash Terminal
+npm run dev -- --port 3000
+```
+
+Open your browser on [localhost:3000](localhost:3000) to see your new application in action.
+
diff --git a/docs/guides/tutorials/react.mdx b/docs/guides/tutorials/react.mdx
new file mode 100644
index 0000000000..922b6ed346
--- /dev/null
+++ b/docs/guides/tutorials/react.mdx
@@ -0,0 +1,497 @@
+---
+title: Build a Todo Manager with React
+description: Learn how to use Nhost with React
+sidebarTitle: React
+icon: react
+---
+
+In this tutorial, you will build a simple **Todo Manager** application with Nhost and React. Along the way you will interact with the Database, Authentication, and Storage services.
+
+The Todo Manager will allow users to see public `todos` and sign in using a Magic Link to manage their own `todos` with attachments.
+
+
+
+To store todos
+
+
+
+To sign in users
+
+
+
+To store attachments
+
+
+
+
+## Setup Nhost Backend
+
+In this section, you will create and setup your first Nhost project.
+
+### Create project
+
+Create a new project in the [Nhost Dashboard](https://app.nhost.io/new).
+
+Enter the details for your project and wait a couple of minutes while Nhost provisions your backend infrastructure:
+
+- Dedicated PostgreSQL
+- Realtime APIs over your data
+- Authentication for managing your users
+- Storage for handling files
+
+### Create table `todos`
+
+On the project's dashboard, navigate to **Database** and create a new table called `todos`.
+
+![Database](/images/guides/todos-react-database.png)
+
+You can either copy and paste the following SQL into the SQL Editor, **Database -> SQL Editor**, or manually create the table by clicking on **New Table**.
+
+
+
+
+ Copy and paste the following SQL into the SQL Editor and press **Run**.
+
+ Please make sure to enable **Track this** so that the new table `todos` is available through the auto-generated APIs
+
+ ```sql SQL
+ CREATE TABLE public.todos (
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
+ created_at timestamptz DEFAULT now() NOT NULL,
+ updated_at timestamptz DEFAULT now() NOT NULL,
+ title text NOT NULL,
+ completed bool DEFAULT 'false' NOT NULL,
+ file_id uuid,
+ user_id uuid NOT NULL,
+ PRIMARY KEY (id),
+ FOREIGN KEY (file_id) REFERENCES storage.files (id) ON UPDATE SET NULL ON DELETE SET NULL,
+ FOREIGN KEY (user_id) REFERENCES auth.users (id) ON UPDATE SET NULL ON DELETE SET NULL
+ );
+ ```
+
+
+ Click on **New Table** and fill in the details for the `todos` table as shown.
+
+ ![New Table](/images/guides/todos-react-database-new-table.png)
+
+
+
+
+You should now see a new table called `todos` on the left panel, below **New Table**.
+
+### Set permissions for todos
+
+It's now time to set permission rules for the table you just created. With the table `todos` selected, click on **...**, followed by **Edit Permissions**.
+
+You will set permissions for the `user` role and actions `insert`, `select`, `update`, and `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-select.png)
+
+
+Click on the right cell for the `user` role and action `update` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-update.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-delete.png)
+
+
+
+### Set permissions for files
+
+The `files` table is managed by Nhost and is defined on the `storage` schema. Click on the dropdown right next to `schema.public` and choose `schema.storage`.
+
+With the `files` table selected, click on **...**, followed by **Edit Permissions**.
+
+As before, we want to set permissions for the `user` role and actions `insert`, `select`, `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-files-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-files-select.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-files-delete.png)
+
+
+
+### Enable Sign In with Magic Link
+
+To enable Magic Links, navigate to your project's **Settings -> Sign-In Methods**, toggle Magic Link, and save.
+
+### Recap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Setup React Application
+
+Now that we have Nhost configured, let's move on to setup the React application and the Nhost client.
+
+### Create React Application
+
+Run the following command in your terminal to create a React application using Vite.
+
+```bash Terminal
+npm create vite@latest nhost-react -- --template react
+```
+
+### Install Nhost React package
+
+To install Nhost's React package, run the following command.
+
+```bash Terminal
+cd nhost-react && npm install @nhost/react
+```
+
+#### Configure the Nhost Client
+
+Create a new file, `./src/lib/nhost.js`, with the following code to create a Nhost client. Replace `` and `` with the values from the project created earlier.
+
+```ts ./src/lib/nhost.ts
+import { NhostClient } from "@nhost/react";
+
+export const nhost = new NhostClient({
+ subdomain: "",
+ region: ""
+});
+```
+
+The project's `subdomain` and `region` can be found in the Nhost Dashboard under **Project Info**
+
+### Setup Sign In Component
+
+It is time to setup a new React component to handle the login functionality. Users will be able to sign in using a Magic Link.
+
+Create a new file `./src/signin.jsx` with the following content:
+
+```js ./src/signin.jsx
+import { useState } from 'react'
+import { useSignInEmailPasswordless } from '@nhost/react'
+
+export default function SignIn() {
+ const [loading, setLoading] = useState(false)
+ const [email, setEmail] = useState('')
+
+ const { signInEmailPasswordless, error } = useSignInEmailPasswordless()
+
+ const handleSignIn = async (event) => {
+ event.preventDefault()
+
+ setLoading(true)
+ const { error } = await signInEmailPasswordless(email)
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ setLoading(false)
+ alert('Magic Link Sent!')
+ }
+
+ return (
+
+
Todo Manager
+
powered by Nhost and React
+
+
+ )
+}
+```
+
+### Setup `Todos` Component
+
+Now that users can sign in, let's move on and create the authenticated page that lists a user's todos and has a form for managing todos with attachments.
+
+```js ./src/todos.jsx
+import { useState, useEffect } from 'react'
+import { useNhostClient, useFileUpload } from '@nhost/react'
+
+const deleteTodo = `
+ mutation($id: uuid!) {
+ delete_todos_by_pk(id: $id) {
+ id
+ }
+ }
+ `
+const createTodo = `
+ mutation($title: String!, $file_id: uuid) {
+ insert_todos_one(object: {title: $title, file_id: $file_id}) {
+ id
+ }
+ }
+ `
+const getTodos = `
+ query {
+ todos {
+ id
+ title
+ file_id
+ completed
+ }
+ }
+ `
+
+export default function Todos() {
+ const [loading, setLoading] = useState(true)
+ const [todos, setTodos] = useState([])
+
+ const [todoTitle, setTodoTitle] = useState('')
+ const [todoAttachment, setTodoAttachment] = useState(null)
+ const [fetchAll, setFetchAll] = useState(false)
+
+ const nhostClient = useNhostClient()
+ const { upload } = useFileUpload()
+
+ useEffect(() => {
+ async function fetchTodos() {
+ setLoading(true)
+ const { data, error } = await nhostClient.graphql.request(getTodos)
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ setTodos(data.todos)
+ setLoading(false)
+ }
+
+ fetchTodos()
+
+ return () => {
+ setFetchAll(false)
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [fetchAll])
+
+ const handleCreateTodo = async (e) => {
+ e.preventDefault()
+
+ let todo = { title: todoTitle }
+ if (todoAttachment) {
+ const { id, error } = await upload({
+ file: todoAttachment,
+ name: todoAttachment.name
+ })
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ todo.file_id = id
+ }
+
+ const { error } = await nhostClient.graphql.request(createTodo, todo)
+
+ if (error) {
+ console.error({ error })
+ }
+
+ setTodoTitle('')
+ setTodoAttachment(null)
+ setFetchAll(true)
+ }
+
+ const handleDeleteTodo = async (id) => {
+ if (!window.confirm('Are you sure you want to delete this TODO?')) {
+ return
+ }
+
+ const todo = todos.find((todo) => todo.id === id)
+ if (todo.file_id) {
+ await nhostClient.storage.delete({ fileId: todo.file_id })
+ }
+
+ const { error } = await nhostClient.graphql.request(deleteTodo, { id })
+ if (error) {
+ console.error({ error })
+ }
+
+ setFetchAll(true)
+ }
+
+ const completeTodo = async (id) => {
+ const { error } = await nhostClient.graphql.request(
+ `
+ mutation($id: uuid!) {
+ update_todos_by_pk(pk_columns: {id: $id}, _set: {completed: true}) {
+ completed
+ }
+ }
+ `,
+ { id }
+ )
+
+ if (error) {
+ console.error({ error })
+ }
+
+ setFetchAll(true)
+ }
+
+ const openAttachment = async (todo) => {
+ const { presignedUrl, error } = await nhostClient.storage.getPresignedUrl({
+ fileId: todo.file_id
+ })
+
+ if (error) {
+ console.error({ error })
+ return
+ }
+
+ window.open(presignedUrl.url, '_blank')
+ }
+
+ return (
+ <>
+
+
+
+ {(!loading &&
+ todos.map((todo) => (
+
+
completeTodo(todo.id)}
+ />
+ {todo.file_id && (
+
+ openAttachment(todo)}> Open Attachment
+
+ )}
+
+ {todo.completed && {todo.title} }
+ {!todo.completed && todo.title}
+
+
handleDeleteTodo(todo.id)}>
+ Delete
+
+
+ ))) || (
+
+ Loading...
+
+ )}
+
+
+
+
+ nhostClient.auth.signOut()}>
+ Sign Out
+
+
+ >
+ )
+}
+```
+
+With both `SignIn` and `Todos` in place, update `./src/App.jsx` to use the new components:
+
+```js ./src/App.jsx
+import './App.css'
+import { NhostProvider } from '@nhost/react'
+import { nhost } from './lib/nhost.js'
+import SignIn from './signin'
+import Todos from './todos'
+import { useEffect, useState } from 'react'
+
+function App() {
+ const [session, setSession] = useState(null)
+
+ useEffect(() => {
+ setSession(nhost.auth.getSession())
+
+ nhost.auth.onAuthStateChanged((_, session) => {
+ setSession(session)
+ })
+ }, [])
+
+ return (
+
+ {session ? : }
+
+ )
+}
+
+export default App
+```
+
+
+## The End
+
+Run the Todo Manager with:
+
+```bash Terminal
+npm run dev -- --open --port 3000
+```
+
+Open your browser on [localhost:3000](localhost:3000) to see your new application in action.
+
diff --git a/docs/guides/tutorials/vue.mdx b/docs/guides/tutorials/vue.mdx
new file mode 100644
index 0000000000..6bc2ddb9d0
--- /dev/null
+++ b/docs/guides/tutorials/vue.mdx
@@ -0,0 +1,504 @@
+---
+title: Build a Todo Manager with Vue
+description: Learn how to use Nhost with Vue
+sidebarTitle: Vue
+icon: vuejs
+---
+
+In this tutorial, you will build a simple **Todo Manager** with Vue and Nhost. The Todo Manager will allow users to sign in using a Magic Link and manage their own Todos with attachments.
+
+
+
+To store todos
+
+
+
+To sign in users
+
+
+
+To store attachments
+
+
+
+
+
+## Setup Nhost Backend
+
+In this section, you will create and setup your first Nhost project.
+
+### Create project
+
+Create a new project in the [Nhost Dashboard](https://app.nhost.io/new).
+
+Enter the details for your project and wait a couple of minutes while Nhost provisions your backend infrastructure:
+
+- Dedicated PostgreSQL
+- Realtime APIs over your data
+- Authentication for managing your users
+- Storage for handling files
+
+### Create table todos
+
+On the project's dashboard, navigate to **Database** and create a new table called `todos`.
+
+![Database](/images/guides/todos-database.png)
+
+You can either copy and paste the following SQL into the SQL Editor, **Database -> SQL Editor**, or manually create the table by clicking on **New Table**.
+
+
+
+ Copy and paste the following SQL into the SQL Editor and press **Run**.
+
+ Please make sure to enable **Track this** so that the new table `todos` is available through the auto-generated APIs
+
+ ```sql SQL
+ CREATE TABLE public.todos (
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
+ created_at timestamptz DEFAULT now() NOT NULL,
+ updated_at timestamptz DEFAULT now() NOT NULL,
+ title text NOT NULL,
+ completed bool DEFAULT 'false' NOT NULL,
+ file_id uuid,
+ user_id uuid NOT NULL,
+ PRIMARY KEY (id),
+ FOREIGN KEY (file_id) REFERENCES storage.files (id) ON UPDATE SET NULL ON DELETE SET NULL,
+ FOREIGN KEY (user_id) REFERENCES auth.users (id) ON UPDATE SET NULL ON DELETE SET NULL
+ );
+ ```
+
+
+ Click on **New Table** and fill in the details for the `todos` table as shown.
+
+ ![New Table](/images/guides/todos-react-database-new-table.png)
+
+
+
+
+You should now see a new table called `todos` on the left panel, above **New Table**.
+
+### Set permissions for todos
+
+It's now time to set permission rules for the table you just created. With the table `todos` selected, click on **...**, followed by **Edit Permissions**.
+
+You will set permissions for the `user` role and actions `insert`, `select`, `update`, and `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-select.png)
+
+
+Click on the right cell for the `user` role and action `update` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-update.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-delete.png)
+
+
+
+### Set permissions for files
+
+The `files` table is managed by Nhost and is defined on the `storage` schema. Click on the dropdown right next to `schema.public` and choose `schema.storage`.
+
+With the `files` table selected, click on **...**, followed by **Edit Permissions**.
+
+As before, we want to set permissions for the `user` role and actions `insert`, `select`, `delete`.
+
+
+
+Click on the right cell for the `user` role and action `insert` and set permissions as follows:
+![User Insert](/images/guides/todos-react-permissions-files-insert.png)
+
+
+Click on the right cell for the `user` role and action `select` and set permissions as follows:
+![User Select](/images/guides/todos-react-permissions-files-select.png)
+
+
+Click on the right cell for the `user` role and action `delete` and set permissions as follows:
+![User Delete](/images/guides/todos-react-permissions-files-delete.png)
+
+
+
+### Enable Sign In with Magic Link
+
+To enable Magic Links, navigate to your project's **Settings -> Sign-In Methods**, toggle Magic Link, and save.
+
+### Recap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Setup Vue Application
+
+Now that we have Nhost configured, let's move on to setup the Vue application and the Nhost client.
+
+### Create Vue Application
+
+Run the following command in your terminal to create a Vue application using Vite.
+
+```bash Terminal
+npm create vue@latest nhost-vue
+```
+
+### Install Nhost Vue package
+
+To install Nhost's Vue package, run the following command.
+
+```bash Terminal
+cd nhost-vue && npm install @nhost/vue
+```
+
+#### Configure the Nhost Client
+
+Create a new file `./src/lib/nhost.js` with the following code to create a Nhost client. Replace `` and `` with the values for the project you created earlier.
+
+```js ./src/lib/nhost.js
+import { NhostClient } from "@nhost/vue";
+
+export const nhost = new NhostClient({
+ subdomain: "",
+ region: ""
+});
+```
+
+The project's `subdomain` and `region` can be found in the Nhost Dashboard under **Project Info**
+
+### Setup Sign In Component
+
+It is time to setup a new React component to handle the login functionality. Your users will be able to sign in using a Magic Link and without a password.
+
+Create a new file `./src/SignIn.vue` for the Sign In component with the following content:
+
+```js ./src/SignIn.vue
+
+
+
Todo Manager
+
powered by Nhost and Vue
+
+
+
+
+
+```
+
+### Setup Todos Component
+
+Now that users can sign in, go ahead and create the authenticated page that lists a user's todos and has a form for managing todos with attachments.
+
+```js ./src/Todos.vue
+
+
+
+
+
+```
+
+With both `SignIn` and `Todos` in place, update `./src/App.vue` to use the new components:
+
+```js ./src/App.vue
+
+
+
+
+
+
+```
+
+The last step missing is to install `nhost` as a plugin:
+
+```js ./src/main.js
+import "./assets/main.css";
+import { nhost } from "./lib/nhost";
+
+import { createApp } from "vue";
+import App from "./App.vue";
+
+createApp(App).use(nhost).mount("#app");
+```
+
+## The End
+
+Run the Todo Manager with:
+
+```bash Terminal
+npm run dev -- --open --port 3000
+```
+
+Open your browser on [localhost:3000](localhost:3000) to see your new application in action.
+
diff --git a/docs/images/checks-passed.png b/docs/images/checks-passed.png
new file mode 100644
index 0000000000..3303c77364
Binary files /dev/null and b/docs/images/checks-passed.png differ
diff --git a/docs/images/guides/ai/assistants/GetMoviesWithScoreHigherThan.png b/docs/images/guides/ai/assistants/GetMoviesWithScoreHigherThan.png
new file mode 100644
index 0000000000..4c4aca4990
Binary files /dev/null and b/docs/images/guides/ai/assistants/GetMoviesWithScoreHigherThan.png differ
diff --git a/docs/images/guides/ai/assistants/answer_deep_questions.png b/docs/images/guides/ai/assistants/answer_deep_questions.png
new file mode 100644
index 0000000000..08a7d1b303
Binary files /dev/null and b/docs/images/guides/ai/assistants/answer_deep_questions.png differ
diff --git a/docs/images/guides/ai/assistants/dashboard.png b/docs/images/guides/ai/assistants/dashboard.png
new file mode 100644
index 0000000000..0a63398b88
Binary files /dev/null and b/docs/images/guides/ai/assistants/dashboard.png differ
diff --git a/docs/images/guides/ai/assistants/diagrams.txt b/docs/images/guides/ai/assistants/diagrams.txt
new file mode 100644
index 0000000000..3904195677
--- /dev/null
+++ b/docs/images/guides/ai/assistants/diagrams.txt
@@ -0,0 +1,20 @@
+sequenceDiagram
+ user->>+graphite: What is the meaning of life?
+ graphite->>+chatgpt: What is the meaning of life?
+ chatgpt->>-graphite: run `answer_deep_questions` with {"question": "what is the meaning of life?"}?
+ graphite->>+webhook: POST https://local.functions.nhost.fun/v1/meaning {"question": "what is the meaning of life?"}
+ webhook->>-graphite: HTTP STATUS OK, Response body: 42
+ graphite->>+chatgpt: 42
+ chatgpt->>-graphite: The answer to the meaning of life is 42...
+ graphite->>-user: The answer to the meaning of life is 42...
+
+
+sequenceDiagram
+ user->>+graphite: recommend a comedy movie...
+ graphite->>+chatgpt: recommend a comedy movie...
+ chatgpt->>-graphite: run `GetMoviesWithScoreHigherThan` with {"score": 80}
+ graphite->>+graphql: POST https://local.graphql.nhost.fun/v1 query ($score: numeric!) { movies(where: ...
+ graphql->>-graphite: { graphql response with movies }
+ graphite->>+chatgpt: { graphql response with movies }
+ chatgpt->>-graphite: Here are a few comedy...
+ graphite->>-user: Here are a few comedy...
diff --git a/docs/images/guides/ai/auto-embeddings/auto-embedding.png b/docs/images/guides/ai/auto-embeddings/auto-embedding.png
new file mode 100644
index 0000000000..516525b807
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/auto-embedding.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/column.png b/docs/images/guides/ai/auto-embeddings/column.png
new file mode 100644
index 0000000000..5bf39fc4b7
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/column.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/count_0.png b/docs/images/guides/ai/auto-embeddings/count_0.png
new file mode 100644
index 0000000000..807fd78575
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/count_0.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/count_non_zero.png b/docs/images/guides/ai/auto-embeddings/count_non_zero.png
new file mode 100644
index 0000000000..3f12da96eb
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/count_non_zero.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/logs.png b/docs/images/guides/ai/auto-embeddings/logs.png
new file mode 100644
index 0000000000..b1001ef4a3
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/logs.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/outdated.png b/docs/images/guides/ai/auto-embeddings/outdated.png
new file mode 100644
index 0000000000..7acec9252d
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/outdated.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/search.png b/docs/images/guides/ai/auto-embeddings/search.png
new file mode 100644
index 0000000000..7f6e29d26a
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/search.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/similar.png b/docs/images/guides/ai/auto-embeddings/similar.png
new file mode 100644
index 0000000000..953a90b677
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/similar.png differ
diff --git a/docs/images/guides/ai/auto-embeddings/table.png b/docs/images/guides/ai/auto-embeddings/table.png
new file mode 100644
index 0000000000..24c885ad1d
Binary files /dev/null and b/docs/images/guides/ai/auto-embeddings/table.png differ
diff --git a/docs/images/guides/ai/dev-assistants/chat.png b/docs/images/guides/ai/dev-assistants/chat.png
new file mode 100644
index 0000000000..b037072e31
Binary files /dev/null and b/docs/images/guides/ai/dev-assistants/chat.png differ
diff --git a/docs/images/guides/ai/dev-assistants/dashboard.png b/docs/images/guides/ai/dev-assistants/dashboard.png
new file mode 100644
index 0000000000..1cd0e0d701
Binary files /dev/null and b/docs/images/guides/ai/dev-assistants/dashboard.png differ
diff --git a/docs/images/guides/ai/enabling/database.png b/docs/images/guides/ai/enabling/database.png
new file mode 100644
index 0000000000..d45b629cf9
Binary files /dev/null and b/docs/images/guides/ai/enabling/database.png differ
diff --git a/docs/images/guides/ai/enabling/openai.png b/docs/images/guides/ai/enabling/openai.png
new file mode 100644
index 0000000000..0e4c739778
Binary files /dev/null and b/docs/images/guides/ai/enabling/openai.png differ
diff --git a/docs/images/guides/ai/enabling/settings.png b/docs/images/guides/ai/enabling/settings.png
new file mode 100644
index 0000000000..978620b836
Binary files /dev/null and b/docs/images/guides/ai/enabling/settings.png differ
diff --git a/docs/images/guides/auth/apple-signin.svg b/docs/images/guides/auth/apple-signin.svg
new file mode 100644
index 0000000000..8400d1624b
--- /dev/null
+++ b/docs/images/guides/auth/apple-signin.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/discord-signin.svg b/docs/images/guides/auth/discord-signin.svg
new file mode 100644
index 0000000000..aecec2f2a9
--- /dev/null
+++ b/docs/images/guides/auth/discord-signin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/guides/auth/facebook-signin.svg b/docs/images/guides/auth/facebook-signin.svg
new file mode 100644
index 0000000000..c8a2c16b45
--- /dev/null
+++ b/docs/images/guides/auth/facebook-signin.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/github-signin.svg b/docs/images/guides/auth/github-signin.svg
new file mode 100644
index 0000000000..851f771310
--- /dev/null
+++ b/docs/images/guides/auth/github-signin.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/google-signin.svg b/docs/images/guides/auth/google-signin.svg
new file mode 100644
index 0000000000..3541802652
--- /dev/null
+++ b/docs/images/guides/auth/google-signin.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/linkedin-signin.svg b/docs/images/guides/auth/linkedin-signin.svg
new file mode 100644
index 0000000000..6fd8cc2840
--- /dev/null
+++ b/docs/images/guides/auth/linkedin-signin.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/spotify-signin.svg b/docs/images/guides/auth/spotify-signin.svg
new file mode 100644
index 0000000000..c0637ccfa9
--- /dev/null
+++ b/docs/images/guides/auth/spotify-signin.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/auth/twitch-signin.svg b/docs/images/guides/auth/twitch-signin.svg
new file mode 100644
index 0000000000..b1e9ebe10b
--- /dev/null
+++ b/docs/images/guides/auth/twitch-signin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/guides/auth/workos-signin.svg b/docs/images/guides/auth/workos-signin.svg
new file mode 100644
index 0000000000..d9c7d55980
--- /dev/null
+++ b/docs/images/guides/auth/workos-signin.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/guides/cli/1.png b/docs/images/guides/cli/1.png
new file mode 100644
index 0000000000..e37fbda2c0
Binary files /dev/null and b/docs/images/guides/cli/1.png differ
diff --git a/docs/images/guides/cli/2.png b/docs/images/guides/cli/2.png
new file mode 100644
index 0000000000..81169e971f
Binary files /dev/null and b/docs/images/guides/cli/2.png differ
diff --git a/docs/images/guides/cli/3.png b/docs/images/guides/cli/3.png
new file mode 100644
index 0000000000..dc4585df69
Binary files /dev/null and b/docs/images/guides/cli/3.png differ
diff --git a/docs/images/guides/cli/4.png b/docs/images/guides/cli/4.png
new file mode 100644
index 0000000000..6c56051fee
Binary files /dev/null and b/docs/images/guides/cli/4.png differ
diff --git a/docs/images/guides/cli/5.png b/docs/images/guides/cli/5.png
new file mode 100644
index 0000000000..9831e6852a
Binary files /dev/null and b/docs/images/guides/cli/5.png differ
diff --git a/docs/images/guides/cli/6.png b/docs/images/guides/cli/6.png
new file mode 100644
index 0000000000..0211b3bcf1
Binary files /dev/null and b/docs/images/guides/cli/6.png differ
diff --git a/docs/images/guides/cli/create-table-messages.png b/docs/images/guides/cli/create-table-messages.png
new file mode 100644
index 0000000000..0c0f4c4e58
Binary files /dev/null and b/docs/images/guides/cli/create-table-messages.png differ
diff --git a/docs/images/guides/cli/deployments.png b/docs/images/guides/cli/deployments.png
new file mode 100644
index 0000000000..5a832a99c0
Binary files /dev/null and b/docs/images/guides/cli/deployments.png differ
diff --git a/docs/images/guides/cli/insert-permissions.png b/docs/images/guides/cli/insert-permissions.png
new file mode 100644
index 0000000000..5b9c1ff79e
Binary files /dev/null and b/docs/images/guides/cli/insert-permissions.png differ
diff --git a/docs/images/guides/cli/matrix-permissions.png b/docs/images/guides/cli/matrix-permissions.png
new file mode 100644
index 0000000000..9929cf8b03
Binary files /dev/null and b/docs/images/guides/cli/matrix-permissions.png differ
diff --git a/docs/images/guides/database/pghero_01.png b/docs/images/guides/database/pghero_01.png
new file mode 100644
index 0000000000..1ed62e29cd
Binary files /dev/null and b/docs/images/guides/database/pghero_01.png differ
diff --git a/docs/images/guides/database/pghero_02.png b/docs/images/guides/database/pghero_02.png
new file mode 100644
index 0000000000..153967e64e
Binary files /dev/null and b/docs/images/guides/database/pghero_02.png differ
diff --git a/docs/images/guides/database/pghero_03.png b/docs/images/guides/database/pghero_03.png
new file mode 100644
index 0000000000..a908b32414
Binary files /dev/null and b/docs/images/guides/database/pghero_03.png differ
diff --git a/docs/images/guides/database/pghero_04.png b/docs/images/guides/database/pghero_04.png
new file mode 100644
index 0000000000..73aa9bbea3
Binary files /dev/null and b/docs/images/guides/database/pghero_04.png differ
diff --git a/docs/images/guides/graphql/dashboard-permissions-select.png b/docs/images/guides/graphql/dashboard-permissions-select.png
new file mode 100644
index 0000000000..be042a6889
Binary files /dev/null and b/docs/images/guides/graphql/dashboard-permissions-select.png differ
diff --git a/docs/images/guides/graphql/dashboard-permissions.png b/docs/images/guides/graphql/dashboard-permissions.png
new file mode 100644
index 0000000000..8705f2e68e
Binary files /dev/null and b/docs/images/guides/graphql/dashboard-permissions.png differ
diff --git a/docs/images/guides/quickstarts/react/permissions.png b/docs/images/guides/quickstarts/react/permissions.png
new file mode 100644
index 0000000000..9abd2afeea
Binary files /dev/null and b/docs/images/guides/quickstarts/react/permissions.png differ
diff --git a/docs/images/guides/quickstarts/react/sql-editor.png b/docs/images/guides/quickstarts/react/sql-editor.png
new file mode 100644
index 0000000000..2190d2fe64
Binary files /dev/null and b/docs/images/guides/quickstarts/react/sql-editor.png differ
diff --git a/docs/images/guides/run/configuration.png b/docs/images/guides/run/configuration.png
new file mode 100644
index 0000000000..7314cb285c
Binary files /dev/null and b/docs/images/guides/run/configuration.png differ
diff --git a/docs/images/guides/run/configure-http-port.png b/docs/images/guides/run/configure-http-port.png
new file mode 100644
index 0000000000..90849f2381
Binary files /dev/null and b/docs/images/guides/run/configure-http-port.png differ
diff --git a/docs/images/guides/run/configure-multiple-ports.png b/docs/images/guides/run/configure-multiple-ports.png
new file mode 100644
index 0000000000..951d91ab09
Binary files /dev/null and b/docs/images/guides/run/configure-multiple-ports.png differ
diff --git a/docs/images/guides/run/configure-port.png b/docs/images/guides/run/configure-port.png
new file mode 100644
index 0000000000..126438858b
Binary files /dev/null and b/docs/images/guides/run/configure-port.png differ
diff --git a/docs/images/guides/run/getting_started_1.png b/docs/images/guides/run/getting_started_1.png
new file mode 100644
index 0000000000..56688d1d8d
Binary files /dev/null and b/docs/images/guides/run/getting_started_1.png differ
diff --git a/docs/images/guides/run/getting_started_2.png b/docs/images/guides/run/getting_started_2.png
new file mode 100644
index 0000000000..a8c3345d7f
Binary files /dev/null and b/docs/images/guides/run/getting_started_2.png differ
diff --git a/docs/images/guides/run/getting_started_3.png b/docs/images/guides/run/getting_started_3.png
new file mode 100644
index 0000000000..69ed6043a5
Binary files /dev/null and b/docs/images/guides/run/getting_started_3.png differ
diff --git a/docs/images/guides/run/getting_started_4.png b/docs/images/guides/run/getting_started_4.png
new file mode 100644
index 0000000000..bdcc57cfa3
Binary files /dev/null and b/docs/images/guides/run/getting_started_4.png differ
diff --git a/docs/images/guides/run/getting_started_5.png b/docs/images/guides/run/getting_started_5.png
new file mode 100644
index 0000000000..fdce920d30
Binary files /dev/null and b/docs/images/guides/run/getting_started_5.png differ
diff --git a/docs/images/guides/run/getting_started_6.png b/docs/images/guides/run/getting_started_6.png
new file mode 100644
index 0000000000..a9e4db48ba
Binary files /dev/null and b/docs/images/guides/run/getting_started_6.png differ
diff --git a/docs/images/guides/run/getting_started_7.png b/docs/images/guides/run/getting_started_7.png
new file mode 100644
index 0000000000..12864f62b7
Binary files /dev/null and b/docs/images/guides/run/getting_started_7.png differ
diff --git a/docs/images/guides/run/overview.png b/docs/images/guides/run/overview.png
new file mode 100644
index 0000000000..f0b3c99854
Binary files /dev/null and b/docs/images/guides/run/overview.png differ
diff --git a/docs/images/guides/run/registry_1.png b/docs/images/guides/run/registry_1.png
new file mode 100644
index 0000000000..6bb5a16d42
Binary files /dev/null and b/docs/images/guides/run/registry_1.png differ
diff --git a/docs/images/guides/run/registry_2.png b/docs/images/guides/run/registry_2.png
new file mode 100644
index 0000000000..eeed4ba561
Binary files /dev/null and b/docs/images/guides/run/registry_2.png differ
diff --git a/docs/images/guides/run/registry_3.png b/docs/images/guides/run/registry_3.png
new file mode 100644
index 0000000000..bf1fc0b684
Binary files /dev/null and b/docs/images/guides/run/registry_3.png differ
diff --git a/docs/images/guides/run/registry_4.png b/docs/images/guides/run/registry_4.png
new file mode 100644
index 0000000000..b9f6aaa773
Binary files /dev/null and b/docs/images/guides/run/registry_4.png differ
diff --git a/docs/images/guides/run/registry_5.png b/docs/images/guides/run/registry_5.png
new file mode 100644
index 0000000000..2cc9443bbc
Binary files /dev/null and b/docs/images/guides/run/registry_5.png differ
diff --git a/docs/images/guides/run/registry_6.png b/docs/images/guides/run/registry_6.png
new file mode 100644
index 0000000000..69cdb9b7ff
Binary files /dev/null and b/docs/images/guides/run/registry_6.png differ
diff --git a/docs/images/guides/run/registry_7.png b/docs/images/guides/run/registry_7.png
new file mode 100644
index 0000000000..8c4311e3b0
Binary files /dev/null and b/docs/images/guides/run/registry_7.png differ
diff --git a/docs/images/guides/run/resources_1.png b/docs/images/guides/run/resources_1.png
new file mode 100644
index 0000000000..15c5af6b68
Binary files /dev/null and b/docs/images/guides/run/resources_1.png differ
diff --git a/docs/images/guides/run/resources_2.png b/docs/images/guides/run/resources_2.png
new file mode 100644
index 0000000000..f3d80f54d0
Binary files /dev/null and b/docs/images/guides/run/resources_2.png differ
diff --git a/docs/images/guides/run/resources_3.png b/docs/images/guides/run/resources_3.png
new file mode 100644
index 0000000000..5584e8c3d3
Binary files /dev/null and b/docs/images/guides/run/resources_3.png differ
diff --git a/docs/images/guides/storage/av_01.png b/docs/images/guides/storage/av_01.png
new file mode 100644
index 0000000000..9a540ce471
Binary files /dev/null and b/docs/images/guides/storage/av_01.png differ
diff --git a/docs/images/guides/storage/av_02.png b/docs/images/guides/storage/av_02.png
new file mode 100644
index 0000000000..96a0213e34
Binary files /dev/null and b/docs/images/guides/storage/av_02.png differ
diff --git a/docs/images/guides/storage/av_03.png b/docs/images/guides/storage/av_03.png
new file mode 100644
index 0000000000..68923a7c39
Binary files /dev/null and b/docs/images/guides/storage/av_03.png differ
diff --git a/docs/images/guides/storage/av_04.png b/docs/images/guides/storage/av_04.png
new file mode 100644
index 0000000000..a0b90ffbcf
Binary files /dev/null and b/docs/images/guides/storage/av_04.png differ
diff --git a/docs/images/guides/storage/av_05.png b/docs/images/guides/storage/av_05.png
new file mode 100644
index 0000000000..079d118f87
Binary files /dev/null and b/docs/images/guides/storage/av_05.png differ
diff --git a/docs/images/guides/storage/av_06.png b/docs/images/guides/storage/av_06.png
new file mode 100644
index 0000000000..cf24b5f12d
Binary files /dev/null and b/docs/images/guides/storage/av_06.png differ
diff --git a/docs/images/guides/storage/sequence.mermaid b/docs/images/guides/storage/sequence.mermaid
new file mode 100644
index 0000000000..30fc00df48
--- /dev/null
+++ b/docs/images/guides/storage/sequence.mermaid
@@ -0,0 +1,11 @@
+sequenceDiagram
+ actor User
+ User ->> storage: upload file
+ storage ->>clamav: check for virus
+ alt virus found
+ storage-->s3: abort upload
+ storage->>graphql: insert row in virus table
+ else virus not found
+ storage->>s3: upload
+ storage->>graphql: update metadata
+ end
diff --git a/docs/images/guides/storage/sequence.png b/docs/images/guides/storage/sequence.png
new file mode 100644
index 0000000000..efa4218b15
Binary files /dev/null and b/docs/images/guides/storage/sequence.png differ
diff --git a/docs/images/guides/todos-react-database-new-table.png b/docs/images/guides/todos-react-database-new-table.png
new file mode 100644
index 0000000000..8f7ef38332
Binary files /dev/null and b/docs/images/guides/todos-react-database-new-table.png differ
diff --git a/docs/images/guides/todos-react-database.png b/docs/images/guides/todos-react-database.png
new file mode 100644
index 0000000000..6456deb6e9
Binary files /dev/null and b/docs/images/guides/todos-react-database.png differ
diff --git a/docs/images/guides/todos-react-permissions-delete.png b/docs/images/guides/todos-react-permissions-delete.png
new file mode 100644
index 0000000000..f4311c7460
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-delete.png differ
diff --git a/docs/images/guides/todos-react-permissions-files-delete.png b/docs/images/guides/todos-react-permissions-files-delete.png
new file mode 100644
index 0000000000..4e577a42f7
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-files-delete.png differ
diff --git a/docs/images/guides/todos-react-permissions-files-insert.png b/docs/images/guides/todos-react-permissions-files-insert.png
new file mode 100644
index 0000000000..a8d6fec013
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-files-insert.png differ
diff --git a/docs/images/guides/todos-react-permissions-files-select.png b/docs/images/guides/todos-react-permissions-files-select.png
new file mode 100644
index 0000000000..df26e2cf6a
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-files-select.png differ
diff --git a/docs/images/guides/todos-react-permissions-insert.png b/docs/images/guides/todos-react-permissions-insert.png
new file mode 100644
index 0000000000..447ad6a906
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-insert.png differ
diff --git a/docs/images/guides/todos-react-permissions-select.png b/docs/images/guides/todos-react-permissions-select.png
new file mode 100644
index 0000000000..26fe8f482b
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-select.png differ
diff --git a/docs/images/guides/todos-react-permissions-update.png b/docs/images/guides/todos-react-permissions-update.png
new file mode 100644
index 0000000000..26dcc0153d
Binary files /dev/null and b/docs/images/guides/todos-react-permissions-update.png differ
diff --git a/docs/images/guides/todos-react-project-dashboard.png b/docs/images/guides/todos-react-project-dashboard.png
new file mode 100644
index 0000000000..2cfb3f3d8b
Binary files /dev/null and b/docs/images/guides/todos-react-project-dashboard.png differ
diff --git a/docs/images/hero-dark.svg b/docs/images/hero-dark.svg
new file mode 100644
index 0000000000..c6a30e88ba
--- /dev/null
+++ b/docs/images/hero-dark.svg
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/hero-light.svg b/docs/images/hero-light.svg
new file mode 100644
index 0000000000..297d68fb9b
--- /dev/null
+++ b/docs/images/hero-light.svg
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/introduction-dark.svg b/docs/images/introduction-dark.svg
new file mode 100644
index 0000000000..0b4a9588fb
--- /dev/null
+++ b/docs/images/introduction-dark.svg
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/introduction-light.svg b/docs/images/introduction-light.svg
new file mode 100644
index 0000000000..1d9ad49f5c
--- /dev/null
+++ b/docs/images/introduction-light.svg
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/platform/compute-resources/dashboard.png b/docs/images/platform/compute-resources/dashboard.png
new file mode 100644
index 0000000000..0050999c6d
Binary files /dev/null and b/docs/images/platform/compute-resources/dashboard.png differ
diff --git a/docs/images/platform/custom-domains/custom-domains.png b/docs/images/platform/custom-domains/custom-domains.png
new file mode 100644
index 0000000000..517be8ab55
Binary files /dev/null and b/docs/images/platform/custom-domains/custom-domains.png differ
diff --git a/docs/images/platform/environment-variables/environment-variables.png b/docs/images/platform/environment-variables/environment-variables.png
new file mode 100644
index 0000000000..66ed119e2c
Binary files /dev/null and b/docs/images/platform/environment-variables/environment-variables.png differ
diff --git a/docs/images/platform/metrics/grafana.png b/docs/images/platform/metrics/grafana.png
new file mode 100644
index 0000000000..18749aaa02
Binary files /dev/null and b/docs/images/platform/metrics/grafana.png differ
diff --git a/docs/images/platform/metrics/nhost-dashboard-metrics.png b/docs/images/platform/metrics/nhost-dashboard-metrics.png
new file mode 100644
index 0000000000..13bec97605
Binary files /dev/null and b/docs/images/platform/metrics/nhost-dashboard-metrics.png differ
diff --git a/docs/images/platform/secrets/secrets.png b/docs/images/platform/secrets/secrets.png
new file mode 100644
index 0000000000..9a9687a981
Binary files /dev/null and b/docs/images/platform/secrets/secrets.png differ
diff --git a/docs/images/platform/service-replicas/replicas-diagram.png b/docs/images/platform/service-replicas/replicas-diagram.png
new file mode 100644
index 0000000000..e9c3afd2d8
Binary files /dev/null and b/docs/images/platform/service-replicas/replicas-diagram.png differ
diff --git a/docs/images/product/ai/assistant-insert.png b/docs/images/product/ai/assistant-insert.png
new file mode 100644
index 0000000000..600c8d578c
Binary files /dev/null and b/docs/images/product/ai/assistant-insert.png differ
diff --git a/docs/images/product/ai/assistant-thread.png b/docs/images/product/ai/assistant-thread.png
new file mode 100644
index 0000000000..8d96fe830d
Binary files /dev/null and b/docs/images/product/ai/assistant-thread.png differ
diff --git a/docs/images/product/ai/auto-embeddings-search.png b/docs/images/product/ai/auto-embeddings-search.png
new file mode 100644
index 0000000000..9c2305ec4b
Binary files /dev/null and b/docs/images/product/ai/auto-embeddings-search.png differ
diff --git a/docs/images/product/ai/auto-embeddings-similar.png b/docs/images/product/ai/auto-embeddings-similar.png
new file mode 100644
index 0000000000..afabb67dd9
Binary files /dev/null and b/docs/images/product/ai/auto-embeddings-similar.png differ
diff --git a/docs/images/product/database/dashboard-database.png b/docs/images/product/database/dashboard-database.png
new file mode 100644
index 0000000000..a4bf882242
Binary files /dev/null and b/docs/images/product/database/dashboard-database.png differ
diff --git a/docs/images/product/run/overview.png b/docs/images/product/run/overview.png
new file mode 100644
index 0000000000..f0b3c99854
Binary files /dev/null and b/docs/images/product/run/overview.png differ
diff --git a/docs/images/quickstarts/project-info-dashboard.png b/docs/images/quickstarts/project-info-dashboard.png
new file mode 100644
index 0000000000..5d10e70cde
Binary files /dev/null and b/docs/images/quickstarts/project-info-dashboard.png differ
diff --git a/docs/introduction.mdx b/docs/introduction.mdx
new file mode 100644
index 0000000000..1101313b9b
--- /dev/null
+++ b/docs/introduction.mdx
@@ -0,0 +1,85 @@
+---
+title: Getting Started
+description: 'Learn Nhost through guides and tutorials.'
+icon: hand-wave
+---
+
+
+
+
+## Quick Start Guides
+
+Follow our quick start guides for learning how to quickly setup Nhost with your framework of choice, in just a few easy steps.
+
+
+
+ Learn how to connect Nhost with React
+
+
+ Learn how to connect Nhost with Vue
+
+
+ Learn how to connect Nhost with Next.js
+
+
+ Learn how to connect Nhost with RedwoodJS
+
+
+
+
+## Guides and Tutorials
+
+Guides and Tutorials walk you through most of Nhost's feature set. You will build an example application using Nhost and your framework of choice.
+
+
+
+ Todo Manager with Nhost and React
+
+
+ Todo Manager with Nhost and Vue
+
+
+ Todo Manager with Nhost and NextJS
+
+
+ Todo Manager with Nhost and RedwoodJS
+
+
+
diff --git a/docs/logo/dark.svg b/docs/logo/dark.svg
new file mode 100644
index 0000000000..d4ea607d49
--- /dev/null
+++ b/docs/logo/dark.svg
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/logo/light.svg b/docs/logo/light.svg
new file mode 100644
index 0000000000..d928568851
--- /dev/null
+++ b/docs/logo/light.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/mint.json b/docs/mint.json
new file mode 100644
index 0000000000..08fcc180c8
--- /dev/null
+++ b/docs/mint.json
@@ -0,0 +1,476 @@
+{
+ "$schema": "https://mintlify.com/schema.json",
+ "name": "Documentation",
+ "openapi": ["reference/openapi-auth.yaml", "reference/openapi-storage.yaml"],
+ "logo": {
+ "dark": "/logo/dark.svg",
+ "light": "/logo/light.svg"
+ },
+ "favicon": "/favicon.svg",
+ "colors": {
+ "primary": "#3787ff",
+ "light": "#569aff",
+ "dark": "#1874ff",
+ "anchors": {
+ "from": "#1874ff",
+ "to": "#569aff"
+ }
+ },
+ "topbarLinks": [
+ {
+ "name": "Support",
+ "url": "mailto:support@nhost.io"
+ }
+ ],
+ "topbarCtaButton": {
+ "name": "Dashboard",
+ "url": "https://app.nhost.io"
+ },
+ "tabs": [
+ {
+ "name": "Reference",
+ "url": "reference"
+ },
+ {
+ "name": "Guides",
+ "url": "guides"
+ }
+ ],
+ "anchors": [
+ {
+ "name": "Documentation",
+ "icon": "book-open-cover",
+ "url": "introduction"
+ },
+ {
+ "name": "Community",
+ "icon": "discord",
+ "url": "https://discord.com/nhost"
+ },
+ {
+ "name": "Blog",
+ "icon": "newspaper",
+ "url": "https://nhost.io/blog"
+ }
+ ],
+ "navigation": [
+ {
+ "group": "Overview",
+ "pages": ["introduction"]
+ },
+ {
+ "group": "Product",
+ "pages": ["product/database", "product/graphql", "product/authentication", "product/storage", "product/functions", "product/run", "product/ai"]
+ },
+ {
+ "group": "Platform",
+ "pages": [
+ "platform/compute-resources",
+ "platform/service-replicas",
+ {
+ "group": "Monitoring",
+ "icon": "monitor-waveform",
+ "pages": ["platform/metrics"]
+ },
+ "platform/environment-variables",
+ "platform/secrets",
+ "platform/deployments",
+ "platform/custom-domains"
+ ]
+ },
+ {
+ "group": "Development & CLI",
+ "pages": ["development/cli/overview", "development/cli/getting-started", "development/cli/commands"]
+ },
+ {
+ "group": "API Documentation",
+ "pages": ["reference/overview"]
+ },
+ {
+ "group": "Quickstarts",
+ "pages": ["guides/quickstarts/react", "guides/quickstarts/nextjs", "guides/quickstarts/vue"]
+ },
+ {
+ "group": "Tutorials",
+ "pages": ["guides/tutorials/react", "guides/tutorials/nextjs", "guides/tutorials/vue"]
+ },
+ {
+ "group": "Database",
+ "pages": ["guides/database/configuring-postgres", "guides/database/extensions", "guides/database/performance"]
+ },
+ {
+ "group": "AI",
+ "pages": [
+ "guides/ai/enabling-service",
+ "guides/ai/auto-embeddings",
+ "guides/ai/assistants",
+ "guides/ai/dev-assistant"
+ ]
+ },
+ {
+ "group": "Authentication",
+ "pages": [
+ {
+ "group": "Social Sign In",
+ "icon": "at",
+ "pages": [
+ "guides/auth/social/sign-in-apple",
+ "guides/auth/social/sign-in-discord",
+ "guides/auth/social/sign-in-facebook",
+ "guides/auth/social/sign-in-github",
+ "guides/auth/social/sign-in-google",
+ "guides/auth/social/sign-in-linkedin",
+ "guides/auth/social/sign-in-spotify",
+ "guides/auth/social/sign-in-twitch",
+ "guides/auth/social/sign-in-workos"
+ ]
+ },
+ "guides/auth/sign-in-email-password",
+ "guides/auth/sign-in-magic-link",
+ "guides/auth/sign-in-phone-number",
+ "guides/auth/sign-in-webauthn",
+ "guides/auth/email-templates"
+ ]
+ },
+ {
+ "group": "API / Hasura",
+ "pages": ["guides/api/configuring-hasura", "guides/api/permissions"]
+ },
+ {
+ "group": "Storage",
+ "pages": ["guides/storage/overview", "guides/storage/antivirus"]
+ },
+ {
+ "group": "Functions",
+ "pages": ["guides/functions/overview"]
+ },
+ {
+ "group": "Run",
+ "pages": ["guides/run/getting-started", "guides/run/configuration", "guides/run/networking", "guides/run/health-checks", "guides/run/resources", "guides/run/registry", "guides/run/cli-deployments"]
+ },
+ {
+ "group": "CLI",
+ "pages": ["guides/cli/local-development", "guides/cli/migrate-config", "guides/cli/multiple-projects", "guides/cli/configuration-overlays", "guides/cli/seeds"]
+ },
+ {
+ "group": "Backend Services",
+ "pages": [
+
+ {
+ "group": "Authentication",
+ "icon": "users",
+ "pages": [
+ {
+ "group": "Email and Password",
+ "icon": "envelope",
+ "pages": [
+ "reference/auth/sign-up-email-and-password",
+ "reference/auth/sign-in-email-and-password"
+ ]
+ },
+ {
+ "group": "Passwordless",
+ "icon": "message-sms",
+ "pages": [
+ "reference/auth/sign-in-email-passwordless",
+ "reference/auth/sign-in-sms-passwordless",
+ "reference/auth/sign-in-sms-passwordless-otp"
+ ]
+ },
+ {
+ "group": "OAuth",
+ "icon": "at",
+ "pages": [
+ "reference/auth/sign-in-oauth-provider",
+ "reference/auth/oauth-callback-url-that-will-be-used-by-the-oauth-provider-to-redirect-to-the-client-application-attention:-all-providers-are-using-a-get-operation-except-apple-and-azure-ad-that-use-post"
+ ]
+ },
+ {
+ "group": "WebAuthn",
+ "icon": "atom",
+ "pages": [
+ "reference/auth/sign-up-using-email-via-fido2-webauthn-authentication",
+ "reference/auth/verfiy-fido2-webauthn-authentication-and-complete-signup",
+ "reference/auth/sign-in-using-email-via-fido2-webauthn-authentication",
+ "reference/auth/verfiy-fido2-webauthn-authentication-using-public-key-cryptography"
+ ]
+ },
+ {
+ "group": "Anonymous",
+ "icon": "luchador-mask",
+ "pages": [
+ "reference/auth/sign-in-anonymous",
+ "reference/auth/deanonymize-an-anonymous-user-in-adding-missing-email-or-email+password-depending-on-the-chosen-authentication-method-will-send-a-confirmation-email-if-the-server-is-configured-to-do-so"
+ ]
+ },
+ {
+ "group": "MFA",
+ "icon": "message-sms",
+ "pages": [
+ "reference/auth/generate-a-secret-to-request-the-activation-of-time-based-one-time-password-totp-multi-factor-authentication",
+ "reference/auth/sign-in-totp",
+ "reference/auth/activatedeactivate-multi-factor-authentication"
+ ]
+ },
+ {
+ "group": "User",
+ "icon": "user",
+ "pages": [
+ "reference/auth/change-the-current-users-email",
+ "reference/auth/send-an-email-asking-the-user-to-reset-their-password",
+ "reference/auth/send-an-email-to-verify-the-account",
+ "reference/auth/set-a-new-password",
+ "reference/auth/get-user-information",
+ "reference/auth/refresh-the-oauth-access-tokens-of-a-given-user-you-must-be-an-admin-to-perform-this-operation",
+ "reference/auth/initialize-adding-of-a-new-webauthn-security-key-device-browser",
+ "reference/auth/verfiy-adding-of-a-new-webauth-security-key-device-browser"
+ ]
+ },
+ "reference/auth/sign-out"
+ ]
+ },
+ {
+ "group": "Storage",
+ "icon": "file",
+ "pages": [
+ "reference/storage/upload-file",
+ "reference/storage/replace-file",
+ "reference/storage/delete-file",
+ "reference/storage/download-file",
+ "reference/storage/download-file-metadata",
+ "reference/storage/presigned-url",
+ "reference/storage/get-file-content"
+ ]
+ }
+ ]
+ },
+ {
+ "group": "GraphQL",
+ "pages": [
+ {
+ "group": "AI",
+ "pages": [
+ "reference/graphql/ai/overview",
+ {
+ "group": "Query",
+ "pages": [
+ "reference/graphql/ai/query/assistant",
+ "reference/graphql/ai/query/assistants",
+ "reference/graphql/ai/query/session",
+ "reference/graphql/ai/query/sessionMessages",
+ "reference/graphql/ai/query/sessions"
+ ]
+ },
+ {
+ "group": "Mutation",
+ "pages": [
+ "reference/graphql/ai/mutation/insertAssistant",
+ "reference/graphql/ai/mutation/updateAssistant",
+ "reference/graphql/ai/mutation/deleteAssistant",
+ "reference/graphql/ai/mutation/startSession",
+ "reference/graphql/ai/mutation/deleteSession",
+ "reference/graphql/ai/mutation/sendMessage",
+ "reference/graphql/ai/mutation/startDevSession",
+ "reference/graphql/ai/mutation/sendDevMessage"
+ ]
+ }
+ ]
+ }
+
+ ]
+ },
+ {
+ "group": "Client Libraries",
+ "pages": [
+ {
+ "group": "JavaScript",
+ "icon": "js",
+ "pages": [
+ {
+ "group": "Auth",
+ "pages": [
+ "reference/javascript/auth/hasura-auth-client",
+ "reference/javascript/auth/add-security-key",
+ "reference/javascript/auth/change-email",
+ "reference/javascript/auth/change-password",
+ "reference/javascript/auth/create-pat",
+ "reference/javascript/auth/get-access-token",
+ "reference/javascript/auth/get-authentication-status",
+ "reference/javascript/auth/get-decoded-access-token",
+ "reference/javascript/auth/get-hasura-claim",
+ "reference/javascript/auth/get-hasura-claims",
+ "reference/javascript/auth/get-session",
+ "reference/javascript/auth/get-user",
+ "reference/javascript/auth/is-authenticated",
+ "reference/javascript/auth/is-authenticated-async",
+ "reference/javascript/auth/on-auth-state-changed",
+ "reference/javascript/auth/on-token-changed",
+ "reference/javascript/auth/refresh-session",
+ "reference/javascript/auth/reset-password",
+ "reference/javascript/auth/send-verification-email",
+ "reference/javascript/auth/sign-in",
+ "reference/javascript/auth/sign-in-pat",
+ "reference/javascript/auth/sign-out",
+ "reference/javascript/auth/sign-up"
+ ]
+ },
+ {
+ "group": "Storage",
+ "pages": [
+ "reference/javascript/storage/hasura-storage-client",
+ "reference/javascript/storage/delete",
+ "reference/javascript/storage/get-presigned-url",
+ "reference/javascript/storage/get-public-url",
+ "reference/javascript/storage/set-access-token",
+ "reference/javascript/storage/set-admin-secret",
+ "reference/javascript/storage/upload"
+ ]
+ },
+ {
+ "group": "GraphQL ",
+ "pages": [
+ "reference/javascript/graphql/nhost-graphql-client",
+ "reference/javascript/graphql/get-url",
+ "reference/javascript/graphql/set-access-token",
+ "reference/javascript/graphql/request"
+ ]
+ }
+ ]
+ },
+ {
+ "group": "React",
+ "icon": "react",
+ "pages": [
+ "reference/react/nhost-client",
+ "reference/react/signed-in",
+ "reference/react/signed-out",
+ "reference/react/use-access-token",
+ "reference/react/use-add-security-key",
+ "reference/react/use-authenticated",
+ "reference/react/use-authentication-status",
+ "reference/react/use-change-email",
+ "reference/react/use-change-password",
+ "reference/react/use-config-mfa",
+ "reference/react/use-decoded-access-token",
+ "reference/react/use-file-upload",
+ "reference/react/use-file-upload-item",
+ "reference/react/use-hasura-claim",
+ "reference/react/use-hasura-claims",
+ "reference/react/use-multiple-files-upload",
+ "reference/react/use-nhost-client",
+ "reference/react/use-provider-link",
+ "reference/react/use-reset-password",
+ "reference/react/use-send-verification-email",
+ "reference/react/use-sign-in-anonymous",
+ "reference/react/use-sign-in-email-password",
+ "reference/react/use-sign-in-email-passwordless",
+ "reference/react/use-sign-in-email-security-key",
+ "reference/react/use-sign-in-pat",
+ "reference/react/use-sign-in-sms-passwordless",
+ "reference/react/use-sign-out",
+ "reference/react/use-sign-up-email-password",
+ "reference/react/use-sign-up-email-security-key-email",
+ "reference/react/use-user-avatar-url",
+ "reference/react/use-user-data",
+ "reference/react/use-user-default-role",
+ "reference/react/use-user-display-name",
+ "reference/react/use-user-email",
+ "reference/react/use-user-id",
+ "reference/react/use-user-is-anonymous",
+ "reference/react/use-user-locale",
+ "reference/react/use-user-roles"
+ ]
+ },
+ {
+ "group": "Next.js",
+ "icon": "react",
+ "pages": [
+ "reference/nextjs/nhost-client",
+ "reference/nextjs/signed-in",
+ "reference/nextjs/signed-out",
+ "reference/nextjs/create-server-side-client",
+ "reference/nextjs/get-nhost-session",
+ "reference/nextjs/use-access-token",
+ "reference/nextjs/use-add-security-key",
+ "reference/nextjs/use-authenticated",
+ "reference/nextjs/use-authentication-status",
+ "reference/nextjs/use-change-email",
+ "reference/nextjs/use-change-password",
+ "reference/nextjs/use-config-mfa",
+ "reference/nextjs/use-decoded-access-token",
+ "reference/nextjs/use-file-upload",
+ "reference/nextjs/use-file-upload-item",
+ "reference/nextjs/use-hasura-claim",
+ "reference/nextjs/use-hasura-claims",
+ "reference/nextjs/use-multiple-files-upload",
+ "reference/nextjs/use-nhost-client",
+ "reference/nextjs/use-provider-link",
+ "reference/nextjs/use-reset-password",
+ "reference/nextjs/use-send-verification-email",
+ "reference/nextjs/use-sign-in-anonymous",
+ "reference/nextjs/use-sign-in-email-password",
+ "reference/nextjs/use-sign-in-email-passwordless",
+ "reference/nextjs/use-sign-in-email-security-key",
+ "reference/nextjs/use-sign-in-pat",
+ "reference/nextjs/use-sign-in-sms-passwordless",
+ "reference/nextjs/use-sign-out",
+ "reference/nextjs/use-sign-up-email-password",
+ "reference/nextjs/use-sign-up-email-security-key-email",
+ "reference/nextjs/use-user-avatar-url",
+ "reference/nextjs/use-user-data",
+ "reference/nextjs/use-user-default-role",
+ "reference/nextjs/use-user-display-name",
+ "reference/nextjs/use-user-email",
+ "reference/nextjs/use-user-id",
+ "reference/nextjs/use-user-is-anonymous",
+ "reference/nextjs/use-user-locale",
+ "reference/nextjs/use-user-roles"
+ ]
+ },
+ {
+ "group": "Vue",
+ "icon": "vuejs",
+ "pages": [
+ "reference/vue/nhost-client",
+ "reference/vue/use-access-token",
+ "reference/vue/use-authenticated",
+ "reference/vue/use-authentication-status",
+ "reference/vue/use-change-email",
+ "reference/vue/use-change-password",
+ "reference/vue/use-decoded-access-token",
+ "reference/vue/use-file-upload",
+ "reference/vue/use-file-upload-item",
+ "reference/vue/use-hasura-claim",
+ "reference/vue/use-hasura-claims",
+ "reference/vue/use-multiple-files-upload",
+ "reference/vue/use-nhost-client",
+ "reference/vue/use-provider-link",
+ "reference/vue/use-reset-password",
+ "reference/vue/use-send-verification-email",
+ "reference/vue/use-sign-in-anonymous",
+ "reference/vue/use-sign-in-email-password",
+ "reference/vue/use-sign-in-email-passwordless",
+ "reference/vue/use-sign-in-pat",
+ "reference/vue/use-sign-in-sms-passwordless",
+ "reference/vue/use-sign-out",
+ "reference/vue/use-sign-up-email-password",
+ "reference/vue/use-user-avatar-url",
+ "reference/vue/use-user-data",
+ "reference/vue/use-user-default-role",
+ "reference/vue/use-user-display-name",
+ "reference/vue/use-user-email",
+ "reference/vue/use-user-id",
+ "reference/vue/use-user-is-anonymous",
+ "reference/vue/use-user-locale",
+ "reference/vue/use-user-roles"
+ ]
+ }
+ ]
+ }
+ ],
+ "footerSocials": {
+ "twitter": "https://twitter.com/nhost",
+ "github": "https://github.com/nhost",
+ "linkedin": "https://www.linkedin.com/company/nhost"
+ }
+}
diff --git a/docs/package.json b/docs/package.json
index 3c494bea05..f0b0f9a07a 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,50 +1,12 @@
{
"name": "@nhost/docs",
- "version": "0.7.5",
+ "version": "1.0.0",
"private": true,
"scripts": {
- "docusaurus": "docusaurus",
- "start": "pnpm run -w docgen && docusaurus start --no-open",
- "build": "pnpm run -w docgen && docusaurus build",
- "swizzle": "docusaurus swizzle",
- "deploy": "docusaurus deploy",
- "clear": "docusaurus clear",
- "serve": "docusaurus serve",
- "write-translations": "docusaurus write-translations",
- "write-heading-ids": "docusaurus write-heading-ids",
- "typecheck": "tsc"
+ "start": "mintlify dev"
},
"dependencies": {
- "@algolia/client-search": "^4.9.1",
- "@docusaurus/core": "2.4.1",
- "@docusaurus/plugin-sitemap": "2.4.1",
- "@docusaurus/preset-classic": "2.4.1",
- "@docusaurus/theme-mermaid": "2.4.1",
- "@mdx-js/react": "^1.6.22",
- "clsx": "^1.2.1",
- "docusaurus-plugin-image-zoom": "^0.1.1",
- "mermaid": "^9.0.0",
- "prism-react-renderer": "^1.3.5",
- "prismjs": "^1.29.0",
- "react": "^18.0.0",
- "react-dom": "^18.0.0",
- "unist-util-visit": "^2.0.0"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "2.4.1",
- "@tsconfig/docusaurus": "^2.0.0",
- "typescript": "^4.8.4"
- },
- "browserslist": {
- "production": [
- ">0.5%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
}
-}
\ No newline at end of file
+}
diff --git a/docs/platform/compute-resources.mdx b/docs/platform/compute-resources.mdx
new file mode 100644
index 0000000000..4cca013fcb
--- /dev/null
+++ b/docs/platform/compute-resources.mdx
@@ -0,0 +1,74 @@
+---
+title: 'Compute Resources'
+description: "Allocate CPU and Memory to your backend infrastructure"
+icon: server
+---
+
+Compute resources are the fundamental units that represent the processing power and memory available to your projects. The primary compute resources are vCPU and RAM.
+
+This documentation outlines the key aspects of compute resources in the context of the Nhost Cloud Platform.
+
+To further improve availability and fault tolerance, check out [Service Replicas](/platform/service-replicas)
+
+## Shared Compute
+
+In a shared model, compute resources are shared amongst users. This is fine if your services mostly run at low to medium load, occasionally burst for brief periods of time, and can tolerate drops in performance. It is important to understand that the availability of CPU time is **not guaranteed**.
+
+### Free Plan
+
+Projects on the free tier have a total of 2 shared vCPUs and 1 GiB of RAM spread over services as follows:
+
+| Service | CPU (MiB) | Memory (GiB) |
+| --------| ----------|--------------|
+| Postgres| 0.5 | 256 |
+| Hasura | 0.5 | 384 |
+| Auth | 0.5 | 256 |
+| Storage | 0.5 | 128 |
+
+### Pro Plan
+
+Projects on the pro tier have a total of 2 shared vCPUs and 2 GiB of RAM spread over services as follows:
+
+| Service | CPU (MiB) | Memory (GiB) |
+| --------| ----------|--------------|
+| Postgres| 0.5 | 512 |
+| Hasura | 0.5 | 768 |
+| Auth | 0.5 | 384 |
+| Storage | 0.5 | 384 |
+
+
+
+## Dedicated Compute
+
+For production workloads where latency is essential or consistent performance is non-negotiable, we strongly suggest the use of dedicated resources.
+
+Compute/Dedicated resources are only available on the Pro plan
+
+
+To setup dedicated resources for your project, you can either use the Dashboard or the Config.
+
+
+
+ ```bash nhost/nhost.toml
+ [hasura.resources.compute]
+ cpu = 500
+ memory = 1024
+
+ [auth.resources.compute]
+ cpu = 500
+ memory = 1024
+
+ [postgres.resources.compute]
+ cpu = 500
+ memory = 1024
+
+ [storage.resources.compute]
+ cpu = 500
+ memory = 1024
+ ```
+
+
+ ![compute](/images/platform/compute-resources/dashboard.png)
+
+
+
diff --git a/docs/platform/custom-domains.mdx b/docs/platform/custom-domains.mdx
new file mode 100644
index 0000000000..08de3a341a
--- /dev/null
+++ b/docs/platform/custom-domains.mdx
@@ -0,0 +1,63 @@
+---
+title: 'Custom Domains'
+description: 'Your Backend, your Brand'
+icon: route-interstate
+---
+
+Custom domains empower you to offer a tailored and branded experience for your users. Available only as an add-on for projects on the pro and enterprise plans, custom domains not only enhance your brand's visibility but also provide a more professional appearance compared to using Nhost's default domain.
+
+You can configure Custom Domains for Auth, Hasura, PostgreSQL, and your own Run services using both the Nhost Dashboard or the Config file.
+
+The following examples assume we are configuring custom domains at `*.custom-domain.com`.
+
+
+
+
+ Follow the instructions in the Custom Domain section of your project's settings:
+
+ 1. Add a CNAME record in your DNS provider for each of the services you want a custom domain for, and click "Verify". The verification might take a few seconds to succeed.
+ 2. Once the verification succeeds, click "Save" to update your project.
+
+ ![Custom Domains](./images/platform/custom-domains/custom-domains.png)
+
+
+
+
+ The first step is to add a CNAME record in your DNS provider for each of the services you want a custom domain for. You can find the instructions in the dashboard tab.
+
+ For Hasura, Auth, Functions, and PostgreSQL, custom domains are defined in the default `./nhost/config.toml` as follows:
+
+```toml
+[[hasura.resources.networking.ingresses]]
+fqdn = ['hasura.custom-domain.com']
+
+[[auth.resources.networking.ingresses]]
+fqdn = ['auth.custom-domain.com']
+
+[[postgres.resources.networking.ingresses]]
+fqdn = ['postgres.custom-domain.com']
+
+[[functions.resources.networking.ingresses]]
+fqdn = ['functions.custom-domain.com']
+```
+
+For Run services, typically in nhost-service.toml specific to the service:
+
+```toml
+name = 'my-service'
+
+[image]
+image = 'docker.io/nhost/my-service'
+
+[[ports]]
+port = 8080
+type= 'http'
+publish = true
+
+[[ports.ingresses]]
+fqdn = ['my-service.custom-domain.com']
+```
+
+
+
+
diff --git a/docs/platform/deployments.mdx b/docs/platform/deployments.mdx
new file mode 100644
index 0000000000..e6cdd27c6e
--- /dev/null
+++ b/docs/platform/deployments.mdx
@@ -0,0 +1,38 @@
+---
+title: 'Deployments'
+description: 'As simple as pushing your code to source control'
+icon: code-pull-request-closed
+---
+
+## Automatic Deploys
+
+Nhost deploys your project everytime new code is pushed to the branch connected to it.
+
+## Pipeline
+
+During a deployment, the following happens:
+
+
+
+
+ Nhost pulls down your connected repository, and deletes it after the deployment completes.
+
+
+
+ Nhost makes sure the state of your cloud instance reflects the one described in `./nhost/nhost.toml`.
+
+
+
+ New migrations present in `./nhost/migrations` are applied to your PostgreSQL instance.
+
+
+
+ Metadata changes from `./nhost/metadata` are applied to the Hasura Instance.
+
+
+
+ Functions inside `./functions` are deployed.
+
+
+
+
diff --git a/docs/platform/environment-variables.mdx b/docs/platform/environment-variables.mdx
new file mode 100644
index 0000000000..97956fd8c8
--- /dev/null
+++ b/docs/platform/environment-variables.mdx
@@ -0,0 +1,41 @@
+---
+title: 'Environment Variables'
+description: 'Configure your Backend'
+icon: boxes-stacked
+---
+
+Environment Variables are key-value pairs used to store configuration settings and parameters, influencing the behavior and settings of your services at runtime.
+
+
+Here is how you would access an environment variable, `MY_NHOST_CONFIG`, from a function:
+
+```ts functions/print-env.ts
+import { Request, Response } from 'express'
+
+export default (req: Request, res: Response) => {
+ res.status(200).send(`${process.env.MY_NHOST_CONFIG} ${req.query.name}!`)
+}
+```
+
+
+Variables created are available to all services, including Run Services and Functions
+
+
+## Add Environment Variables
+
+
+
+```toml
+[[global.environment]]
+name = 'MY_NHOST_CONFIG'
+value = "Nhost is Awesome!"
+```
+
+
+ **Project Dashboard -> Settings -> Environment Variables**
+
+ ![Environment Variables](/images/platform/environment-variables/environment-variables.png)
+
+
+
+
diff --git a/docs/platform/logs.mdx b/docs/platform/logs.mdx
new file mode 100644
index 0000000000..c3c009974c
--- /dev/null
+++ b/docs/platform/logs.mdx
@@ -0,0 +1,6 @@
+---
+title: 'Logs'
+description: 'Monitoring'
+icon: monitor-waveform
+---
+
diff --git a/docs/platform/metrics.mdx b/docs/platform/metrics.mdx
new file mode 100644
index 0000000000..5bf5ee41bf
--- /dev/null
+++ b/docs/platform/metrics.mdx
@@ -0,0 +1,38 @@
+---
+title: 'Metrics'
+description: 'Grafana Instance configured and tailored to your project'
+icon: monitor-waveform
+---
+
+Insights such as response times, resource usage, and error rates, to help you assess the **performance** and **health** of your services.
+
+Metrics helps you analyze the performance of your infrastructure, while identifying bottlenecks and optimizing your applications.
+
+Read more about [compute resources](/platform/compute-resources) and [service replicas](/platform/service-replicas)
+
+## Managed Grafana
+
+Your Grafana instance comes pre-defined with dashboards that cover backend services, functions, and networking:
+
+- vCPU/memory usage by Service replica for all services
+- Throttling time / percentage
+- Postgres volume usage
+- Networking errors
+- Functions metrics like calls, response times, errors
+- and others, we keep adding new metrics and dashboards
+
+![Grafana](/images/platform/metrics/grafana.png)
+
+### Nhost Dashboard
+
+You can find the link to Grafana in your project's dashboard, under **Metrics**.
+
+![Project Metrics](/images/platform/metrics/nhost-dashboard-metrics.png)
+
+## Beta
+
+Metrics is in beta, its functionality and pricing might change.
+
+### Limitations
+
+- Dashboards can be updated or created, but they won't persist after a deployment.
diff --git a/docs/platform/secrets.mdx b/docs/platform/secrets.mdx
new file mode 100644
index 0000000000..01d6b24386
--- /dev/null
+++ b/docs/platform/secrets.mdx
@@ -0,0 +1,51 @@
+---
+title: 'Secrets'
+description: 'Configure your Backend with Sensitive Data'
+icon: user-secret
+---
+
+Secrets are key-value pairs similar to Environment Variables but used to store **sensitive data** in a secure way.
+
+Secrets should be used for two purposes:
+
+1. to avoid placing sensitive information in your configuration file in plain sight
+
+2. as placeholders for values that might differ between environments
+
+
+## Add Secrets
+
+When using secrets, they need to be set in both local and cloud instances.
+
+### Nhost Local
+
+The Nhost CLI looks up for a `.secrets` file at the root of your project directory. A typical file looks like the following:
+
+```bash Terminal
+> cat .secrets
+
+HASURA_GRAPHQL_ADMIN_SECRET = 'nhost-admin-secret'
+HASURA_GRAPHQL_JWT_SECRET = '0f987876650b4a085e64594fae9219e7781b17506bec02489ad061fba8cb22db'
+GRAFANA_ADMIN_PASSWORD = 'grafana-passwd'
+```
+
+### Nhost Cloud
+
+ The secret values for your cloud instance can be set by navigating to your project's **Settings -> Secrets**.
+
+ ![Environment Variables](/images/platform/environment-variables/environment-variables.png)
+
+
+## Reference Secrets
+
+
+```toml nhost/nhost.toml
+[auth.method.oauth.apple]
+enabled = true
+clientId = "my-client-id"
+teamId = "my-team-id"
+
+keyId = "{{ secrets.APPLE_KEY_ID }}"
+privateKey = "{{ secrets.APPLE_PRIVATE_KEY }}"
+```
+
diff --git a/docs/platform/service-replicas.mdx b/docs/platform/service-replicas.mdx
new file mode 100644
index 0000000000..ee3cd0987d
--- /dev/null
+++ b/docs/platform/service-replicas.mdx
@@ -0,0 +1,45 @@
+---
+title: 'Service Replicas'
+description: 'High Availability and Fault Tolerance'
+icon: clone
+---
+
+Service Replicas allows for multiple instances (or replicas) of your services, enhancing availability and fault tolerance of your backend infrastructure. By distributing user requests among replicas, your backend can handle more traffic and provide a better experience to your users.
+
+![Service Replicas](/images/platform/service-replicas/replicas-diagram.png)
+
+## Benefits
+
+- Improved fault tolerance: Multiple replicas ensure that if one instance crashes duo to an unexpected issue, the other replicas can continue to serve user requests.
+- Improved availability: Distributing user requests among multiple replicas allows your apps to handle more traffic and maintain a high level of performance.
+- Load balancing: Distributing workloads evenly among replicas to prevent bottlenecks and ensure smooth performance during peak times.
+
+Replicas can be set for Hasura, Auth, Storage, and Run Services, Postgres support is coming next
+
+
+## Configuration
+
+To setup replicas for your project, you can either use the Dashboard or the Config.
+
+When configuring multiple replicas of a service, you must adhere to a 1:2 ratio between vCPU and RAM for that service
+
+
+
+ ```bash nhost/nhost.toml
+ [hasura.resources]
+ replicas = 2
+
+ [auth.resources]
+ replicas = 2
+
+ [storage.resources]
+ replicas = 2
+ ```
+
+
+ ![Service Replicas](/images/platform/compute-resources/dashboard.png)
+
+
+
+
+
diff --git a/docs/product.mdx b/docs/product.mdx
new file mode 100644
index 0000000000..8291d23e02
--- /dev/null
+++ b/docs/product.mdx
@@ -0,0 +1,56 @@
+---
+title: 'Product'
+description: 'Nhost is backend infrastructure that scales.'
+---
+
+## Your Infrastructure
+
+Nhost offers realtime APIs, authentication, storage, and functions out-of-the-box to get you off the ground fast.
+
+
+It also gives you the tools to extend your infrastructure. Follow [Nhost Run](https://docs.nhost.run/platform/run) for more information.
+
+
+## Database
+
+Each Nhost project comes with PostgreSQL and a set of useful extensions.
+
+
+ Read more about Nhost PostgreSQL here
+
+
+## APIs
+
+Instantly build and ship realtime APIs with Hasura
+
+
+ Read more about Hasura here.
+
+
+## Authentication
+
+Manage user accounts with ease.
+
+Read more about Nhost Auth here.
+
+## Storage
+
+Store files at scale.
+
+Read more about Nhost Storage here.
+
+## Functions
+
+Process webhooks from database events.
+
+## Run
+
+Run anything else you need.
diff --git a/docs/product/ai.mdx b/docs/product/ai.mdx
new file mode 100644
index 0000000000..f073ccf706
--- /dev/null
+++ b/docs/product/ai.mdx
@@ -0,0 +1,59 @@
+---
+title: AI
+icon: sparkles
+---
+
+Graphite, Nhost's AI service, extends the [Nhost stack](https://nhost.io) providing AI super-powers to your application.
+
+## Features
+
+* Auto-Embeddings
+ * Generate embeddings for your data automatically as it is inserted or modified
+ * Provide a GraphQL query for similarity searches to compare objects in your database
+ * Provide a GraphQL query to search objects using natural language
+ * Embeddings sources supported:
+ * [OpenAI](https://platform.openai.com/docs/guides/embeddings)
+ * More to come (if you are interested in seeing support for any model/platform don't hesitate to let us know)
+* AI Assistants
+ * Create AI assistants so your users can interact with your data using AI.
+ * Different AI assistants can have different views of your data
+ * Extend with custom data via webhooks
+ * Automate workflows by exposing GraphQL queries or mutations or custom webhooks to the AI assistant
+ * GraphQL API to interact with the assistants.
+ * Permissions fully integrated with hasura and hasura-auth; control who and who can not use which assistant via permissions.
+ * Access to the underlying data for the assistant is limited to what the user can see.
+* Developer Assistant
+ * Custom AI assistant with access to your project's information (i.e. database/graphql schema)
+ * Allow the developers in your team to leverage AI to develop faster and better
+
+### Auto-Embeddings
+
+Embeddings are automatically generated based on defined rules and a new GraphQL query to search objects using natural language is automatically added to the schema:
+
+![auto-embeddings-search](/images/product/ai/auto-embeddings-search.png)
+
+Similarly, a GraphQL schema to search for similar objects is also provided:
+
+![auto-embeddings-similar](/images/product/ai/auto-embeddings-similar.png)
+
+Both queries respect the user session and permissions so only results the user is allowed to see are returned.
+
+In addition, thanks to [pgvector](https://github.com/pgvector/pgvector) you can easily perform any operations on the generated embeddings directly from your application.
+
+### AI Assistants
+
+![assistant-insert](/images/product/ai/assistant-insert.png)
+![assistant-thread](/images/product/ai/assistant-thread.png)
+
+## Guides
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/product/authentication.mdx b/docs/product/authentication.mdx
new file mode 100644
index 0000000000..d7eee0b4ec
--- /dev/null
+++ b/docs/product/authentication.mdx
@@ -0,0 +1,60 @@
+---
+title: Auth
+description: Sign Up and Sign In users
+icon: users
+---
+
+Auth makes it possible to have secure authentication with support for many different authentication methods in just a few minutes.
+
+Combined with a powerful **Permission Rules** system, Nhost Auth offers everything you need to **authenticate** and **authorize** users.
+
+## Supported Methods
+
+
+
+
+
+
+
+
+
+
+
+
+### OAuth Providers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Authorization
+
+For authorization and permission rules, read the API's guide on [Permissions](/guides/api/permissions).
+
+### Additional Resources
+
+
+
+
+
+
+
+
+
diff --git a/docs/product/database.mdx b/docs/product/database.mdx
new file mode 100644
index 0000000000..1517380fad
--- /dev/null
+++ b/docs/product/database.mdx
@@ -0,0 +1,41 @@
+---
+title: Database
+description: Dedicated PostgreSQL Instance
+icon: database
+---
+
+All Nhost projects have their own dedicated PostgreSQL instance, an advanced, open-source object-relational database system known for its robustness, durability, and performance.
+
+With a history of over 30 years of active development, PostgreSQL offers a versatile solution for managing data in a wide range of applications.
+
+## Dashboard
+
+Manage your database with the Nhost Dashboard. Create tables, relationships, manage data, or run arbitrary SQL, with a simple but powerful UI.
+
+![Manage database](/images/product/database/dashboard-database.png)
+
+### Extensions
+
+Extensions are one of Postgres' best features because they allow us to extend the functionality of our databases.
+
+Nhost supports a bunch of extensions that you can install for functionalities such as full-text search capabilities with pgvector or geographic object support with PostGIS.
+
+You can find the complete list of supported extensions [here](/guides/database/extensions).
+
+### Additional Features
+
+- Backups
+- Realtime APIs automatically generated
+- Compute Resources for Postgres
+
+### Additional Resources
+
+
+
+ Learn how to configure Nhost PostgreSQL.
+
+
+ Learn about extensions.
+
+
+
diff --git a/docs/product/functions.mdx b/docs/product/functions.mdx
new file mode 100644
index 0000000000..b0bcd89024
--- /dev/null
+++ b/docs/product/functions.mdx
@@ -0,0 +1,27 @@
+---
+title: Functions
+description: Server-side code that works as API endpoints
+icon: code
+---
+
+Nhost Functions are server-side JavaScript or TypeScript functions that are a great option for handling things like Event Triggers for async workflows, as well as to integrate with external service providers like Stripe or Slack.
+
+For more sophisticated use-cases and control over the runtime, use [Nhost Run](/product/run).
+
+## Hello World
+
+```js ./functions/hello-world.js
+export default (req, res) => {
+ res.status(200).send(`Hello World!`)
+}
+```
+
+Deploying functions is as easy as pushing your code!
+
+## Additional Resources
+
+
+
+
+
+
diff --git a/docs/product/graphql.mdx b/docs/product/graphql.mdx
new file mode 100644
index 0000000000..72a4df0e8e
--- /dev/null
+++ b/docs/product/graphql.mdx
@@ -0,0 +1,51 @@
+---
+title: Realtime GraphQL API
+description: Autogenerated APIs with Hasura
+sidebarTitle: GraphQL API
+icon: webhook
+---
+
+Hasura is a powerful GraphQL engine that generates **realtime GraphQL APIs** from your Postgres database.
+
+## Instant APIs
+
+Instant APIs on all your data.
+
+```graphql
+query GetTodos {
+ todos {
+ title
+ completed
+ }
+}
+```
+
+### Permissions
+
+Define granular, role-based permissions at the level of rows and columns.
+
+You can read more about Hasura Permissions [here](/guides/api/permissions)
+
+### GraphQL Clients
+
+The Nhost JavaScript SDK ships with a simple GraphQL client that you can use for simple operations. Nhost is agnostic regarding the client you choose and works well with many clients:
+
+- Apollo Client
+- URQL
+- React Query
+- SWR
+- etc
+
+
+### Additional Resources
+
+
+
+ Learn how to configure Hasura
+
+
+
+ Learn how permissions work
+
+
+
diff --git a/docs/product/run.mdx b/docs/product/run.mdx
new file mode 100644
index 0000000000..15b4d96596
--- /dev/null
+++ b/docs/product/run.mdx
@@ -0,0 +1,46 @@
+---
+title: Run
+description: Extend your backend
+icon: caret-right
+---
+
+Nhost Run makes it easy to **extend** and **customize** your backend infrastructure. It unlocks the power and flexibility to run any custom and third-party OSS solutions, all in the same place.
+
+![Run](/images/product/run/overview.png)
+
+## Use Cases
+
+- Deploy and execute your custom backend services within your project environment.
+- Extend your GraphQL API functionalities by incorporating remote schemas or actions.
+- Execute data-processing tasks in close proximity to your database for enhanced efficiency.
+- Redis, memcache, datadog agents, mysql, mongodb... anything your application needs.
+
+## Advantages
+
+Nhost Run offers several key advantages for running workloads alongside your project:
+
+- Minimal Latency: By running workloads alongside your project environment, Nhost Run reduces latency between services. This means that the communication and data exchange between different components of your project can occur quickly and efficiently.
+- Improved Reliability: Nhost Run eliminates the dependency on external internet connectivity. This increased reliability ensures that your workloads continue to function even in scenarios where internet access may be limited or disrupted.
+- No Egress Costs: With Nhost Run, you won't incur additional egress costs for transferring data between your project and the cloud infrastructure. This cost-saving benefit allows you to manage your expenses more effectively.
+- Integrated operations: Develop, build, manage and scale your own workloads the same way you can manage your Nhost Project.
+
+By leveraging Nhost Run, you can optimize the performance, reliability, and cost-efficiency of your project by running workloads alongside it.
+
+## Guides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/product/storage.mdx b/docs/product/storage.mdx
new file mode 100644
index 0000000000..dd45d05416
--- /dev/null
+++ b/docs/product/storage.mdx
@@ -0,0 +1,25 @@
+---
+title: Storage
+description: Store and Serve large files
+icon: file
+---
+
+Use Nhost Storage to store and retrieve large files such as videos, images, large documents, or any other objects.
+
+Nhost Storage includes a built-in image optimizer, so you can resize and compress your media files on the fly.
+
+### CDN
+
+Serve your assets with a global CDN to reduce latency.
+
+
+### Additional Resources
+
+
+
+
+
+
+
+
+
diff --git a/docs/reference/auth/activatedeactivate-multi-factor-authentication.mdx b/docs/reference/auth/activatedeactivate-multi-factor-authentication.mdx
new file mode 100644
index 0000000000..7b2ef0f8ed
--- /dev/null
+++ b/docs/reference/auth/activatedeactivate-multi-factor-authentication.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/mfa
+---
\ No newline at end of file
diff --git a/docs/reference/auth/change-the-current-users-email.mdx b/docs/reference/auth/change-the-current-users-email.mdx
new file mode 100644
index 0000000000..441dd082a2
--- /dev/null
+++ b/docs/reference/auth/change-the-current-users-email.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/email/change
+---
\ No newline at end of file
diff --git a/docs/reference/auth/deanonymize-an-anonymous-user-in-adding-missing-email-or-email+password-depending-on-the-chosen-authentication-method-will-send-a-confirmation-email-if-the-server-is-configured-to-do-so.mdx b/docs/reference/auth/deanonymize-an-anonymous-user-in-adding-missing-email-or-email+password-depending-on-the-chosen-authentication-method-will-send-a-confirmation-email-if-the-server-is-configured-to-do-so.mdx
new file mode 100644
index 0000000000..0c84ec3cf1
--- /dev/null
+++ b/docs/reference/auth/deanonymize-an-anonymous-user-in-adding-missing-email-or-email+password-depending-on-the-chosen-authentication-method-will-send-a-confirmation-email-if-the-server-is-configured-to-do-so.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/deanonymize
+---
\ No newline at end of file
diff --git a/docs/reference/auth/general/check-if-the-server-is-up-and-running.mdx b/docs/reference/auth/general/check-if-the-server-is-up-and-running.mdx
new file mode 100644
index 0000000000..4cd1d03a4e
--- /dev/null
+++ b/docs/reference/auth/general/check-if-the-server-is-up-and-running.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /healthz
+---
\ No newline at end of file
diff --git a/docs/reference/auth/general/get-the-current-hasura-auth-version.mdx b/docs/reference/auth/general/get-the-current-hasura-auth-version.mdx
new file mode 100644
index 0000000000..23da02ec30
--- /dev/null
+++ b/docs/reference/auth/general/get-the-current-hasura-auth-version.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /version
+---
\ No newline at end of file
diff --git a/docs/reference/auth/general/refresh-the-access-jwt-token.mdx b/docs/reference/auth/general/refresh-the-access-jwt-token.mdx
new file mode 100644
index 0000000000..627f468118
--- /dev/null
+++ b/docs/reference/auth/general/refresh-the-access-jwt-token.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /token
+---
\ No newline at end of file
diff --git a/docs/reference/auth/general/veify-jwt-token.mdx b/docs/reference/auth/general/veify-jwt-token.mdx
new file mode 100644
index 0000000000..3ee7008de8
--- /dev/null
+++ b/docs/reference/auth/general/veify-jwt-token.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /token/verify
+---
\ No newline at end of file
diff --git a/docs/reference/auth/general/verify-tickets-created-by-email-verification-email-passwordless-authentication-or-password-reset.mdx b/docs/reference/auth/general/verify-tickets-created-by-email-verification-email-passwordless-authentication-or-password-reset.mdx
new file mode 100644
index 0000000000..8ed1c1658b
--- /dev/null
+++ b/docs/reference/auth/general/verify-tickets-created-by-email-verification-email-passwordless-authentication-or-password-reset.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /verify
+---
\ No newline at end of file
diff --git a/docs/reference/auth/generate-a-secret-to-request-the-activation-of-time-based-one-time-password-totp-multi-factor-authentication.mdx b/docs/reference/auth/generate-a-secret-to-request-the-activation-of-time-based-one-time-password-totp-multi-factor-authentication.mdx
new file mode 100644
index 0000000000..4f5427b2b6
--- /dev/null
+++ b/docs/reference/auth/generate-a-secret-to-request-the-activation-of-time-based-one-time-password-totp-multi-factor-authentication.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /mfa/totp/generate
+---
\ No newline at end of file
diff --git a/docs/reference/auth/get-user-information.mdx b/docs/reference/auth/get-user-information.mdx
new file mode 100644
index 0000000000..fe057b1af7
--- /dev/null
+++ b/docs/reference/auth/get-user-information.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /user
+---
\ No newline at end of file
diff --git a/docs/reference/auth/initialize-adding-of-a-new-webauthn-security-key-device-browser.mdx b/docs/reference/auth/initialize-adding-of-a-new-webauthn-security-key-device-browser.mdx
new file mode 100644
index 0000000000..c5d8817443
--- /dev/null
+++ b/docs/reference/auth/initialize-adding-of-a-new-webauthn-security-key-device-browser.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/webauthn/add
+---
\ No newline at end of file
diff --git a/docs/reference/auth/oauth-callback-url-that-will-be-used-by-the-oauth-provider-to-redirect-to-the-client-application-attention:-all-providers-are-using-a-get-operation-except-apple-and-azure-ad-that-use-post.mdx b/docs/reference/auth/oauth-callback-url-that-will-be-used-by-the-oauth-provider-to-redirect-to-the-client-application-attention:-all-providers-are-using-a-get-operation-except-apple-and-azure-ad-that-use-post.mdx
new file mode 100644
index 0000000000..6906b8a958
--- /dev/null
+++ b/docs/reference/auth/oauth-callback-url-that-will-be-used-by-the-oauth-provider-to-redirect-to-the-client-application-attention:-all-providers-are-using-a-get-operation-except-apple-and-azure-ad-that-use-post.mdx
@@ -0,0 +1,4 @@
+---
+openapi: get /signin/provider/{provider}/callback
+sidebarTitle: Sign In Callback
+---
diff --git a/docs/reference/auth/refresh-the-oauth-access-tokens-of-a-given-user-you-must-be-an-admin-to-perform-this-operation.mdx b/docs/reference/auth/refresh-the-oauth-access-tokens-of-a-given-user-you-must-be-an-admin-to-perform-this-operation.mdx
new file mode 100644
index 0000000000..34cee33536
--- /dev/null
+++ b/docs/reference/auth/refresh-the-oauth-access-tokens-of-a-given-user-you-must-be-an-admin-to-perform-this-operation.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/provider/tokens
+---
\ No newline at end of file
diff --git a/docs/reference/auth/send-an-email-asking-the-user-to-reset-their-password.mdx b/docs/reference/auth/send-an-email-asking-the-user-to-reset-their-password.mdx
new file mode 100644
index 0000000000..c4a91d43ff
--- /dev/null
+++ b/docs/reference/auth/send-an-email-asking-the-user-to-reset-their-password.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/password/reset
+---
\ No newline at end of file
diff --git a/docs/reference/auth/send-an-email-to-verify-the-account.mdx b/docs/reference/auth/send-an-email-to-verify-the-account.mdx
new file mode 100644
index 0000000000..ba9d4aaebf
--- /dev/null
+++ b/docs/reference/auth/send-an-email-to-verify-the-account.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/email/send-verification-email
+---
\ No newline at end of file
diff --git a/docs/reference/auth/set-a-new-password.mdx b/docs/reference/auth/set-a-new-password.mdx
new file mode 100644
index 0000000000..5a3182570e
--- /dev/null
+++ b/docs/reference/auth/set-a-new-password.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/password
+---
\ No newline at end of file
diff --git a/docs/reference/auth/sign-in-anonymous.mdx b/docs/reference/auth/sign-in-anonymous.mdx
new file mode 100644
index 0000000000..635320af61
--- /dev/null
+++ b/docs/reference/auth/sign-in-anonymous.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /signin/anonymous
+---
\ No newline at end of file
diff --git a/docs/reference/auth/sign-in-email-and-password.mdx b/docs/reference/auth/sign-in-email-and-password.mdx
new file mode 100644
index 0000000000..8c0af7b4f1
--- /dev/null
+++ b/docs/reference/auth/sign-in-email-and-password.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/email-password
+sidebarTitle: 'Sign In'
+---
diff --git a/docs/reference/auth/sign-in-email-passwordless.mdx b/docs/reference/auth/sign-in-email-passwordless.mdx
new file mode 100644
index 0000000000..248b5e0aca
--- /dev/null
+++ b/docs/reference/auth/sign-in-email-passwordless.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/passwordless/email
+sidebarTitle: Sign In Email
+---
diff --git a/docs/reference/auth/sign-in-oauth-provider.mdx b/docs/reference/auth/sign-in-oauth-provider.mdx
new file mode 100644
index 0000000000..e4b8a82385
--- /dev/null
+++ b/docs/reference/auth/sign-in-oauth-provider.mdx
@@ -0,0 +1,4 @@
+---
+openapi: get /signin/provider/{provider}
+sidebarTitle: Sign In
+---
diff --git a/docs/reference/auth/sign-in-sms-passwordless-otp.mdx b/docs/reference/auth/sign-in-sms-passwordless-otp.mdx
new file mode 100644
index 0000000000..6e905ade04
--- /dev/null
+++ b/docs/reference/auth/sign-in-sms-passwordless-otp.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/passwordless/sms/otp
+sidebarTitle: Sign In SMS Verify OTP
+---
diff --git a/docs/reference/auth/sign-in-sms-passwordless.mdx b/docs/reference/auth/sign-in-sms-passwordless.mdx
new file mode 100644
index 0000000000..f2df510174
--- /dev/null
+++ b/docs/reference/auth/sign-in-sms-passwordless.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/passwordless/sms
+sidebarTitle: Sign In SMS
+---
diff --git a/docs/reference/auth/sign-in-totp.mdx b/docs/reference/auth/sign-in-totp.mdx
new file mode 100644
index 0000000000..f5e898d5f4
--- /dev/null
+++ b/docs/reference/auth/sign-in-totp.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /signin/mfa/totp
+---
\ No newline at end of file
diff --git a/docs/reference/auth/sign-in-using-email-via-fido2-webauthn-authentication.mdx b/docs/reference/auth/sign-in-using-email-via-fido2-webauthn-authentication.mdx
new file mode 100644
index 0000000000..034ec247a8
--- /dev/null
+++ b/docs/reference/auth/sign-in-using-email-via-fido2-webauthn-authentication.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/webauthn
+sidebarTitle: 'Sign In'
+---
diff --git a/docs/reference/auth/sign-out.mdx b/docs/reference/auth/sign-out.mdx
new file mode 100644
index 0000000000..3ad63a071e
--- /dev/null
+++ b/docs/reference/auth/sign-out.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /signout
+---
\ No newline at end of file
diff --git a/docs/reference/auth/sign-up-email-and-password.mdx b/docs/reference/auth/sign-up-email-and-password.mdx
new file mode 100644
index 0000000000..dfaa066ea8
--- /dev/null
+++ b/docs/reference/auth/sign-up-email-and-password.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signup/email-password
+sidebarTitle: Sign Up
+---
diff --git a/docs/reference/auth/sign-up-using-email-via-fido2-webauthn-authentication.mdx b/docs/reference/auth/sign-up-using-email-via-fido2-webauthn-authentication.mdx
new file mode 100644
index 0000000000..312caed784
--- /dev/null
+++ b/docs/reference/auth/sign-up-using-email-via-fido2-webauthn-authentication.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signup/webauthn
+sidebarTitle: Sign Up
+---
diff --git a/docs/reference/auth/verfiy-adding-of-a-new-webauth-security-key-device-browser.mdx b/docs/reference/auth/verfiy-adding-of-a-new-webauth-security-key-device-browser.mdx
new file mode 100644
index 0000000000..219d6b76a0
--- /dev/null
+++ b/docs/reference/auth/verfiy-adding-of-a-new-webauth-security-key-device-browser.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /user/webauthn/verify
+---
\ No newline at end of file
diff --git a/docs/reference/auth/verfiy-fido2-webauthn-authentication-and-complete-signup.mdx b/docs/reference/auth/verfiy-fido2-webauthn-authentication-and-complete-signup.mdx
new file mode 100644
index 0000000000..9e1b315f31
--- /dev/null
+++ b/docs/reference/auth/verfiy-fido2-webauthn-authentication-and-complete-signup.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signup/webauthn/verify
+sidebarTitle: Sign Up Verify
+---
diff --git a/docs/reference/auth/verfiy-fido2-webauthn-authentication-using-public-key-cryptography.mdx b/docs/reference/auth/verfiy-fido2-webauthn-authentication-using-public-key-cryptography.mdx
new file mode 100644
index 0000000000..313a895aa7
--- /dev/null
+++ b/docs/reference/auth/verfiy-fido2-webauthn-authentication-using-public-key-cryptography.mdx
@@ -0,0 +1,4 @@
+---
+openapi: post /signin/webauthn/verify
+sidebarTitle: Sign In Verify
+---
diff --git a/docs/reference/graphql/ai/mutation/deleteAssistant.mdx b/docs/reference/graphql/ai/mutation/deleteAssistant.mdx
new file mode 100644
index 0000000000..60a1f202a7
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/deleteAssistant.mdx
@@ -0,0 +1,67 @@
+---
+title: deleteAssistant
+---
+
+```graphql
+deleteAssistant {
+ assistantID: String!
+}: Boolean!
+```
+
+Delete an assistant
+
+## Permissions needed
+
+select (assistants):
+- assistant_id
+delete (assistants):
+
+
+## Arguments
+
+
+
+
+ Assistant to delete
+
+
+
+
+## Response
+
+Type: `Boolean!`
+
+
+
+
+
+
+
+```graphql query
+query deleteAssistant (
+ $assistantID: String!
+) {
+ graphite {
+ deleteAssistant (
+ assistantID: $assistantID
+ )
+ }
+}
+```
+
+```json variables
+{
+ "assistantID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {}
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/deleteSession.mdx b/docs/reference/graphql/ai/mutation/deleteSession.mdx
new file mode 100644
index 0000000000..e43357ae8d
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/deleteSession.mdx
@@ -0,0 +1,67 @@
+---
+title: deleteSession
+---
+
+```graphql
+deleteSession {
+ sessionID: String!
+}: Boolean!
+```
+
+Delete a session
+
+## Permissions needed
+
+select (sessions):
+- assistant_id
+delete (sessions):
+
+
+## Arguments
+
+
+
+
+ Session to delete
+
+
+
+
+## Response
+
+Type: `Boolean!`
+
+
+
+
+
+
+
+```graphql query
+query deleteSession (
+ $sessionID: String!
+) {
+ graphite {
+ deleteSession (
+ sessionID: $sessionID
+ )
+ }
+}
+```
+
+```json variables
+{
+ "sessionID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {}
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/insertAssistant.mdx b/docs/reference/graphql/ai/mutation/insertAssistant.mdx
new file mode 100644
index 0000000000..b59ec3db5e
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/insertAssistant.mdx
@@ -0,0 +1,425 @@
+---
+title: insertAssistant
+---
+
+```graphql
+insertAssistant {
+ object: AssistantInput!
+}: Assistant!
+```
+
+Create an assistant
+
+## Permissions needed
+
+select (assistants):
+- id
+insert (assistants):
+- user_id
+
+
+## Arguments
+
+
+
+
+ Assistant to create
+
+
+
+
+
+
+ Name of the assistant
+
+
+
+
+ Description of the assistant
+
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+
+ Model to use for the assistant.
+
+
+
+
+ GraphQL data sources. Run against the project's GraphQL API
+
+
+
+
+
+
+ Name of the data source. Use a descriptive name
+
+
+
+
+ Description of the data source. Be as clear and concise as possible.
+This is used to help the AI assistant understand when and how
+external data sources should be used.
+
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+ Name of the argument
+
+
+
+
+ Description of the argument. Be as clear and concise as possible.
+
+
+
+
+ Type of the argument
+
+
+
+
+ Whether or not the argument is required
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources
+
+
+
+
+
+
+ Name of the data source. Use a descriptive name
+
+
+
+
+ Description of the data source. Be as clear and concise as possible.
+This is used to help the AI assistant understand when and how
+external data sources should be used.
+
+
+
+
+ URL of the webhook
+
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+ Name of the argument
+
+
+
+
+ Description of the argument. Be as clear and concise as possible.
+
+
+
+
+ Type of the argument
+
+
+
+
+ Whether or not the argument is required
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Response
+
+Type: `Assistant!`
+
+
+
+
+
+
+
+ ID of the assistant
+
+
+
+ Name of the assistant
+
+
+
+ Description of the assistant
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+ Model to use for the assistant.
+
+
+
+ GraphQL data sources and tools. Run against the project's GraphQL API
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources and tools
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ URL of the webhook
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```graphql query
+query insertAssistant (
+ $object: AssistantInput!
+) {
+ graphite {
+ insertAssistant (
+ object: $object
+ ) {
+ assistantID
+ name
+ description
+ instructions
+ model
+ graphql {
+ name
+ description
+ query
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ webhooks {
+ name
+ description
+ URL
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "object": {
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "insertAssistant": {
+ "assistantID": "string",
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/sendDevMessage.mdx b/docs/reference/graphql/ai/mutation/sendDevMessage.mdx
new file mode 100644
index 0000000000..75db384889
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/sendDevMessage.mdx
@@ -0,0 +1,131 @@
+---
+title: sendDevMessage
+---
+
+```graphql
+sendDevMessage {
+ sessionID: String! message: String! prevMessageID: String!
+}: MessageResponse!
+```
+
+Send a message to a developer session.
+If prevMessageID is `""`, return all messages in the session.
+If prevMessageID is not `""`, return all messages after prevMessageID.
+
+## Permissions needed
+
+Only admins can send messages to developer sessions
+
+
+## Arguments
+
+
+
+
+ Session to send the message to
+
+
+
+
+ Message to send
+
+
+
+
+ Only return messages after this message ID
+
+
+
+
+## Response
+
+Type: `MessageResponse!`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ Messages in this session
+
+
+
+
+
+ ID of the message
+
+
+
+ Role of the message. Either "user" or "assistant"
+
+
+
+ Message content
+
+
+
+ Timestamp of when the message was sent
+
+
+
+
+
+
+
+
+
+```graphql query
+query sendDevMessage (
+ $sessionID: String!$message: String!$prevMessageID: String!
+) {
+ graphite {
+ sendDevMessage (
+ sessionID: $sessionIDmessage: $messageprevMessageID: $prevMessageID
+ ) {
+ sessionID
+ messages {
+ id
+ role
+ message
+ createdAt
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "message": "string",
+ "prevMessageID": "string",
+ "sessionID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sendDevMessage": {
+ "messages": [
+ {
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "id": "string",
+ "message": "string",
+ "role": "string"
+ }
+ ],
+ "sessionID": "string"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/sendMessage.mdx b/docs/reference/graphql/ai/mutation/sendMessage.mdx
new file mode 100644
index 0000000000..010d5fb2a6
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/sendMessage.mdx
@@ -0,0 +1,135 @@
+---
+title: sendMessage
+---
+
+```graphql
+sendMessage {
+ sessionID: String! message: String! prevMessageID: String!
+}: MessageResponse!
+```
+
+Send a message to a session.
+If prevMessageID is "", return all messages in the session.
+If prevMessageID is not "", return all messages after prevMessageID.
+
+## Permissions needed
+
+select (sessions):
+- id
+- session_id
+update (sessions):
+- update_at
+
+
+## Arguments
+
+
+
+
+ Session to send the message to
+
+
+
+
+ Message to send
+
+
+
+
+ Only return messages after this message ID
+
+
+
+
+## Response
+
+Type: `MessageResponse!`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ Messages in this session
+
+
+
+
+
+ ID of the message
+
+
+
+ Role of the message. Either "user" or "assistant"
+
+
+
+ Message content
+
+
+
+ Timestamp of when the message was sent
+
+
+
+
+
+
+
+
+
+```graphql query
+query sendMessage (
+ $sessionID: String!$message: String!$prevMessageID: String!
+) {
+ graphite {
+ sendMessage (
+ sessionID: $sessionIDmessage: $messageprevMessageID: $prevMessageID
+ ) {
+ sessionID
+ messages {
+ id
+ role
+ message
+ createdAt
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "message": "string",
+ "prevMessageID": "string",
+ "sessionID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sendMessage": {
+ "messages": [
+ {
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "id": "string",
+ "message": "string",
+ "role": "string"
+ }
+ ],
+ "sessionID": "string"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/startDevSession.mdx b/docs/reference/graphql/ai/mutation/startDevSession.mdx
new file mode 100644
index 0000000000..67c4466529
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/startDevSession.mdx
@@ -0,0 +1,79 @@
+---
+title: startDevSession
+---
+
+```graphql
+startDevSession: Session!
+```
+
+Create a developer session
+
+## Permissions needed
+
+Only admins can create developer sessions
+
+
+
+## Response
+
+Type: `Session!`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ ID of the assistant used in this session
+
+
+
+ ID of the user who started this session
+
+
+
+ Messages in this session
+
+
+
+
+
+
+```graphql query
+query startDevSession {
+ graphite {
+ startDevSession {
+ sessionID
+ assistantID
+ userID
+ createdAt
+ }
+ }
+}
+```
+
+```json variables
+{}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "startDevSession": {
+ "assistantID": "string",
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "sessionID": "string",
+ "userID": "61809D37-DA3F-4EFC-A324-EB181F38DD85"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/startSession.mdx b/docs/reference/graphql/ai/mutation/startSession.mdx
new file mode 100644
index 0000000000..354382d600
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/startSession.mdx
@@ -0,0 +1,100 @@
+---
+title: startSession
+---
+
+```graphql
+startSession {
+ assistantID: String!
+}: Session!
+```
+
+Create a session with a given assistant
+
+## Permissions needed
+
+select (sessions):
+- id
+insert (sessions):
+- user_id
+- assistant_id
+
+
+## Arguments
+
+
+
+
+ Start a session with this assistant
+
+
+
+
+## Response
+
+Type: `Session!`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ ID of the assistant used in this session
+
+
+
+ ID of the user who started this session
+
+
+
+ Messages in this session
+
+
+
+
+
+
+```graphql query
+query startSession (
+ $assistantID: String!
+) {
+ graphite {
+ startSession (
+ assistantID: $assistantID
+ ) {
+ sessionID
+ assistantID
+ userID
+ createdAt
+ }
+ }
+}
+```
+
+```json variables
+{
+ "assistantID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "startSession": {
+ "assistantID": "string",
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "sessionID": "string",
+ "userID": "61809D37-DA3F-4EFC-A324-EB181F38DD85"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/mutation/updateAssistant.mdx b/docs/reference/graphql/ai/mutation/updateAssistant.mdx
new file mode 100644
index 0000000000..d0f26065ad
--- /dev/null
+++ b/docs/reference/graphql/ai/mutation/updateAssistant.mdx
@@ -0,0 +1,431 @@
+---
+title: updateAssistant
+---
+
+```graphql
+updateAssistant {
+ assistantID: String! object: AssistantInput!
+}: Assistant!
+```
+
+Update an assistant
+
+## Permissions needed
+
+select (assistants):
+- assistant_id
+update (assistants):
+- update_at
+
+
+## Arguments
+
+
+
+
+ ID of the assistant to update
+
+
+
+
+ New assistant data. Will fully replace the existing assistant
+
+
+
+
+
+
+ Name of the assistant
+
+
+
+
+ Description of the assistant
+
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+
+ Model to use for the assistant.
+
+
+
+
+ GraphQL data sources. Run against the project's GraphQL API
+
+
+
+
+
+
+ Name of the data source. Use a descriptive name
+
+
+
+
+ Description of the data source. Be as clear and concise as possible.
+This is used to help the AI assistant understand when and how
+external data sources should be used.
+
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+ Name of the argument
+
+
+
+
+ Description of the argument. Be as clear and concise as possible.
+
+
+
+
+ Type of the argument
+
+
+
+
+ Whether or not the argument is required
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources
+
+
+
+
+
+
+ Name of the data source. Use a descriptive name
+
+
+
+
+ Description of the data source. Be as clear and concise as possible.
+This is used to help the AI assistant understand when and how
+external data sources should be used.
+
+
+
+
+ URL of the webhook
+
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+ Name of the argument
+
+
+
+
+ Description of the argument. Be as clear and concise as possible.
+
+
+
+
+ Type of the argument
+
+
+
+
+ Whether or not the argument is required
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Response
+
+Type: `Assistant!`
+
+
+
+
+
+
+
+ ID of the assistant
+
+
+
+ Name of the assistant
+
+
+
+ Description of the assistant
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+ Model to use for the assistant.
+
+
+
+ GraphQL data sources and tools. Run against the project's GraphQL API
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources and tools
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ URL of the webhook
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```graphql query
+query updateAssistant (
+ $assistantID: String!$object: AssistantInput!
+) {
+ graphite {
+ updateAssistant (
+ assistantID: $assistantIDobject: $object
+ ) {
+ assistantID
+ name
+ description
+ instructions
+ model
+ graphql {
+ name
+ description
+ query
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ webhooks {
+ name
+ description
+ URL
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "assistantID": "string",
+ "object": {
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "updateAssistant": {
+ "assistantID": "string",
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/overview.mdx b/docs/reference/graphql/ai/overview.mdx
new file mode 100644
index 0000000000..f2a3dae70d
--- /dev/null
+++ b/docs/reference/graphql/ai/overview.mdx
@@ -0,0 +1,20 @@
+---
+title: Overview
+---
+
+When deploying graphite, Nhost's AI service, three sets of queries and mutations are deployed:
+
+
+1. Queries and mutations with the prefix `graphite`, for instance, `graphiteAutoEmbeddingsConfiguration`. These queries and mutations interact with data and can be used normally as any other graphql query or mutation generated by hasura.
+2. Queries and mutations with the prefix `_graphite`, for instance `_graphiteAssistant`. These queries are private and shouldn't be used.
+3. Queries and mutations inside the namespace `graphite`. For instance:
+```graphql
+query {
+ graphite {
+ assistants {
+ name
+ }
+ }
+}
+```
+These queries are provided by `graphite`'s remote schema and are documented in this section.
diff --git a/docs/reference/graphql/ai/query/assistant.mdx b/docs/reference/graphql/ai/query/assistant.mdx
new file mode 100644
index 0000000000..e9ce30fc00
--- /dev/null
+++ b/docs/reference/graphql/ai/query/assistant.mdx
@@ -0,0 +1,249 @@
+---
+title: assistant
+---
+
+```graphql
+assistant {
+ assistantID: String!
+}: Assistant
+```
+
+Retrieve an assistant
+
+## Permissions needed
+
+select (assistants):
+- id
+- assistantID
+
+
+## Arguments
+
+
+
+
+ ID of the assistant to retrieve
+
+
+
+
+## Response
+
+Type: `Assistant`
+
+
+
+
+
+
+
+ ID of the assistant
+
+
+
+ Name of the assistant
+
+
+
+ Description of the assistant
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+ Model to use for the assistant.
+
+
+
+ GraphQL data sources and tools. Run against the project's GraphQL API
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources and tools
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ URL of the webhook
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```graphql query
+query assistant (
+ $assistantID: String!
+) {
+ graphite {
+ assistant (
+ assistantID: $assistantID
+ ) {
+ assistantID
+ name
+ description
+ instructions
+ model
+ graphql {
+ name
+ description
+ query
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ webhooks {
+ name
+ description
+ URL
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "assistantID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "assistant": {
+ "assistantID": "string",
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/query/assistants.mdx b/docs/reference/graphql/ai/query/assistants.mdx
new file mode 100644
index 0000000000..e445925b15
--- /dev/null
+++ b/docs/reference/graphql/ai/query/assistants.mdx
@@ -0,0 +1,234 @@
+---
+title: assistants
+---
+
+```graphql
+assistants: [Assistant!]!
+```
+
+Retrieve all assistants
+
+## Permissions needed
+
+select (assistants):
+- id
+- assistant_id
+
+
+
+## Response
+
+Type: `[Assistant!]!`
+
+
+
+
+
+
+
+ ID of the assistant
+
+
+
+ Name of the assistant
+
+
+
+ Description of the assistant
+
+
+
+ Instructions for the assistant. This is used to instruct the AI assistant
+on how to behave and respond to the user
+
+
+
+ Model to use for the assistant.
+
+
+
+ GraphQL data sources and tools. Run against the project's GraphQL API
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ GraphQL query to run against the project's GraphQL API.
+
+
+
+ Arguments to pass to the GraphQL query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Webhook data sources and tools
+
+
+
+
+
+ Name of the data source
+
+
+
+ Description of the data source
+
+
+
+ URL of the webhook
+
+
+
+ Arguments to pass to the webhook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```graphql query
+query assistants {
+ graphite {
+ assistants {
+ assistantID
+ name
+ description
+ instructions
+ model
+ graphql {
+ name
+ description
+ query
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ webhooks {
+ name
+ description
+ URL
+ arguments {
+ name
+ description
+ type
+ required
+ }
+ }
+ }
+ }
+}
+```
+
+```json variables
+{}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "assistants": [
+ {
+ "assistantID": "string",
+ "description": "string",
+ "graphql": [
+ {
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string",
+ "query": "string"
+ }
+ ],
+ "instructions": "string",
+ "model": "string",
+ "name": "string",
+ "webhooks": [
+ {
+ "URL": "string",
+ "arguments": [
+ {
+ "description": "string",
+ "name": "string",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "description": "string",
+ "name": "string"
+ }
+ ]
+ }
+ ]
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/query/session.mdx b/docs/reference/graphql/ai/query/session.mdx
new file mode 100644
index 0000000000..b32f4335fe
--- /dev/null
+++ b/docs/reference/graphql/ai/query/session.mdx
@@ -0,0 +1,100 @@
+---
+title: session
+---
+
+```graphql
+session {
+ sessionID: String!
+}: Session
+```
+
+Retrieve a session
+
+## Permissions needed
+
+select (sessions):
+- id
+- assistant_id
+- session_id
+- user_id
+
+
+## Arguments
+
+
+
+
+ ID of the session to retrieve
+
+
+
+
+## Response
+
+Type: `Session`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ ID of the assistant used in this session
+
+
+
+ ID of the user who started this session
+
+
+
+ Messages in this session
+
+
+
+
+
+
+```graphql query
+query session (
+ $sessionID: String!
+) {
+ graphite {
+ session (
+ sessionID: $sessionID
+ ) {
+ sessionID
+ assistantID
+ userID
+ createdAt
+ }
+ }
+}
+```
+
+```json variables
+{
+ "sessionID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "session": {
+ "assistantID": "string",
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "sessionID": "string",
+ "userID": "61809D37-DA3F-4EFC-A324-EB181F38DD85"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/query/sessionMessages.mdx b/docs/reference/graphql/ai/query/sessionMessages.mdx
new file mode 100644
index 0000000000..0e8cc60ee0
--- /dev/null
+++ b/docs/reference/graphql/ai/query/sessionMessages.mdx
@@ -0,0 +1,121 @@
+---
+title: sessionMessages
+---
+
+```graphql
+sessionMessages {
+ sessionID: String!
+}: MessageResponse
+```
+
+Retrieve all messages for a session
+
+## Permissions needed
+
+select (sessions):
+- id
+- assistant_id
+- session_id
+- user_id
+
+
+## Arguments
+
+
+
+
+ ID of the session to retrieve messages for
+
+
+
+
+## Response
+
+Type: `MessageResponse`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ Messages in this session
+
+
+
+
+
+ ID of the message
+
+
+
+ Role of the message. Either "user" or "assistant"
+
+
+
+ Message content
+
+
+
+ Timestamp of when the message was sent
+
+
+
+
+
+
+
+
+
+```graphql query
+query sessionMessages (
+ $sessionID: String!
+) {
+ graphite {
+ sessionMessages (
+ sessionID: $sessionID
+ ) {
+ sessionID
+ messages {
+ id
+ role
+ message
+ createdAt
+ }
+ }
+ }
+}
+```
+
+```json variables
+{
+ "sessionID": "string"
+}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sessionMessages": {
+ "messages": [
+ {
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "id": "string",
+ "message": "string",
+ "role": "string"
+ }
+ ],
+ "sessionID": "string"
+ }
+ }
+ }
+}
+```
+
diff --git a/docs/reference/graphql/ai/query/sessions.mdx b/docs/reference/graphql/ai/query/sessions.mdx
new file mode 100644
index 0000000000..3ed5c335b5
--- /dev/null
+++ b/docs/reference/graphql/ai/query/sessions.mdx
@@ -0,0 +1,85 @@
+---
+title: sessions
+---
+
+```graphql
+sessions: [Session!]!
+```
+
+Retrieve all sessions
+
+## Permissions needed
+
+select (sessions):
+- id
+- assistant_id
+- session_id
+- user_id
+
+
+
+## Response
+
+Type: `[Session!]!`
+
+
+
+
+
+
+
+ ID of the session
+
+
+
+ ID of the assistant used in this session
+
+
+
+ ID of the user who started this session
+
+
+
+ Messages in this session
+
+
+
+
+
+
+```graphql query
+query sessions {
+ graphite {
+ sessions {
+ sessionID
+ assistantID
+ userID
+ createdAt
+ }
+ }
+}
+```
+
+```json variables
+{}
+```
+
+
+
+```json
+{
+ "data": {
+ "graphite": {
+ "sessions": [
+ {
+ "assistantID": "string",
+ "createdAt": "2023-12-14T07:45:15.20353+00:00",
+ "sessionID": "string",
+ "userID": "61809D37-DA3F-4EFC-A324-EB181F38DD85"
+ }
+ ]
+ }
+ }
+}
+```
+
diff --git a/docs/reference/javascript/auth/02-activate-mfa-promise.mdx b/docs/reference/javascript/auth/02-activate-mfa-promise.mdx
new file mode 100644
index 0000000000..d703edfc67
--- /dev/null
+++ b/docs/reference/javascript/auth/02-activate-mfa-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: activateMfaPromise()
+sidebarTitle: activateMfaPromise()
+---
+
+## Parameters
+
+---
+
+**service ** required Interpreter<EnableMfaContext, any, { type: "GENERATE" } | { type: "ACTIVATE", code: string, activeMfaType: "totp" } | { type: "GENERATED" } | { type: "GENERATED_ERROR", error: null | AuthErrorPayload } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: EnableMfaContext }, ResolveTypegenMeta<Typegen0, { type: "GENERATE" } | { type: "ACTIVATE", code: string, activeMfaType: "totp" } | { type: "GENERATED" } | { type: "GENERATED_ERROR", error: null | AuthErrorPayload } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, ServiceMap>>
+
+---
+
+**code ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-add-security-key-promise.mdx b/docs/reference/javascript/auth/02-add-security-key-promise.mdx
new file mode 100644
index 0000000000..6412a31b0e
--- /dev/null
+++ b/docs/reference/javascript/auth/02-add-security-key-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: addSecurityKeyPromise()
+sidebarTitle: addSecurityKeyPromise()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
+
+**nickname ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/02-change-email-promise.mdx b/docs/reference/javascript/auth/02-change-email-promise.mdx
new file mode 100644
index 0000000000..56fd67cebb
--- /dev/null
+++ b/docs/reference/javascript/auth/02-change-email-promise.mdx
@@ -0,0 +1,24 @@
+---
+title: changeEmailPromise()
+sidebarTitle: changeEmailPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<ChangeEmailContext, any, { type: "REQUEST", email: string, options: ChangeEmailOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: ChangeEmailContext }, ResolveTypegenMeta<Typegen0, { type: "REQUEST", email: string, options: ChangeEmailOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, ChangeEmailServices>>
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`ChangeEmailOptions`](/reference/javascript/auth/types/change-email-options)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/02-change-password-promise.mdx b/docs/reference/javascript/auth/02-change-password-promise.mdx
new file mode 100644
index 0000000000..78500c5d20
--- /dev/null
+++ b/docs/reference/javascript/auth/02-change-password-promise.mdx
@@ -0,0 +1,20 @@
+---
+title: changePasswordPromise()
+sidebarTitle: changePasswordPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<ChangePasswordContext, any, { type: "REQUEST", password: string, ticket: string } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: ChangePasswordContext }, ResolveTypegenMeta<Typegen0, { type: "REQUEST", password: string, ticket: string } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, ChangePasswordServices>>
+
+---
+
+**password ** required string
+
+---
+
+**ticket ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/02-create-auth-machine.mdx b/docs/reference/javascript/auth/02-create-auth-machine.mdx
new file mode 100644
index 0000000000..b4ec7bd3cf
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-auth-machine.mdx
@@ -0,0 +1,23 @@
+---
+title: createAuthMachine()
+sidebarTitle: createAuthMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`AuthMachineOptions`](/reference/javascript/auth/types/auth-machine-options)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------- |
+| \_\_namedParameters. clientUrl | string
| ✔️ | |
+| \_\_namedParameters. backendUrl | string
| ✔️ | |
+| \_\_namedParameters. devTools | boolean
| | Activate devTools e.g. the ability to connect to the xstate inspector |
+| \_\_namedParameters. autoSignIn | boolean
| | When set to true, will parse the url on startup to check if it contains a refresh token to start the session with |
+| \_\_namedParameters. autoRefreshToken | boolean
| | When set to true, will automatically refresh token before it expires |
+| \_\_namedParameters. clientStorage | [`ClientStorage`](/reference/javascript/auth/types/client-storage) | | Object where the refresh token will be persisted and read locally. |
+| \_\_namedParameters. clientStorageType | [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type) | | Define a way to get information about the refresh token and its exipration date. |
+| \_\_namedParameters. refreshIntervalTime | number
| | Time interval until token refreshes, in seconds |
+
+---
diff --git a/docs/reference/javascript/auth/02-create-change-email-machine.mdx b/docs/reference/javascript/auth/02-create-change-email-machine.mdx
new file mode 100644
index 0000000000..b77e8049cf
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-change-email-machine.mdx
@@ -0,0 +1,12 @@
+---
+title: createChangeEmailMachine()
+sidebarTitle: createChangeEmailMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
diff --git a/docs/reference/javascript/auth/02-create-change-password-machine.mdx b/docs/reference/javascript/auth/02-create-change-password-machine.mdx
new file mode 100644
index 0000000000..e0537771d6
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-change-password-machine.mdx
@@ -0,0 +1,12 @@
+---
+title: createChangePasswordMachine()
+sidebarTitle: createChangePasswordMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
diff --git a/docs/reference/javascript/auth/02-create-enable-mfa-machine.mdx b/docs/reference/javascript/auth/02-create-enable-mfa-machine.mdx
new file mode 100644
index 0000000000..c4efb4b37d
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-enable-mfa-machine.mdx
@@ -0,0 +1,12 @@
+---
+title: createEnableMfaMachine()
+sidebarTitle: createEnableMfaMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
diff --git a/docs/reference/javascript/auth/02-create-reset-password-machine.mdx b/docs/reference/javascript/auth/02-create-reset-password-machine.mdx
new file mode 100644
index 0000000000..2f521c3529
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-reset-password-machine.mdx
@@ -0,0 +1,12 @@
+---
+title: createResetPasswordMachine()
+sidebarTitle: createResetPasswordMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
diff --git a/docs/reference/javascript/auth/02-create-send-verification-email-machine.mdx b/docs/reference/javascript/auth/02-create-send-verification-email-machine.mdx
new file mode 100644
index 0000000000..b6d07e3dfb
--- /dev/null
+++ b/docs/reference/javascript/auth/02-create-send-verification-email-machine.mdx
@@ -0,0 +1,12 @@
+---
+title: createSendVerificationEmailMachine()
+sidebarTitle: createSendVerificationEmailMachine()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required AuthClient
+
+---
diff --git a/docs/reference/javascript/auth/02-encode-query-parameters.mdx b/docs/reference/javascript/auth/02-encode-query-parameters.mdx
new file mode 100644
index 0000000000..6184b3dbbd
--- /dev/null
+++ b/docs/reference/javascript/auth/02-encode-query-parameters.mdx
@@ -0,0 +1,16 @@
+---
+title: encodeQueryParameters()
+sidebarTitle: encodeQueryParameters()
+---
+
+## Parameters
+
+---
+
+**baseUrl ** required string
+
+---
+
+**parameters ** optional Record<string, unknown>
+
+---
diff --git a/docs/reference/javascript/auth/02-generate-qr-code-promise.mdx b/docs/reference/javascript/auth/02-generate-qr-code-promise.mdx
new file mode 100644
index 0000000000..41915fece7
--- /dev/null
+++ b/docs/reference/javascript/auth/02-generate-qr-code-promise.mdx
@@ -0,0 +1,12 @@
+---
+title: generateQrCodePromise()
+sidebarTitle: generateQrCodePromise()
+---
+
+## Parameters
+
+---
+
+**service ** required Interpreter<EnableMfaContext, any, { type: "GENERATE" } | { type: "ACTIVATE", code: string, activeMfaType: "totp" } | { type: "GENERATED" } | { type: "GENERATED_ERROR", error: null | AuthErrorPayload } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: EnableMfaContext }, ResolveTypegenMeta<Typegen0, { type: "GENERATE" } | { type: "ACTIVATE", code: string, activeMfaType: "totp" } | { type: "GENERATED" } | { type: "GENERATED_ERROR", error: null | AuthErrorPayload } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/javascript/auth/02-get-authentication-result.mdx b/docs/reference/javascript/auth/02-get-authentication-result.mdx
new file mode 100644
index 0000000000..323020caa4
--- /dev/null
+++ b/docs/reference/javascript/auth/02-get-authentication-result.mdx
@@ -0,0 +1,21 @@
+---
+title: getAuthenticationResult()
+sidebarTitle: getAuthenticationResult()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`SessionActionHandlerResult`](/reference/javascript/auth/types/session-action-handler-result)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- | :------: | :------------------------------------------ |
+| \_\_namedParameters. refreshToken | null | string
| ✔️ | Access token (JWT) |
+| \_\_namedParameters. accessToken | null | string
| ✔️ | Access token (JWT) |
+| \_\_namedParameters. user | null | [`User`](/reference/javascript/auth/types/user)
| ✔️ | User information |
+| \_\_namedParameters. isSuccess | boolean
| ✔️ | Returns `true` if the action is successful. |
+| \_\_namedParameters. error | null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
| ✔️ | Provides details about the error |
+| \_\_namedParameters. isError | boolean
| ✔️ | |
+
+---
diff --git a/docs/reference/javascript/auth/02-get-fetch.mdx b/docs/reference/javascript/auth/02-get-fetch.mdx
new file mode 100644
index 0000000000..3d8df0f15c
--- /dev/null
+++ b/docs/reference/javascript/auth/02-get-fetch.mdx
@@ -0,0 +1,16 @@
+---
+title: getFetch()
+sidebarTitle: getFetch()
+---
+
+## Parameters
+
+---
+
+**url ** required string
+
+---
+
+**token ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-get-parameter-by-name.mdx b/docs/reference/javascript/auth/02-get-parameter-by-name.mdx
new file mode 100644
index 0000000000..1ffe7016c0
--- /dev/null
+++ b/docs/reference/javascript/auth/02-get-parameter-by-name.mdx
@@ -0,0 +1,16 @@
+---
+title: getParameterByName()
+sidebarTitle: getParameterByName()
+---
+
+## Parameters
+
+---
+
+**name ** required string
+
+---
+
+**url ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/02-get-session.mdx b/docs/reference/javascript/auth/02-get-session.mdx
new file mode 100644
index 0000000000..e1ed943ef4
--- /dev/null
+++ b/docs/reference/javascript/auth/02-get-session.mdx
@@ -0,0 +1,22 @@
+---
+title: getSession()
+sidebarTitle: getSession()
+---
+
+## Parameters
+
+---
+
+**context ** optional [`AuthContext`](/reference/javascript/auth/types/auth-context)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------- | :------: | :------------------------------------------------------------------------------------------------- |
+| context. errors | Partial<Record<StateErrorTypes, AuthErrorPayload>>
| ✔️ | |
+| context. importTokenAttempts | number
| ✔️ | Number of times the user tried to get an access token from a refresh token but got a network error |
+| context. refreshToken | { value: string | null, isPAT: boolean }
| ✔️ | |
+| context. refreshTimer | { startedAt: Date | null, attempts: number, lastAttempt: Date | null }
| ✔️ | |
+| context. accessToken | { value: string | null, expiresAt: Date | null, expiresInSeconds: number | null }
| ✔️ | |
+| context. mfa | { ticket: string } | null
| ✔️ | |
+| context. user | [`User`](/reference/javascript/auth/types/user) | null
| ✔️ | |
+
+---
diff --git a/docs/reference/javascript/auth/02-is-browser.mdx b/docs/reference/javascript/auth/02-is-browser.mdx
new file mode 100644
index 0000000000..73b8136345
--- /dev/null
+++ b/docs/reference/javascript/auth/02-is-browser.mdx
@@ -0,0 +1,4 @@
+---
+title: isBrowser()
+sidebarTitle: isBrowser()
+---
diff --git a/docs/reference/javascript/auth/02-is-valid-email.mdx b/docs/reference/javascript/auth/02-is-valid-email.mdx
new file mode 100644
index 0000000000..a56631c4ee
--- /dev/null
+++ b/docs/reference/javascript/auth/02-is-valid-email.mdx
@@ -0,0 +1,12 @@
+---
+title: isValidEmail()
+sidebarTitle: isValidEmail()
+---
+
+## Parameters
+
+---
+
+**email ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-is-valid-password.mdx b/docs/reference/javascript/auth/02-is-valid-password.mdx
new file mode 100644
index 0000000000..337a7601f0
--- /dev/null
+++ b/docs/reference/javascript/auth/02-is-valid-password.mdx
@@ -0,0 +1,12 @@
+---
+title: isValidPassword()
+sidebarTitle: isValidPassword()
+---
+
+## Parameters
+
+---
+
+**password ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-is-valid-phone-number.mdx b/docs/reference/javascript/auth/02-is-valid-phone-number.mdx
new file mode 100644
index 0000000000..8c7568fdc2
--- /dev/null
+++ b/docs/reference/javascript/auth/02-is-valid-phone-number.mdx
@@ -0,0 +1,12 @@
+---
+title: isValidPhoneNumber()
+sidebarTitle: isValidPhoneNumber()
+---
+
+## Parameters
+
+---
+
+**phoneNumber ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-is-valid-ticket.mdx b/docs/reference/javascript/auth/02-is-valid-ticket.mdx
new file mode 100644
index 0000000000..db0141764a
--- /dev/null
+++ b/docs/reference/javascript/auth/02-is-valid-ticket.mdx
@@ -0,0 +1,12 @@
+---
+title: isValidTicket()
+sidebarTitle: isValidTicket()
+---
+
+## Parameters
+
+---
+
+**ticket ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-local-storage-getter.mdx b/docs/reference/javascript/auth/02-local-storage-getter.mdx
new file mode 100644
index 0000000000..520b2818b7
--- /dev/null
+++ b/docs/reference/javascript/auth/02-local-storage-getter.mdx
@@ -0,0 +1,30 @@
+---
+title: localStorageGetter()
+sidebarTitle: localStorageGetter()
+---
+
+## Parameters
+
+---
+
+**clientStorageType ** required [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type)
+
+---
+
+**clientStorage ** optional [`ClientStorage`](/reference/javascript/auth/types/client-storage)
+
+| Property | Type | Required | Notes |
+| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------: | :---- |
+| clientStorage. customSet | (key: string, value: null | string) => void | Promise<void>
| | |
+| clientStorage. customGet | (key: string) => null | string | Promise<null | string>
| | |
+| clientStorage. deleteItemAsync | (key: string) => void
| | |
+| clientStorage. getItemAsync | (key: string) => any
| | |
+| clientStorage. setItemAsync | (key: string, value: string) => void
| | |
+| clientStorage. remove | (options: { key: string }) => void
| | |
+| clientStorage. get | (options: { key: string }) => any
| | |
+| clientStorage. set | (options: { key: string, value: string }) => void
| | |
+| clientStorage. removeItem | (key: string) => void
| | |
+| clientStorage. getItem | (key: string) => any
| | |
+| clientStorage. setItem | (\_key: string, \_value: string) => void
| | |
+
+---
diff --git a/docs/reference/javascript/auth/02-local-storage-setter.mdx b/docs/reference/javascript/auth/02-local-storage-setter.mdx
new file mode 100644
index 0000000000..e440bcfffc
--- /dev/null
+++ b/docs/reference/javascript/auth/02-local-storage-setter.mdx
@@ -0,0 +1,30 @@
+---
+title: localStorageSetter()
+sidebarTitle: localStorageSetter()
+---
+
+## Parameters
+
+---
+
+**clientStorageType ** required [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type)
+
+---
+
+**clientStorage ** optional [`ClientStorage`](/reference/javascript/auth/types/client-storage)
+
+| Property | Type | Required | Notes |
+| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------: | :---- |
+| clientStorage. setItem | (\_key: string, \_value: string) => void
| | |
+| clientStorage. getItem | (key: string) => any
| | |
+| clientStorage. removeItem | (key: string) => void
| | |
+| clientStorage. set | (options: { key: string, value: string }) => void
| | |
+| clientStorage. get | (options: { key: string }) => any
| | |
+| clientStorage. remove | (options: { key: string }) => void
| | |
+| clientStorage. setItemAsync | (key: string, value: string) => void
| | |
+| clientStorage. getItemAsync | (key: string) => any
| | |
+| clientStorage. deleteItemAsync | (key: string) => void
| | |
+| clientStorage. customGet | (key: string) => null | string | Promise<null | string>
| | |
+| clientStorage. customSet | (key: string, value: null | string) => void | Promise<void>
| | |
+
+---
diff --git a/docs/reference/javascript/auth/02-post-fetch.mdx b/docs/reference/javascript/auth/02-post-fetch.mdx
new file mode 100644
index 0000000000..8edd22c889
--- /dev/null
+++ b/docs/reference/javascript/auth/02-post-fetch.mdx
@@ -0,0 +1,20 @@
+---
+title: postFetch()
+sidebarTitle: postFetch()
+---
+
+## Parameters
+
+---
+
+**url ** required string
+
+---
+
+**body ** required any
+
+---
+
+**token ** optional null | string
+
+---
diff --git a/docs/reference/javascript/auth/02-remove-parameter-from-window.mdx b/docs/reference/javascript/auth/02-remove-parameter-from-window.mdx
new file mode 100644
index 0000000000..a8350e8e48
--- /dev/null
+++ b/docs/reference/javascript/auth/02-remove-parameter-from-window.mdx
@@ -0,0 +1,12 @@
+---
+title: removeParameterFromWindow()
+sidebarTitle: removeParameterFromWindow()
+---
+
+## Parameters
+
+---
+
+**name ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-reset-password-promise.mdx b/docs/reference/javascript/auth/02-reset-password-promise.mdx
new file mode 100644
index 0000000000..ac10f9c8b3
--- /dev/null
+++ b/docs/reference/javascript/auth/02-reset-password-promise.mdx
@@ -0,0 +1,24 @@
+---
+title: resetPasswordPromise()
+sidebarTitle: resetPasswordPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<ResetPasswordContext, any, { type: "REQUEST", email: string, options: ResetPasswordOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: ResetPasswordContext }, ResolveTypegenMeta<Typegen0, { type: "REQUEST", email: string, options: ResetPasswordOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, ResetPasswordServices>>
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`ResetPasswordOptions`](/reference/javascript/auth/types/reset-password-options)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/02-rewrite-redirect-to.mdx b/docs/reference/javascript/auth/02-rewrite-redirect-to.mdx
new file mode 100644
index 0000000000..b8182cec36
--- /dev/null
+++ b/docs/reference/javascript/auth/02-rewrite-redirect-to.mdx
@@ -0,0 +1,25 @@
+---
+title: rewriteRedirectTo()
+sidebarTitle: rewriteRedirectTo()
+---
+
+Transform options that include a redirectTo property so the
+redirect url is absolute, given a base clientUrl.
+If no client url is given, any relative redirectUrl is removed while
+the other options are sent as-is.
+
+**`@returns`**
+
+## Parameters
+
+---
+
+**clientUrl ** optional string
+
+base client url
+
+---
+
+**options ** optional T
+
+---
diff --git a/docs/reference/javascript/auth/02-send-verification-email-promise.mdx b/docs/reference/javascript/auth/02-send-verification-email-promise.mdx
new file mode 100644
index 0000000000..27c6ebd238
--- /dev/null
+++ b/docs/reference/javascript/auth/02-send-verification-email-promise.mdx
@@ -0,0 +1,24 @@
+---
+title: sendVerificationEmailPromise()
+sidebarTitle: sendVerificationEmailPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<SendVerificationEmailContext, any, { type: "REQUEST", email: string, options: SendVerificationEmailOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, { value: any, context: SendVerificationEmailContext }, ResolveTypegenMeta<Typegen0, { type: "REQUEST", email: string, options: SendVerificationEmailOptions } | { type: "SUCCESS" } | { type: "ERROR", error: null | AuthErrorPayload }, BaseActionObject, SendVerificationEmailServices>>
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`SendVerificationEmailOptions`](/reference/javascript/auth/types/send-verification-email-options)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-anonymous-promise.mdx b/docs/reference/javascript/auth/02-sign-in-anonymous-promise.mdx
new file mode 100644
index 0000000000..dfd43e7f36
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-anonymous-promise.mdx
@@ -0,0 +1,12 @@
+---
+title: signInAnonymousPromise()
+sidebarTitle: signInAnonymousPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-email-password-promise.mdx b/docs/reference/javascript/auth/02-sign-in-email-password-promise.mdx
new file mode 100644
index 0000000000..95dcdf99ca
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-email-password-promise.mdx
@@ -0,0 +1,20 @@
+---
+title: signInEmailPasswordPromise()
+sidebarTitle: signInEmailPasswordPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**email ** required string
+
+---
+
+**password ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-email-passwordless-promise.mdx b/docs/reference/javascript/auth/02-sign-in-email-passwordless-promise.mdx
new file mode 100644
index 0000000000..c64cacc854
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-email-passwordless-promise.mdx
@@ -0,0 +1,29 @@
+---
+title: signInEmailPasswordlessPromise()
+sidebarTitle: signInEmailPasswordlessPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`PasswordlessOptions`](/reference/javascript/auth/types/passwordless-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. locale | string
| | Locale of the user, in two digits |
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-email-security-key-promise.mdx b/docs/reference/javascript/auth/02-sign-in-email-security-key-promise.mdx
new file mode 100644
index 0000000000..9c3411ccd8
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-email-security-key-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: signInEmailSecurityKeyPromise()
+sidebarTitle: signInEmailSecurityKeyPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**email ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-mfa-totp-promise.mdx b/docs/reference/javascript/auth/02-sign-in-mfa-totp-promise.mdx
new file mode 100644
index 0000000000..08409223e1
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-mfa-totp-promise.mdx
@@ -0,0 +1,20 @@
+---
+title: signInMfaTotpPromise()
+sidebarTitle: signInMfaTotpPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**otp ** required string
+
+---
+
+**ticket ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-pat-promise.mdx b/docs/reference/javascript/auth/02-sign-in-pat-promise.mdx
new file mode 100644
index 0000000000..1baa3a5c50
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-pat-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: signInPATPromise()
+sidebarTitle: signInPATPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**pat ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-sms-passwordless-otp-promise.mdx b/docs/reference/javascript/auth/02-sign-in-sms-passwordless-otp-promise.mdx
new file mode 100644
index 0000000000..7fe4d8eadb
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-sms-passwordless-otp-promise.mdx
@@ -0,0 +1,20 @@
+---
+title: signInSmsPasswordlessOtpPromise()
+sidebarTitle: signInSmsPasswordlessOtpPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**phoneNumber ** required string
+
+---
+
+**otp ** required string
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-in-sms-passwordless-promise.mdx b/docs/reference/javascript/auth/02-sign-in-sms-passwordless-promise.mdx
new file mode 100644
index 0000000000..050b787237
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-in-sms-passwordless-promise.mdx
@@ -0,0 +1,29 @@
+---
+title: signInSmsPasswordlessPromise()
+sidebarTitle: signInSmsPasswordlessPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**phoneNumber ** required string
+
+---
+
+**options ** optional [`PasswordlessOptions`](/reference/javascript/auth/types/passwordless-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. locale | string
| | Locale of the user, in two digits |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-out-promise.mdx b/docs/reference/javascript/auth/02-sign-out-promise.mdx
new file mode 100644
index 0000000000..7b485cdcac
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-out-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: signOutPromise()
+sidebarTitle: signOutPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**all ** optional boolean
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-up-email-password-promise.mdx b/docs/reference/javascript/auth/02-sign-up-email-password-promise.mdx
new file mode 100644
index 0000000000..0b52b792e2
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-up-email-password-promise.mdx
@@ -0,0 +1,33 @@
+---
+title: signUpEmailPasswordPromise()
+sidebarTitle: signUpEmailPasswordPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**email ** required string
+
+---
+
+**password ** required string
+
+---
+
+**options ** optional [`SignUpOptions`](/reference/javascript/auth/types/sign-up-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. locale | string
| | Locale of the user, in two digits |
+
+---
diff --git a/docs/reference/javascript/auth/02-sign-up-email-security-key-promise.mdx b/docs/reference/javascript/auth/02-sign-up-email-security-key-promise.mdx
new file mode 100644
index 0000000000..851726e668
--- /dev/null
+++ b/docs/reference/javascript/auth/02-sign-up-email-security-key-promise.mdx
@@ -0,0 +1,30 @@
+---
+title: signUpEmailSecurityKeyPromise()
+sidebarTitle: signUpEmailSecurityKeyPromise()
+---
+
+## Parameters
+
+---
+
+**interpreter ** required Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`SignUpSecurityKeyOptions`](/reference/javascript/auth/types/sign-up-security-key-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. nickname | string
| | Optional nickname for the security key |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. locale | string
| | Locale of the user, in two digits |
+
+---
diff --git a/docs/reference/javascript/auth/add-security-key.mdx b/docs/reference/javascript/auth/add-security-key.mdx
new file mode 100644
index 0000000000..673355a32a
--- /dev/null
+++ b/docs/reference/javascript/auth/add-security-key.mdx
@@ -0,0 +1,16 @@
+---
+title: addSecurityKey()
+sidebarTitle: addSecurityKey()
+---
+
+Use `nhost.auth.addSecurityKey` to add a security key to the user, using the WebAuthn API.
+
+## Parameters
+
+---
+
+**nickname ** optional string
+
+optional human-readable nickname for the security key
+
+---
diff --git a/docs/reference/javascript/auth/auth-cookie-client.mdx b/docs/reference/javascript/auth/auth-cookie-client.mdx
new file mode 100644
index 0000000000..5147698f1f
--- /dev/null
+++ b/docs/reference/javascript/auth/auth-cookie-client.mdx
@@ -0,0 +1,19 @@
+---
+title: AuthCookieClient
+sidebarTitle: AuthCookieClient
+description: No description provided.
+---
+
+# `AuthCookieClient`
+
+:::caution Deprecated
+Not in use anymore. Use `clientStorageType: 'cookie'` instead
+:::
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required Omit<NhostClientOptions, "clientStorageType" | "clientStorage" | "clientStorageGetter" | "clientStorageSetter">
+
+---
diff --git a/docs/reference/javascript/auth/change-email.mdx b/docs/reference/javascript/auth/change-email.mdx
new file mode 100644
index 0000000000..29be26f4fe
--- /dev/null
+++ b/docs/reference/javascript/auth/change-email.mdx
@@ -0,0 +1,23 @@
+---
+title: changeEmail()
+sidebarTitle: changeEmail()
+---
+
+Use `nhost.auth.changeEmail` to change a user's email. This will send a confirm-email-change link in an email to the new email. Once the user clicks on the confirm-email-change link the email will be change to the new email.
+
+```ts
+nhost.auth.changeEmail({ newEmail: 'doe@example.com' })
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`ChangeEmailParams`](/reference/javascript/auth/types/change-email-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- | :------: | :---- |
+| \_\_namedParameters. newEmail | string
| ✔️ | |
+| \_\_namedParameters. options | [`RedirectOption`](/reference/javascript/auth/types/redirect-option) | | |
+
+---
diff --git a/docs/reference/javascript/auth/change-password.mdx b/docs/reference/javascript/auth/change-password.mdx
new file mode 100644
index 0000000000..c936b585f6
--- /dev/null
+++ b/docs/reference/javascript/auth/change-password.mdx
@@ -0,0 +1,23 @@
+---
+title: changePassword()
+sidebarTitle: changePassword()
+---
+
+Use `nhost.auth.changePassword` to change the password for the signed-in user. The old password is not needed. In case the user is not signed-in, a password reset ticket needs to be provided.
+
+```ts
+nhost.auth.changePassword({ newPassword: 'new-secret-password' })
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`ChangePasswordParams`](/reference/javascript/auth/types/change-password-params)
+
+| Property | Type | Required | Notes |
+| :---------------------------------------------------------------------------------------------------------- | :------------------ | :------: | :---- |
+| \_\_namedParameters. newPassword | string
| ✔️ | |
+| \_\_namedParameters. ticket | string
| | |
+
+---
diff --git a/docs/reference/javascript/auth/create-pat.mdx b/docs/reference/javascript/auth/create-pat.mdx
new file mode 100644
index 0000000000..271d84772e
--- /dev/null
+++ b/docs/reference/javascript/auth/create-pat.mdx
@@ -0,0 +1,22 @@
+---
+title: createPAT()
+sidebarTitle: createPAT()
+---
+
+Use `nhost.auth.createPAT` to create a personal access token for the user.
+
+## Parameters
+
+---
+
+**expiresAt ** required Date
+
+Expiration date for the token
+
+---
+
+**metadata ** optional Record<string, string | number>
+
+Optional metadata to store with the token
+
+---
diff --git a/docs/reference/javascript/auth/deanonymize.mdx b/docs/reference/javascript/auth/deanonymize.mdx
new file mode 100644
index 0000000000..caf4e3cd4d
--- /dev/null
+++ b/docs/reference/javascript/auth/deanonymize.mdx
@@ -0,0 +1,21 @@
+---
+title: deanonymize()
+sidebarTitle: deanonymize()
+---
+
+Use `nhost.auth.deanonymize` to deanonymize a user.
+
+```ts
+nhost.auth.deanonymize({
+ signInMethod: 'email-password',
+ email: 'joe@example.com'
+})
+```
+
+## Parameters
+
+---
+
+**params ** required [`DeanonymizeParams`](/reference/javascript/auth/types/deanonymize-params)
+
+---
diff --git a/docs/reference/javascript/auth/get-access-token.mdx b/docs/reference/javascript/auth/get-access-token.mdx
new file mode 100644
index 0000000000..c802811795
--- /dev/null
+++ b/docs/reference/javascript/auth/get-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: getAccessToken()
+sidebarTitle: getAccessToken()
+---
+
+Use `nhost.auth.getAccessToken` to get the access token of the user.
+
+```ts
+const accessToken = nhost.auth.getAccessToken()
+```
diff --git a/docs/reference/javascript/auth/get-authentication-status.mdx b/docs/reference/javascript/auth/get-authentication-status.mdx
new file mode 100644
index 0000000000..56230c0001
--- /dev/null
+++ b/docs/reference/javascript/auth/get-authentication-status.mdx
@@ -0,0 +1,23 @@
+---
+title: getAuthenticationStatus()
+sidebarTitle: getAuthenticationStatus()
+---
+
+Use `nhost.auth.getAuthenticationStatus` to get the authentication status of the user.
+
+If `isLoading` is `true`, the client doesn't know whether the user is authenticated yet or not
+because some internal authentication network requests have not been resolved yet.
+
+The `connectionAttempts` returns the number of times the client has tried to connect to the server with no success (offline, or the server retruned an internal error).
+
+```ts
+const { isAuthenticated, isLoading } = nhost.auth.getAuthenticationStatus()
+
+if (isLoading) {
+ console.log('Loading...')
+}
+
+if (isAuthenticated) {
+ console.log('User is authenticated')
+}
+```
diff --git a/docs/reference/javascript/auth/get-decoded-access-token.mdx b/docs/reference/javascript/auth/get-decoded-access-token.mdx
new file mode 100644
index 0000000000..cee3a9148e
--- /dev/null
+++ b/docs/reference/javascript/auth/get-decoded-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: getDecodedAccessToken()
+sidebarTitle: getDecodedAccessToken()
+---
+
+Use `nhost.auth.getDecodedAccessToken` to get the decoded access token of the user.
+
+```ts
+const decodedAccessToken = nhost.auth.getDecodedAccessToken()
+```
diff --git a/docs/reference/javascript/auth/get-hasura-claim.mdx b/docs/reference/javascript/auth/get-hasura-claim.mdx
new file mode 100644
index 0000000000..42baffa09d
--- /dev/null
+++ b/docs/reference/javascript/auth/get-hasura-claim.mdx
@@ -0,0 +1,21 @@
+---
+title: getHasuraClaim()
+sidebarTitle: getHasuraClaim()
+---
+
+Use `nhost.auth.getHasuraClaim` to get the value of a specific Hasura claim of the user.
+
+```ts
+// if `x-hasura-company-id` exists as a custom claim
+const companyId = nhost.auth.getHsauraClaim('company-id')
+```
+
+## Parameters
+
+---
+
+**name ** required string
+
+Name of the variable. You don't have to specify `x-hasura-`.
+
+---
diff --git a/docs/reference/javascript/auth/get-hasura-claims.mdx b/docs/reference/javascript/auth/get-hasura-claims.mdx
new file mode 100644
index 0000000000..05a753c0ef
--- /dev/null
+++ b/docs/reference/javascript/auth/get-hasura-claims.mdx
@@ -0,0 +1,10 @@
+---
+title: getHasuraClaims()
+sidebarTitle: getHasuraClaims()
+---
+
+Use `nhost.auth.getHasuraClaims` to get the Hasura claims of the user.
+
+```ts
+const hasuraClaims = nhost.auth.getHasuraClaims()
+```
diff --git a/docs/reference/javascript/auth/get-session.mdx b/docs/reference/javascript/auth/get-session.mdx
new file mode 100644
index 0000000000..bbd93e7283
--- /dev/null
+++ b/docs/reference/javascript/auth/get-session.mdx
@@ -0,0 +1,10 @@
+---
+title: getSession()
+sidebarTitle: getSession()
+---
+
+Use `nhost.auth.getSession()` to get the session of the user.
+
+```ts
+const session = nhost.auth.getSession()
+```
diff --git a/docs/reference/javascript/auth/get-user.mdx b/docs/reference/javascript/auth/get-user.mdx
new file mode 100644
index 0000000000..e17f3673e3
--- /dev/null
+++ b/docs/reference/javascript/auth/get-user.mdx
@@ -0,0 +1,10 @@
+---
+title: getUser()
+sidebarTitle: getUser()
+---
+
+Use `nhost.auth.getUser()` to get the signed-in user.
+
+```ts
+const user = nhost.auth.getUser()
+```
diff --git a/docs/reference/javascript/auth/hasura-auth-client.mdx b/docs/reference/javascript/auth/hasura-auth-client.mdx
new file mode 100644
index 0000000000..73f83abb7d
--- /dev/null
+++ b/docs/reference/javascript/auth/hasura-auth-client.mdx
@@ -0,0 +1,26 @@
+---
+title: HasuraAuthClient
+sidebarTitle: Auth
+description: No description provided.
+---
+
+# `HasuraAuthClient`
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`NhostAuthConstructorParams`](/reference/javascript/auth/types/nhost-auth-constructor-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------- |
+| \_\_namedParameters. url | string
| ✔️ | |
+| \_\_namedParameters. devTools | boolean
| | Activate devTools e.g. the ability to connect to the xstate inspector |
+| \_\_namedParameters. autoSignIn | boolean
| | When set to true, will parse the url on startup to check if it contains a refresh token to start the session with |
+| \_\_namedParameters. autoRefreshToken | boolean
| | When set to true, will automatically refresh token before it expires |
+| \_\_namedParameters. clientStorage | [`ClientStorage`](/reference/javascript/auth/types/client-storage) | | Object where the refresh token will be persisted and read locally. |
+| \_\_namedParameters. clientStorageType | [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type) | | Define a way to get information about the refresh token and its exipration date. |
+| \_\_namedParameters. refreshIntervalTime | number
| | Time interval until token refreshes, in seconds |
+| \_\_namedParameters. start | boolean
| | |
+
+---
diff --git a/docs/reference/javascript/auth/is-authenticated-async.mdx b/docs/reference/javascript/auth/is-authenticated-async.mdx
new file mode 100644
index 0000000000..c67518993b
--- /dev/null
+++ b/docs/reference/javascript/auth/is-authenticated-async.mdx
@@ -0,0 +1,17 @@
+---
+title: isAuthenticatedAsync()
+sidebarTitle: isAuthenticatedAsync()
+---
+
+Use `nhost.auth.isAuthenticatedAsync` to wait (await) for any internal authentication network requests to finish and then return the authentication status.
+
+The promise won't resolve until the authentication status is known.
+Attention: when using auto-signin and a refresh token is present in the client storage, the promise won't resolve if the server can't be reached (e.g. offline) or if it returns an internal error.
+
+```ts
+const isAuthenticated = await nhost.auth.isAuthenticatedAsync()
+
+if (isAuthenticated) {
+ console.log('User is authenticated')
+}
+```
diff --git a/docs/reference/javascript/auth/is-authenticated.mdx b/docs/reference/javascript/auth/is-authenticated.mdx
new file mode 100644
index 0000000000..689b7a572a
--- /dev/null
+++ b/docs/reference/javascript/auth/is-authenticated.mdx
@@ -0,0 +1,21 @@
+---
+title: isAuthenticated()
+sidebarTitle: isAuthenticated()
+---
+
+Use `nhost.auth.isAuthenticated` to check if the user is authenticated or not.
+
+Note: `nhost.auth.isAuthenticated()` can return `false` for two reasons:
+
+1. The user is not authenticated
+2. The user is not authenticated but _might_ be authenticated soon (loading) because there is a network request in transit.
+
+Use `nhost.auth.getAuthenticationStatus` to get both authentication and loading status.
+
+```ts
+const isAuthenticated = nhost.auth.isAuthenticated()
+
+if (isAuthenticated) {
+ console.log('User is authenticated')
+}
+```
diff --git a/docs/reference/javascript/auth/on-auth-state-changed.mdx b/docs/reference/javascript/auth/on-auth-state-changed.mdx
new file mode 100644
index 0000000000..ad49014168
--- /dev/null
+++ b/docs/reference/javascript/auth/on-auth-state-changed.mdx
@@ -0,0 +1,22 @@
+---
+title: onAuthStateChanged()
+sidebarTitle: onAuthStateChanged()
+---
+
+Use `nhost.auth.onAuthStateChanged` to add a custom function that runs every time the authentication status of the user changes. E.g. add a custom function that runs every time the authentication status changes from signed-in to signed-out.
+
+```ts
+nhost.auth.onAuthStateChanged((event, session) => {
+ console.log(
+ `The auth state has changed. State is now ${event} with session: ${session}`
+ )
+})
+```
+
+## Parameters
+
+---
+
+**fn ** required [`AuthChangedFunction`](/reference/javascript/auth/types/auth-changed-function)
+
+---
diff --git a/docs/reference/javascript/auth/on-token-changed.mdx b/docs/reference/javascript/auth/on-token-changed.mdx
new file mode 100644
index 0000000000..fefd4c9985
--- /dev/null
+++ b/docs/reference/javascript/auth/on-token-changed.mdx
@@ -0,0 +1,20 @@
+---
+title: onTokenChanged()
+sidebarTitle: onTokenChanged()
+---
+
+Use `nhost.auth.onTokenChanged` to add a custom function that runs every time the access or refresh token is changed.
+
+```ts
+nhost.auth.onTokenChanged(() =>
+ console.log('The access and refresh token has changed')
+)
+```
+
+## Parameters
+
+---
+
+**fn ** required [`OnTokenChangedFunction`](/reference/javascript/auth/types/on-token-changed-function)
+
+---
diff --git a/docs/reference/javascript/auth/refresh-session.mdx b/docs/reference/javascript/auth/refresh-session.mdx
new file mode 100644
index 0000000000..c931ce2121
--- /dev/null
+++ b/docs/reference/javascript/auth/refresh-session.mdx
@@ -0,0 +1,24 @@
+---
+title: refreshSession()
+sidebarTitle: refreshSession()
+---
+
+Use `nhost.auth.refreshSession` to refresh the session with either the current internal refresh token or an external refresh token.
+
+Note: The Nhost client automatically refreshes the session when the user is authenticated but `nhost.auth.refreshSession` can be useful in some special cases.
+
+```ts
+// Refresh the session with the the current internal refresh token.
+nhost.auth.refreshToken()
+
+// Refresh the session with an external refresh token.
+nhost.auth.refreshToken(refreshToken)
+```
+
+## Parameters
+
+---
+
+**refreshToken ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/reset-password.mdx b/docs/reference/javascript/auth/reset-password.mdx
new file mode 100644
index 0000000000..240345d574
--- /dev/null
+++ b/docs/reference/javascript/auth/reset-password.mdx
@@ -0,0 +1,23 @@
+---
+title: resetPassword()
+sidebarTitle: resetPassword()
+---
+
+Use `nhost.auth.resetPassword` to reset the password for a user. This will send a reset-password link in an email to the user. When the user clicks the reset-password link the user is automatically signed-in. Once signed-in, the user can change their password using `nhost.auth.changePassword()`.
+
+```ts
+nhost.auth.resetPassword({ email: 'joe@example.com' })
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`ResetPasswordParams`](/reference/javascript/auth/types/reset-password-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------- | :------: | :---- |
+| \_\_namedParameters. email | string
| ✔️ | |
+| \_\_namedParameters. options | [`RedirectOption`](/reference/javascript/auth/types/redirect-option) | | |
+
+---
diff --git a/docs/reference/javascript/auth/send-verification-email.mdx b/docs/reference/javascript/auth/send-verification-email.mdx
new file mode 100644
index 0000000000..84b4305b83
--- /dev/null
+++ b/docs/reference/javascript/auth/send-verification-email.mdx
@@ -0,0 +1,23 @@
+---
+title: sendVerificationEmail()
+sidebarTitle: sendVerificationEmail()
+---
+
+Use `nhost.auth.sendVerificationEmail` to send a verification email to the specified email. The email contains a verification-email link. When the user clicks the verification-email link their email is verified.
+
+```ts
+nhost.auth.sendVerificationEmail({ email: 'joe@example.com' })
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`SendVerificationEmailParams`](/reference/javascript/auth/types/send-verification-email-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------- | :------: | :---- |
+| \_\_namedParameters. email | string
| ✔️ | |
+| \_\_namedParameters. options | [`RedirectOption`](/reference/javascript/auth/types/redirect-option) | | |
+
+---
diff --git a/docs/reference/javascript/auth/sign-in-pat.mdx b/docs/reference/javascript/auth/sign-in-pat.mdx
new file mode 100644
index 0000000000..31ad35ee21
--- /dev/null
+++ b/docs/reference/javascript/auth/sign-in-pat.mdx
@@ -0,0 +1,20 @@
+---
+title: signInPAT()
+sidebarTitle: signInPAT()
+---
+
+Use `nhost.auth.signInPAT` to sign in with a personal access token (PAT).
+
+```ts
+nhost.auth.signInPAT('34f74930-09c0-4af5-a8d5-28fad78e3415')
+```
+
+## Parameters
+
+---
+
+**personalAccessToken ** required string
+
+The personal access token to sign in with
+
+---
diff --git a/docs/reference/javascript/auth/sign-in.mdx b/docs/reference/javascript/auth/sign-in.mdx
new file mode 100644
index 0000000000..33baf86554
--- /dev/null
+++ b/docs/reference/javascript/auth/sign-in.mdx
@@ -0,0 +1,78 @@
+---
+title: signIn()
+sidebarTitle: signIn()
+---
+
+Use `nhost.auth.signIn` to sign in a user using email and password, passwordless (email or sms) or an external provider. `signIn` can be used to sign in a user in various ways depending on the parameters.
+
+```ts
+nhost.auth.signIn({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+## Parameters
+
+---
+
+**params ** optional [`SignInParams`](/reference/javascript/auth/types/sign-in-params)
+
+---
+
+## Examples
+
+### Sign in a user using email and password
+
+```ts
+nhost.auth.signIn({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+### Sign in a user using an OAuth provider (e.g: Google or Facebook)
+
+```ts
+nhost.auth.signIn({ provider: 'google' })
+```
+
+### Sign in a user using passwordless email (Magic Link)
+
+```ts
+nhost.auth.signIn({ email: 'joe@example.com' })
+```
+
+### Sign in a user using passwordless SMS
+
+```ts
+// [step 1/2] Passwordless sign in using SMS
+nhost.auth.signIn({ phoneNumber: '+11233213123' })
+
+// [step 2/2] Finish passwordless sign in using SMS (OTP)
+nhost.auth.signIn({ phoneNumber: '+11233213123', otp: '123456' })
+```
+
+### Sign in anonymously
+
+```ts
+// Sign in anonymously
+nhost.auth.signIn()
+
+// Later in the application, the user can complete their registration
+nhost.auth.signUp({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+### Sign in with a security key
+
+```ts
+nhost.auth.signIn({
+ email: 'joe@example.com',
+ securityKey: true
+})
+
+@docs https://docs.nhost.io/reference/javascript/auth/sign-in
+```
diff --git a/docs/reference/javascript/auth/sign-out.mdx b/docs/reference/javascript/auth/sign-out.mdx
new file mode 100644
index 0000000000..40ecc92929
--- /dev/null
+++ b/docs/reference/javascript/auth/sign-out.mdx
@@ -0,0 +1,32 @@
+---
+title: signOut()
+sidebarTitle: signOut()
+---
+
+Use `nhost.auth.signOut` to sign out the user.
+
+```ts
+nhost.auth.signOut()
+```
+
+## Parameters
+
+---
+
+**params ** optional { all: boolean }
+
+---
+
+## Examples
+
+### Sign out the user from current device
+
+```ts
+nhost.auth.signOut()
+```
+
+### Sign out the user from all devices
+
+```ts
+nhost.auth.signOut({ all: true })
+```
diff --git a/docs/reference/javascript/auth/sign-up.mdx b/docs/reference/javascript/auth/sign-up.mdx
new file mode 100644
index 0000000000..ad38e423e8
--- /dev/null
+++ b/docs/reference/javascript/auth/sign-up.mdx
@@ -0,0 +1,43 @@
+---
+title: signUp()
+sidebarTitle: signUp()
+---
+
+Use `nhost.auth.signUp` to sign up a user using email and password. If you want to sign up a user using passwordless email (Magic Link), SMS, or an OAuth provider, use the `signIn` function instead.
+
+```ts
+nhost.auth.signUp({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+## Parameters
+
+---
+
+**params ** required [`SignUpParams`](/reference/javascript/auth/types/sign-up-params)
+
+---
+
+## Examples
+
+### Sign up with an email and password
+
+```ts
+nhost.auth.signUp({
+ email: 'joe@example.com',
+ password: 'secret-password'
+})
+```
+
+### Sign up with a security key
+
+```ts
+nhost.auth.signUp({
+ email: 'joe@example.com',
+ securityKey: true
+})
+
+@docs https://docs.nhost.io/reference/javascript/auth/sign-up
+```
diff --git a/docs/reference/javascript/auth/start.mdx b/docs/reference/javascript/auth/start.mdx
new file mode 100644
index 0000000000..7c447ee166
--- /dev/null
+++ b/docs/reference/javascript/auth/start.mdx
@@ -0,0 +1,12 @@
+---
+title: start()
+sidebarTitle: start()
+---
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required { interpreter: Interpreter<AuthContext, any, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, { value: any, context: AuthContext }, ResolveTypegenMeta<Typegen0, { type: "SESSION_UPDATE", data: { session: NhostSession } } | { type: "TRY_TOKEN", token: string } | { type: "SIGNIN_ANONYMOUS" } | { type: "SIGNIN_PAT", pat: string } | { type: "SIGNIN_SECURITY_KEY_EMAIL", email: string } | { type: "SIGNIN_PASSWORD", email: string, password: string } | { type: "PASSWORDLESS_EMAIL", email: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS", phoneNumber: string, options: PasswordlessOptions } | { type: "PASSWORDLESS_SMS_OTP", phoneNumber: string, otp: string } | { type: "SIGNUP_EMAIL_PASSWORD", email: string, password: string, options: SignUpOptions } | { type: "SIGNUP_SECURITY_KEY", email: string, options: SignUpSecurityKeyOptions } | { type: "SIGNOUT", all: boolean } | { type: "SIGNIN_MFA_TOTP", ticket: string, otp: string } | { type: "SIGNED_IN" } | { type: "SIGNED_OUT" } | { type: "TOKEN_CHANGED" } | { type: "AWAIT_EMAIL_VERIFICATION" }, BaseActionObject, AuthServices>>, initialSession: [`NhostSession`](/reference/javascript/auth/types/nhost-session), devTools: boolean }
+
+---
diff --git a/docs/reference/javascript/auth/subscribe.mdx b/docs/reference/javascript/auth/subscribe.mdx
new file mode 100644
index 0000000000..c5d1ca90ca
--- /dev/null
+++ b/docs/reference/javascript/auth/subscribe.mdx
@@ -0,0 +1,12 @@
+---
+title: subscribe()
+sidebarTitle: subscribe()
+---
+
+## Parameters
+
+---
+
+**fn ** required (client: AuthClient) => () => void
+
+---
diff --git a/docs/reference/javascript/auth/types/_category_.json b/docs/reference/javascript/auth/types/_category_.json
new file mode 100644
index 0000000000..1d698630a3
--- /dev/null
+++ b/docs/reference/javascript/auth/types/_category_.json
@@ -0,0 +1,9 @@
+{
+ "label": "Types",
+ "position": 1,
+ "className": "hidden",
+ "link": {
+ "type": "generated-index",
+ "slug": "/reference/javascript/auth/types"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/javascript/auth/types/activate-mfa-handler-result.mdx b/docs/reference/javascript/auth/types/activate-mfa-handler-result.mdx
new file mode 100644
index 0000000000..f35a5b4cfe
--- /dev/null
+++ b/docs/reference/javascript/auth/types/activate-mfa-handler-result.mdx
@@ -0,0 +1,33 @@
+---
+title: ActivateMfaHandlerResult
+sidebarTitle: ActivateMfaHandlerResult
+description: No description provided.
+---
+
+# `ActivateMfaHandlerResult`
+
+## Parameters
+
+---
+
+**isActivated ** required boolean
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/activate-mfa-state.mdx b/docs/reference/javascript/auth/types/activate-mfa-state.mdx
new file mode 100644
index 0000000000..38dcb58631
--- /dev/null
+++ b/docs/reference/javascript/auth/types/activate-mfa-state.mdx
@@ -0,0 +1,37 @@
+---
+title: ActivateMfaState
+sidebarTitle: ActivateMfaState
+description: No description provided.
+---
+
+# `ActivateMfaState`
+
+## Parameters
+
+---
+
+**isActivated ** required boolean
+
+---
+
+**isActivating ** required boolean
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/add-security-key-handler-result.mdx b/docs/reference/javascript/auth/types/add-security-key-handler-result.mdx
new file mode 100644
index 0000000000..781f54ca9a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/add-security-key-handler-result.mdx
@@ -0,0 +1,44 @@
+---
+title: AddSecurityKeyHandlerResult
+sidebarTitle: AddSecurityKeyHandlerResult
+description: No description provided.
+---
+
+# `AddSecurityKeyHandlerResult`
+
+## Parameters
+
+---
+
+**key ** optional [`SecurityKey`](/reference/javascript/auth/types/security-key)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------- | :------------------ | :------: | :------------------------------------------- |
+| key. id | string
| ✔️ | Unique indentifier of the security key |
+| key. nickname | string
| | Human-readable nickname fof the security key |
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/add-security-key-state.mdx b/docs/reference/javascript/auth/types/add-security-key-state.mdx
new file mode 100644
index 0000000000..5fabc037da
--- /dev/null
+++ b/docs/reference/javascript/auth/types/add-security-key-state.mdx
@@ -0,0 +1,52 @@
+---
+title: AddSecurityKeyState
+sidebarTitle: AddSecurityKeyState
+description: No description provided.
+---
+
+# `AddSecurityKeyState`
+
+## Parameters
+
+---
+
+**key ** optional [`SecurityKey`](/reference/javascript/auth/types/security-key)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------- | :------------------ | :------: | :------------------------------------------- |
+| key. id | string
| ✔️ | Unique indentifier of the security key |
+| key. nickname | string
| | Human-readable nickname fof the security key |
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/auth-action-error-state.mdx b/docs/reference/javascript/auth/types/auth-action-error-state.mdx
new file mode 100644
index 0000000000..cf504a15e0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-action-error-state.mdx
@@ -0,0 +1,29 @@
+---
+title: AuthActionErrorState
+sidebarTitle: AuthActionErrorState
+description: No description provided.
+---
+
+# `AuthActionErrorState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/auth-action-loading-state.mdx b/docs/reference/javascript/auth/types/auth-action-loading-state.mdx
new file mode 100644
index 0000000000..a9d915db11
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-action-loading-state.mdx
@@ -0,0 +1,19 @@
+---
+title: AuthActionLoadingState
+sidebarTitle: AuthActionLoadingState
+description: No description provided.
+---
+
+# `AuthActionLoadingState`
+
+## Parameters
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
diff --git a/docs/reference/javascript/auth/types/auth-action-success-state.mdx b/docs/reference/javascript/auth/types/auth-action-success-state.mdx
new file mode 100644
index 0000000000..7467fb5933
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-action-success-state.mdx
@@ -0,0 +1,17 @@
+---
+title: AuthActionSuccessState
+sidebarTitle: AuthActionSuccessState
+description: No description provided.
+---
+
+# `AuthActionSuccessState`
+
+## Parameters
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/auth-change-event.mdx b/docs/reference/javascript/auth/types/auth-change-event.mdx
new file mode 100644
index 0000000000..b17cf574e2
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-change-event.mdx
@@ -0,0 +1,11 @@
+---
+title: AuthChangeEvent
+sidebarTitle: AuthChangeEvent
+description: No description provided.
+---
+
+# `AuthChangeEvent`
+
+```ts
+type AuthChangeEvent = 'SIGNED_IN' | 'SIGNED_OUT'
+```
diff --git a/docs/reference/javascript/auth/types/auth-changed-function.mdx b/docs/reference/javascript/auth/types/auth-changed-function.mdx
new file mode 100644
index 0000000000..512588bc03
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-changed-function.mdx
@@ -0,0 +1,14 @@
+---
+title: AuthChangedFunction
+sidebarTitle: AuthChangedFunction
+description: No description provided.
+---
+
+# `AuthChangedFunction`
+
+```ts
+type AuthChangedFunction = () => (
+ event: AuthChangeEvent,
+ session: NhostSession | null
+) => void
+```
diff --git a/docs/reference/javascript/auth/types/auth-context.mdx b/docs/reference/javascript/auth/types/auth-context.mdx
new file mode 100644
index 0000000000..55dae50317
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-context.mdx
@@ -0,0 +1,11 @@
+---
+title: AuthContext
+sidebarTitle: AuthContext
+description: No description provided.
+---
+
+# `AuthContext`
+
+```ts
+type AuthContext = () => { errors: Partial>, importTokenAttempts: number, refreshToken: { value: string | null, isPAT: boolean }, refreshTimer: { startedAt: Date | null, attempts: number, lastAttempt: Date | null }, accessToken: { value: string | null, expiresAt: Date | null, expiresInSeconds: number | null }, mfa: { ticket: string } | null, user: [User](/reference/javascript/auth/types/user) | null }
+```
diff --git a/docs/reference/javascript/auth/types/auth-error-payload.mdx b/docs/reference/javascript/auth/types/auth-error-payload.mdx
new file mode 100644
index 0000000000..627a6ce722
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-error-payload.mdx
@@ -0,0 +1,11 @@
+---
+title: AuthErrorPayload
+sidebarTitle: AuthErrorPayload
+description: No description provided.
+---
+
+# `AuthErrorPayload`
+
+```ts
+type AuthErrorPayload = () => { error: string; status: number; message: string }
+```
diff --git a/docs/reference/javascript/auth/types/auth-events.mdx b/docs/reference/javascript/auth/types/auth-events.mdx
new file mode 100644
index 0000000000..60558a7391
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-events.mdx
@@ -0,0 +1,41 @@
+---
+title: AuthEvents
+sidebarTitle: AuthEvents
+description: No description provided.
+---
+
+# `AuthEvents`
+
+```ts
+type AuthEvents =
+ | { type: 'SESSION_UPDATE'; data: { session: NhostSession } }
+ | { type: 'TRY_TOKEN'; token: string }
+ | { type: 'SIGNIN_ANONYMOUS' }
+ | { type: 'SIGNIN_PAT'; pat: string }
+ | { type: 'SIGNIN_SECURITY_KEY_EMAIL'; email: string }
+ | { type: 'SIGNIN_PASSWORD'; email: string; password: string }
+ | { type: 'PASSWORDLESS_EMAIL'; email: string; options: PasswordlessOptions }
+ | {
+ type: 'PASSWORDLESS_SMS'
+ phoneNumber: string
+ options: PasswordlessOptions
+ }
+ | { type: 'PASSWORDLESS_SMS_OTP'; phoneNumber: string; otp: string }
+ | {
+ type: 'SIGNUP_EMAIL_PASSWORD'
+ email: string
+ password: string
+ options: SignUpOptions
+ }
+ | {
+ type: 'SIGNUP_SECURITY_KEY'
+ email: string
+ options: SignUpSecurityKeyOptions
+ }
+ | { type: 'SIGNOUT'; all: boolean }
+ | { type: 'SIGNIN_MFA_TOTP'; ticket: string; otp: string }
+ | { type: 'SIGNED_IN' }
+ | { type: 'SIGNED_OUT' }
+ | { type: 'TOKEN_CHANGED' }
+ | { type: 'AWAIT_EMAIL_VERIFICATION' }
+```
diff --git a/docs/reference/javascript/auth/types/auth-interpreter.mdx b/docs/reference/javascript/auth/types/auth-interpreter.mdx
new file mode 100644
index 0000000000..bb8a6a390b
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-interpreter.mdx
@@ -0,0 +1,7 @@
+---
+title: AuthInterpreter
+sidebarTitle: AuthInterpreter
+description: No description provided.
+---
+
+# `AuthInterpreter`
diff --git a/docs/reference/javascript/auth/types/auth-machine-options.mdx b/docs/reference/javascript/auth/types/auth-machine-options.mdx
new file mode 100644
index 0000000000..ed75923fec
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-machine-options.mdx
@@ -0,0 +1,85 @@
+---
+title: AuthMachineOptions
+sidebarTitle: AuthMachineOptions
+description: No description provided.
+---
+
+# `AuthMachineOptions`
+
+## Parameters
+
+---
+
+**clientUrl ** required string
+
+---
+
+**backendUrl ** required string
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**clientStorage ** optional [`ClientStorage`](/reference/javascript/auth/types/client-storage)
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+| Property | Type | Required | Notes |
+| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------: | :---- |
+| clientStorage. customSet | (key: string, value: null | string) => void | Promise<void>
| | |
+| clientStorage. customGet | (key: string) => null | string | Promise<null | string>
| | |
+| clientStorage. deleteItemAsync | (key: string) => void
| | |
+| clientStorage. getItemAsync | (key: string) => any
| | |
+| clientStorage. setItemAsync | (key: string, value: string) => void
| | |
+| clientStorage. remove | (options: { key: string }) => void
| | |
+| clientStorage. get | (options: { key: string }) => any
| | |
+| clientStorage. set | (options: { key: string, value: string }) => void
| | |
+| clientStorage. removeItem | (key: string) => void
| | |
+| clientStorage. getItem | (key: string) => any
| | |
+| clientStorage. setItem | (\_key: string, \_value: string) => void
| | |
+
+---
+
+**clientStorageType ** optional [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type)
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
diff --git a/docs/reference/javascript/auth/types/auth-machine.mdx b/docs/reference/javascript/auth/types/auth-machine.mdx
new file mode 100644
index 0000000000..5d08c9d446
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: AuthMachine
+sidebarTitle: AuthMachine
+description: No description provided.
+---
+
+# `AuthMachine`
diff --git a/docs/reference/javascript/auth/types/auth-options.mdx b/docs/reference/javascript/auth/types/auth-options.mdx
new file mode 100644
index 0000000000..01c9378117
--- /dev/null
+++ b/docs/reference/javascript/auth/types/auth-options.mdx
@@ -0,0 +1,77 @@
+---
+title: AuthOptions
+sidebarTitle: AuthOptions
+description: No description provided.
+---
+
+# `AuthOptions`
+
+## Parameters
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
+
+**clientStorageType ** optional [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type)
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**clientStorage ** optional [`ClientStorage`](/reference/javascript/auth/types/client-storage)
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+| Property | Type | Required | Notes |
+| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------: | :---- |
+| clientStorage. customSet | (key: string, value: null | string) => void | Promise<void>
| | |
+| clientStorage. customGet | (key: string) => null | string | Promise<null | string>
| | |
+| clientStorage. deleteItemAsync | (key: string) => void
| | |
+| clientStorage. getItemAsync | (key: string) => any
| | |
+| clientStorage. setItemAsync | (key: string, value: string) => void
| | |
+| clientStorage. remove | (options: { key: string }) => void
| | |
+| clientStorage. get | (options: { key: string }) => any
| | |
+| clientStorage. set | (options: { key: string, value: string }) => void
| | |
+| clientStorage. removeItem | (key: string) => void
| | |
+| clientStorage. getItem | (key: string) => any
| | |
+| clientStorage. setItem | (\_key: string, \_value: string) => void
| | |
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
diff --git a/docs/reference/javascript/auth/types/change-email-context.mdx b/docs/reference/javascript/auth/types/change-email-context.mdx
new file mode 100644
index 0000000000..3497f59f16
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-context.mdx
@@ -0,0 +1,11 @@
+---
+title: ChangeEmailContext
+sidebarTitle: ChangeEmailContext
+description: No description provided.
+---
+
+# `ChangeEmailContext`
+
+```ts
+type ChangeEmailContext = () => { error: [AuthErrorPayload](/reference/javascript/auth/types/auth-error-payload) | null }
+```
diff --git a/docs/reference/javascript/auth/types/change-email-events.mdx b/docs/reference/javascript/auth/types/change-email-events.mdx
new file mode 100644
index 0000000000..e74f70d9fd
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-events.mdx
@@ -0,0 +1,14 @@
+---
+title: ChangeEmailEvents
+sidebarTitle: ChangeEmailEvents
+description: No description provided.
+---
+
+# `ChangeEmailEvents`
+
+```ts
+type ChangeEmailEvents =
+ | { type: 'REQUEST'; email: string; options: ChangeEmailOptions }
+ | { type: 'SUCCESS' }
+ | { type: 'ERROR'; error: AuthErrorPayload | null }
+```
diff --git a/docs/reference/javascript/auth/types/change-email-handler-result.mdx b/docs/reference/javascript/auth/types/change-email-handler-result.mdx
new file mode 100644
index 0000000000..b05ca5f2ad
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-handler-result.mdx
@@ -0,0 +1,37 @@
+---
+title: ChangeEmailHandlerResult
+sidebarTitle: ChangeEmailHandlerResult
+description: No description provided.
+---
+
+# `ChangeEmailHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/change-email-machine.mdx b/docs/reference/javascript/auth/types/change-email-machine.mdx
new file mode 100644
index 0000000000..a3b02f3d04
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: ChangeEmailMachine
+sidebarTitle: ChangeEmailMachine
+description: No description provided.
+---
+
+# `ChangeEmailMachine`
diff --git a/docs/reference/javascript/auth/types/change-email-options.mdx b/docs/reference/javascript/auth/types/change-email-options.mdx
new file mode 100644
index 0000000000..c6f611ddf7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-options.mdx
@@ -0,0 +1,18 @@
+---
+title: ChangeEmailOptions
+sidebarTitle: ChangeEmailOptions
+description: No description provided.
+---
+
+# `ChangeEmailOptions`
+
+## Parameters
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/change-email-params.mdx b/docs/reference/javascript/auth/types/change-email-params.mdx
new file mode 100644
index 0000000000..fa8b757337
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-params.mdx
@@ -0,0 +1,23 @@
+---
+title: ChangeEmailParams
+sidebarTitle: ChangeEmailParams
+description: No description provided.
+---
+
+# `ChangeEmailParams`
+
+## Parameters
+
+---
+
+**newEmail ** required string
+
+---
+
+**options ** optional [`RedirectOption`](/reference/javascript/auth/types/redirect-option)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/types/change-email-response.mdx b/docs/reference/javascript/auth/types/change-email-response.mdx
new file mode 100644
index 0000000000..964be89ee7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-response.mdx
@@ -0,0 +1,17 @@
+---
+title: ChangeEmailResponse
+sidebarTitle: ChangeEmailResponse
+description: payload from hasura-auth endpoint /user/email/change
+---
+
+# `ChangeEmailResponse`
+
+payload from hasura-auth endpoint /user/email/change
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/change-email-services.mdx b/docs/reference/javascript/auth/types/change-email-services.mdx
new file mode 100644
index 0000000000..401daa80c7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-services.mdx
@@ -0,0 +1,11 @@
+---
+title: ChangeEmailServices
+sidebarTitle: ChangeEmailServices
+description: No description provided.
+---
+
+# `ChangeEmailServices`
+
+```ts
+type ChangeEmailServices = () => { request: { data: [ChangeEmailResponse](/reference/javascript/auth/types/change-email-response) } }
+```
diff --git a/docs/reference/javascript/auth/types/change-email-state.mdx b/docs/reference/javascript/auth/types/change-email-state.mdx
new file mode 100644
index 0000000000..982867db23
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-email-state.mdx
@@ -0,0 +1,45 @@
+---
+title: ChangeEmailState
+sidebarTitle: ChangeEmailState
+description: No description provided.
+---
+
+# `ChangeEmailState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/change-password-context.mdx b/docs/reference/javascript/auth/types/change-password-context.mdx
new file mode 100644
index 0000000000..527bab010f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-context.mdx
@@ -0,0 +1,11 @@
+---
+title: ChangePasswordContext
+sidebarTitle: ChangePasswordContext
+description: No description provided.
+---
+
+# `ChangePasswordContext`
+
+```ts
+type ChangePasswordContext = () => { error: [AuthErrorPayload](/reference/javascript/auth/types/auth-error-payload) | null }
+```
diff --git a/docs/reference/javascript/auth/types/change-password-events.mdx b/docs/reference/javascript/auth/types/change-password-events.mdx
new file mode 100644
index 0000000000..aa4974de5a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-events.mdx
@@ -0,0 +1,14 @@
+---
+title: ChangePasswordEvents
+sidebarTitle: ChangePasswordEvents
+description: No description provided.
+---
+
+# `ChangePasswordEvents`
+
+```ts
+type ChangePasswordEvents =
+ | { type: 'REQUEST'; password: string; ticket: string }
+ | { type: 'SUCCESS' }
+ | { type: 'ERROR'; error: AuthErrorPayload | null }
+```
diff --git a/docs/reference/javascript/auth/types/change-password-handler-result.mdx b/docs/reference/javascript/auth/types/change-password-handler-result.mdx
new file mode 100644
index 0000000000..3620bd6e7c
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-handler-result.mdx
@@ -0,0 +1,35 @@
+---
+title: ChangePasswordHandlerResult
+sidebarTitle: ChangePasswordHandlerResult
+description: No description provided.
+---
+
+# `ChangePasswordHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/change-password-machine.mdx b/docs/reference/javascript/auth/types/change-password-machine.mdx
new file mode 100644
index 0000000000..0e0db78c8f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: ChangePasswordMachine
+sidebarTitle: ChangePasswordMachine
+description: No description provided.
+---
+
+# `ChangePasswordMachine`
diff --git a/docs/reference/javascript/auth/types/change-password-params.mdx b/docs/reference/javascript/auth/types/change-password-params.mdx
new file mode 100644
index 0000000000..d65aae7334
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-params.mdx
@@ -0,0 +1,19 @@
+---
+title: ChangePasswordParams
+sidebarTitle: ChangePasswordParams
+description: No description provided.
+---
+
+# `ChangePasswordParams`
+
+## Parameters
+
+---
+
+**newPassword ** required string
+
+---
+
+**ticket ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/types/change-password-response.mdx b/docs/reference/javascript/auth/types/change-password-response.mdx
new file mode 100644
index 0000000000..130937f359
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-response.mdx
@@ -0,0 +1,17 @@
+---
+title: ChangePasswordResponse
+sidebarTitle: ChangePasswordResponse
+description: payload from hasura-auth endpoint /user/password
+---
+
+# `ChangePasswordResponse`
+
+payload from hasura-auth endpoint /user/password
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/change-password-services.mdx b/docs/reference/javascript/auth/types/change-password-services.mdx
new file mode 100644
index 0000000000..b6cfae546d
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-services.mdx
@@ -0,0 +1,11 @@
+---
+title: ChangePasswordServices
+sidebarTitle: ChangePasswordServices
+description: No description provided.
+---
+
+# `ChangePasswordServices`
+
+```ts
+type ChangePasswordServices = () => { requestChange: { data: [ChangePasswordResponse](/reference/javascript/auth/types/change-password-response) } }
+```
diff --git a/docs/reference/javascript/auth/types/change-password-state.mdx b/docs/reference/javascript/auth/types/change-password-state.mdx
new file mode 100644
index 0000000000..16c55469ff
--- /dev/null
+++ b/docs/reference/javascript/auth/types/change-password-state.mdx
@@ -0,0 +1,43 @@
+---
+title: ChangePasswordState
+sidebarTitle: ChangePasswordState
+description: No description provided.
+---
+
+# `ChangePasswordState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/client-storage-type.mdx b/docs/reference/javascript/auth/types/client-storage-type.mdx
new file mode 100644
index 0000000000..cd741896fc
--- /dev/null
+++ b/docs/reference/javascript/auth/types/client-storage-type.mdx
@@ -0,0 +1,18 @@
+---
+title: ClientStorageType
+sidebarTitle: ClientStorageType
+description: No description provided.
+---
+
+# `ClientStorageType`
+
+```ts
+type ClientStorageType =
+ | 'capacitor'
+ | 'custom'
+ | 'expo-secure-storage'
+ | 'localStorage'
+ | 'react-native'
+ | 'web'
+ | 'cookie'
+```
diff --git a/docs/reference/javascript/auth/types/client-storage.mdx b/docs/reference/javascript/auth/types/client-storage.mdx
new file mode 100644
index 0000000000..13b064d7da
--- /dev/null
+++ b/docs/reference/javascript/auth/types/client-storage.mdx
@@ -0,0 +1,55 @@
+---
+title: ClientStorage
+sidebarTitle: ClientStorage
+description: No description provided.
+---
+
+# `ClientStorage`
+
+## Parameters
+
+---
+
+**customSet ** optional (key: string, value: null | string) => void | Promise<void>
+
+---
+
+**customGet ** optional (key: string) => null | string | Promise<null | string>
+
+---
+
+**deleteItemAsync ** optional (key: string) => void
+
+---
+
+**getItemAsync ** optional (key: string) => any
+
+---
+
+**setItemAsync ** optional (key: string, value: string) => void
+
+---
+
+**remove ** optional (options: { key: string }) => void
+
+---
+
+**get ** optional (options: { key: string }) => any
+
+---
+
+**set ** optional (options: { key: string, value: string }) => void
+
+---
+
+**removeItem ** optional (key: string) => void
+
+---
+
+**getItem ** optional (key: string) => any
+
+---
+
+**setItem ** optional (\_key: string, \_value: string) => void
+
+---
diff --git a/docs/reference/javascript/auth/types/common-provider-options.mdx b/docs/reference/javascript/auth/types/common-provider-options.mdx
new file mode 100644
index 0000000000..7f47f8de07
--- /dev/null
+++ b/docs/reference/javascript/auth/types/common-provider-options.mdx
@@ -0,0 +1,48 @@
+---
+title: CommonProviderOptions
+sidebarTitle: CommonProviderOptions
+description: No description provided.
+---
+
+# `CommonProviderOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/common-sign-up-params.mdx b/docs/reference/javascript/auth/types/common-sign-up-params.mdx
new file mode 100644
index 0000000000..9870dc889c
--- /dev/null
+++ b/docs/reference/javascript/auth/types/common-sign-up-params.mdx
@@ -0,0 +1,24 @@
+---
+title: CommonSignUpParams
+sidebarTitle: CommonSignUpParams
+description: No description provided.
+---
+
+# `CommonSignUpParams`
+
+## Parameters
+
+---
+
+**options ** optional [`SignUpOptions`](/reference/javascript/auth/types/sign-up-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. locale | string
| | Locale of the user, in two digits |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/types/deanonymize-options.mdx b/docs/reference/javascript/auth/types/deanonymize-options.mdx
new file mode 100644
index 0000000000..5968070d7d
--- /dev/null
+++ b/docs/reference/javascript/auth/types/deanonymize-options.mdx
@@ -0,0 +1,49 @@
+---
+title: DeanonymizeOptions
+sidebarTitle: DeanonymizeOptions
+description: No description provided.
+---
+
+# `DeanonymizeOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**email ** optional string
+
+---
+
+**password ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/types/deanonymize-params.mdx b/docs/reference/javascript/auth/types/deanonymize-params.mdx
new file mode 100644
index 0000000000..5b134160a4
--- /dev/null
+++ b/docs/reference/javascript/auth/types/deanonymize-params.mdx
@@ -0,0 +1,20 @@
+---
+title: DeanonymizeParams
+sidebarTitle: DeanonymizeParams
+description: No description provided.
+---
+
+# `DeanonymizeParams`
+
+```ts
+type DeanonymizeParams =
+ | ({ signInMethod: 'email-password' } & SignUpEmailPasswordParams)
+ | ({
+ signInMethod: 'passwordless'
+ connection: 'email'
+ } & SignInPasswordlessEmailParams)
+ | ({
+ signInMethod: 'passwordless'
+ connection: 'sms'
+ } & SignInPasswordlessSmsParams)
+```
diff --git a/docs/reference/javascript/auth/types/deanonymize-response.mdx b/docs/reference/javascript/auth/types/deanonymize-response.mdx
new file mode 100644
index 0000000000..f8ba337f8a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/deanonymize-response.mdx
@@ -0,0 +1,17 @@
+---
+title: DeanonymizeResponse
+sidebarTitle: DeanonymizeResponse
+description: payload from hasura-auth endpoint /user/deanonymize
+---
+
+# `DeanonymizeResponse`
+
+payload from hasura-auth endpoint /user/deanonymize
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/enable-mfa-context.mdx b/docs/reference/javascript/auth/types/enable-mfa-context.mdx
new file mode 100644
index 0000000000..64c9999c6e
--- /dev/null
+++ b/docs/reference/javascript/auth/types/enable-mfa-context.mdx
@@ -0,0 +1,11 @@
+---
+title: EnableMfaContext
+sidebarTitle: EnableMfaContext
+description: No description provided.
+---
+
+# `EnableMfaContext`
+
+```ts
+type EnableMfaContext = () => { error: [AuthErrorPayload](/reference/javascript/auth/types/auth-error-payload) | null, imageUrl: string | null, secret: string | null }
+```
diff --git a/docs/reference/javascript/auth/types/enable-mfa-events.mdx b/docs/reference/javascript/auth/types/enable-mfa-events.mdx
new file mode 100644
index 0000000000..f8808bf0a0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/enable-mfa-events.mdx
@@ -0,0 +1,17 @@
+---
+title: EnableMfaEvents
+sidebarTitle: EnableMfaEvents
+description: No description provided.
+---
+
+# `EnableMfaEvents`
+
+```ts
+type EnableMfaEvents =
+ | { type: 'GENERATE' }
+ | { type: 'ACTIVATE'; code: string; activeMfaType: 'totp' }
+ | { type: 'GENERATED' }
+ | { type: 'GENERATED_ERROR'; error: AuthErrorPayload | null }
+ | { type: 'SUCCESS' }
+ | { type: 'ERROR'; error: AuthErrorPayload | null }
+```
diff --git a/docs/reference/javascript/auth/types/enable-mfad-machine.mdx b/docs/reference/javascript/auth/types/enable-mfad-machine.mdx
new file mode 100644
index 0000000000..a89a991cb9
--- /dev/null
+++ b/docs/reference/javascript/auth/types/enable-mfad-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: EnableMfadMachine
+sidebarTitle: EnableMfadMachine
+description: No description provided.
+---
+
+# `EnableMfadMachine`
diff --git a/docs/reference/javascript/auth/types/generate-qr-code-handler-result.mdx b/docs/reference/javascript/auth/types/generate-qr-code-handler-result.mdx
new file mode 100644
index 0000000000..be40090e8a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/generate-qr-code-handler-result.mdx
@@ -0,0 +1,37 @@
+---
+title: GenerateQrCodeHandlerResult
+sidebarTitle: GenerateQrCodeHandlerResult
+description: No description provided.
+---
+
+# `GenerateQrCodeHandlerResult`
+
+## Parameters
+
+---
+
+**qrCodeDataUrl ** required string
+
+---
+
+**isGenerated ** required boolean
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/generate-qr-code-state.mdx b/docs/reference/javascript/auth/types/generate-qr-code-state.mdx
new file mode 100644
index 0000000000..5877b941f0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/generate-qr-code-state.mdx
@@ -0,0 +1,41 @@
+---
+title: GenerateQrCodeState
+sidebarTitle: GenerateQrCodeState
+description: No description provided.
+---
+
+# `GenerateQrCodeState`
+
+## Parameters
+
+---
+
+**qrCodeDataUrl ** required string
+
+---
+
+**isGenerated ** required boolean
+
+---
+
+**isGenerating ** required boolean
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/jwt-claims.mdx b/docs/reference/javascript/auth/types/jwt-claims.mdx
new file mode 100644
index 0000000000..f9f8e0d86d
--- /dev/null
+++ b/docs/reference/javascript/auth/types/jwt-claims.mdx
@@ -0,0 +1,44 @@
+---
+title: JWTClaims
+sidebarTitle: JWTClaims
+description: Basic structure of a JWT that contains the default Hasura namespace.
+---
+
+# `JWTClaims`
+
+Basic structure of a JWT that contains the default Hasura namespace.
+
+**`@see`**
+
+https://hasura.io/docs/1.0/graphql/core/auth/authentication/jwt.html#the-spec
+
+## Parameters
+
+---
+
+**sub ** optional string
+
+---
+
+**iat ** optional number
+
+---
+
+**exp ** optional number
+
+---
+
+**iss ** optional string
+
+---
+
+**https://hasura.io/jwt/claims ** required [`JWTHasuraClaims`](/reference/javascript/auth/types/jwt-hasura-claims)
+
+| Property | Type | Required | Notes |
+| :---------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- | :------: | :---- |
+| https://hasura.io/jwt/claims. x-hasura-user-is-anonymous | string
| ✔️ | |
+| https://hasura.io/jwt/claims. x-hasura-user-id | string
| ✔️ | |
+| https://hasura.io/jwt/claims. x-hasura-default-role | string
| ✔️ | |
+| https://hasura.io/jwt/claims. x-hasura-allowed-roles | Array<string>
| ✔️ | |
+
+---
diff --git a/docs/reference/javascript/auth/types/jwt-hasura-claims.mdx b/docs/reference/javascript/auth/types/jwt-hasura-claims.mdx
new file mode 100644
index 0000000000..ca334095be
--- /dev/null
+++ b/docs/reference/javascript/auth/types/jwt-hasura-claims.mdx
@@ -0,0 +1,27 @@
+---
+title: JWTHasuraClaims
+sidebarTitle: JWTHasuraClaims
+description: No description provided.
+---
+
+# `JWTHasuraClaims`
+
+## Parameters
+
+---
+
+**x-hasura-user-is-anonymous ** required string
+
+---
+
+**x-hasura-user-id ** required string
+
+---
+
+**x-hasura-default-role ** required string
+
+---
+
+**x-hasura-allowed-roles ** required Array<string>
+
+---
diff --git a/docs/reference/javascript/auth/types/mfa.mdx b/docs/reference/javascript/auth/types/mfa.mdx
new file mode 100644
index 0000000000..4c6beb5aa6
--- /dev/null
+++ b/docs/reference/javascript/auth/types/mfa.mdx
@@ -0,0 +1,15 @@
+---
+title: Mfa
+sidebarTitle: Mfa
+description: No description provided.
+---
+
+# `Mfa`
+
+## Parameters
+
+---
+
+**ticket ** required string
+
+---
diff --git a/docs/reference/javascript/auth/types/needs-email-verification-state.mdx b/docs/reference/javascript/auth/types/needs-email-verification-state.mdx
new file mode 100644
index 0000000000..dfc26df7ed
--- /dev/null
+++ b/docs/reference/javascript/auth/types/needs-email-verification-state.mdx
@@ -0,0 +1,19 @@
+---
+title: NeedsEmailVerificationState
+sidebarTitle: NeedsEmailVerificationState
+description: No description provided.
+---
+
+# `NeedsEmailVerificationState`
+
+## Parameters
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/nhost-auth-constructor-params.mdx b/docs/reference/javascript/auth/types/nhost-auth-constructor-params.mdx
new file mode 100644
index 0000000000..3684e9a5c9
--- /dev/null
+++ b/docs/reference/javascript/auth/types/nhost-auth-constructor-params.mdx
@@ -0,0 +1,85 @@
+---
+title: NhostAuthConstructorParams
+sidebarTitle: NhostAuthConstructorParams
+description: No description provided.
+---
+
+# `NhostAuthConstructorParams`
+
+## Parameters
+
+---
+
+**url ** required string
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**clientStorage ** optional [`ClientStorage`](/reference/javascript/auth/types/client-storage)
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+| Property | Type | Required | Notes |
+| :-------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- | :------: | :---- |
+| clientStorage. setItem | (\_key: string, \_value: string) => void
| | |
+| clientStorage. getItem | (key: string) => any
| | |
+| clientStorage. removeItem | (key: string) => void
| | |
+| clientStorage. set | (options: { key: string, value: string }) => void
| | |
+| clientStorage. get | (options: { key: string }) => any
| | |
+| clientStorage. remove | (options: { key: string }) => void
| | |
+| clientStorage. setItemAsync | (key: string, value: string) => void
| | |
+| clientStorage. getItemAsync | (key: string) => any
| | |
+| clientStorage. deleteItemAsync | (key: string) => void
| | |
+| clientStorage. customGet | (key: string) => null | string | Promise<null | string>
| | |
+| clientStorage. customSet | (key: string, value: null | string) => void | Promise<void>
| | |
+
+---
+
+**clientStorageType ** optional [`ClientStorageType`](/reference/javascript/auth/types/client-storage-type)
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
+
+**start ** optional boolean
+
+---
diff --git a/docs/reference/javascript/auth/types/nhost-client-options.mdx b/docs/reference/javascript/auth/types/nhost-client-options.mdx
new file mode 100644
index 0000000000..b6fad46802
--- /dev/null
+++ b/docs/reference/javascript/auth/types/nhost-client-options.mdx
@@ -0,0 +1,11 @@
+---
+title: NhostClientOptions
+sidebarTitle: NhostClientOptions
+description: No description provided.
+---
+
+# `NhostClientOptions`
+
+```ts
+type NhostClientOptions = AuthMachineOptions & __type
+```
diff --git a/docs/reference/javascript/auth/types/nhost-session-response.mdx b/docs/reference/javascript/auth/types/nhost-session-response.mdx
new file mode 100644
index 0000000000..a7d1ad59c7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/nhost-session-response.mdx
@@ -0,0 +1,15 @@
+---
+title: NhostSessionResponse
+sidebarTitle: NhostSessionResponse
+description: session payload from common hasura-auth responses
+---
+
+# `NhostSessionResponse`
+
+session payload from common hasura-auth responses
+
+```ts
+type NhostSessionResponse =
+ | { session: null; error: AuthErrorPayload }
+ | { session: NhostSession | null; error: null }
+```
diff --git a/docs/reference/javascript/auth/types/nhost-session.mdx b/docs/reference/javascript/auth/types/nhost-session.mdx
new file mode 100644
index 0000000000..3f8d094978
--- /dev/null
+++ b/docs/reference/javascript/auth/types/nhost-session.mdx
@@ -0,0 +1,48 @@
+---
+title: NhostSession
+sidebarTitle: NhostSession
+description: No description provided.
+---
+
+# `NhostSession`
+
+## Parameters
+
+---
+
+**accessToken ** required string
+
+---
+
+**accessTokenExpiresIn ** required number
+
+---
+
+**refreshToken ** required null | string
+
+---
+
+**refreshTokenId ** optional null | string
+
+---
+
+**user ** required [`User`](/reference/javascript/auth/types/user)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :------------------------------------------------- |
+| user. activeMfaType | null | "totp"
| ✔️ | |
+| user. phoneNumberVerified | boolean
| ✔️ | |
+| user. phoneNumber | null | string
| ✔️ | |
+| user. emailVerified | boolean
| ✔️ | Is `true` if the user email has not been verified |
+| user. metadata | Record<string, unknown>
| ✔️ | Additional attributes used for user information |
+| user. roles | Array<string>
| ✔️ | The roles assigned to the user |
+| user. defaultRole | string
| ✔️ | The default role of the user |
+| user. isAnonymous | boolean
| ✔️ | Whether or not the user is anonymous |
+| user. locale | string
| ✔️ | The locale of the user, as a two-characters string |
+| user. avatarUrl | string
| ✔️ | The URL to the user's profile picture |
+| user. displayName | string
| ✔️ | User's display name |
+| user. createdAt | string
| ✔️ | The date-time when the user has been created |
+| user. id | string
| ✔️ | User's unique identifier (uuid) |
+| user. email | string
| | User's email address |
+
+---
diff --git a/docs/reference/javascript/auth/types/nullable-error-response.mdx b/docs/reference/javascript/auth/types/nullable-error-response.mdx
new file mode 100644
index 0000000000..f1efef55f1
--- /dev/null
+++ b/docs/reference/javascript/auth/types/nullable-error-response.mdx
@@ -0,0 +1,15 @@
+---
+title: NullableErrorResponse
+sidebarTitle: NullableErrorResponse
+description: No description provided.
+---
+
+# `NullableErrorResponse`
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/on-token-changed-function.mdx b/docs/reference/javascript/auth/types/on-token-changed-function.mdx
new file mode 100644
index 0000000000..dc93978004
--- /dev/null
+++ b/docs/reference/javascript/auth/types/on-token-changed-function.mdx
@@ -0,0 +1,11 @@
+---
+title: OnTokenChangedFunction
+sidebarTitle: OnTokenChangedFunction
+description: No description provided.
+---
+
+# `OnTokenChangedFunction`
+
+```ts
+type OnTokenChangedFunction = () => (session: NhostSession | null) => void
+```
diff --git a/docs/reference/javascript/auth/types/passwordless-email-response.mdx b/docs/reference/javascript/auth/types/passwordless-email-response.mdx
new file mode 100644
index 0000000000..c3d03c77b3
--- /dev/null
+++ b/docs/reference/javascript/auth/types/passwordless-email-response.mdx
@@ -0,0 +1,17 @@
+---
+title: PasswordlessEmailResponse
+sidebarTitle: PasswordlessEmailResponse
+description: payload from hasura-auth endpoint /signin/passwordless/email
+---
+
+# `PasswordlessEmailResponse`
+
+payload from hasura-auth endpoint /signin/passwordless/email
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/passwordless-options.mdx b/docs/reference/javascript/auth/types/passwordless-options.mdx
new file mode 100644
index 0000000000..894ff768c3
--- /dev/null
+++ b/docs/reference/javascript/auth/types/passwordless-options.mdx
@@ -0,0 +1,48 @@
+---
+title: PasswordlessOptions
+sidebarTitle: PasswordlessOptions
+description: No description provided.
+---
+
+# `PasswordlessOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/passwordless-sms-otp-response.mdx b/docs/reference/javascript/auth/types/passwordless-sms-otp-response.mdx
new file mode 100644
index 0000000000..5697664b5f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/passwordless-sms-otp-response.mdx
@@ -0,0 +1,9 @@
+---
+title: PasswordlessSmsOtpResponse
+sidebarTitle: PasswordlessSmsOtpResponse
+description: payload from hasura-auth endpoint /signin/anonymous
+---
+
+# `PasswordlessSmsOtpResponse`
+
+payload from hasura-auth endpoint /signin/anonymous
diff --git a/docs/reference/javascript/auth/types/passwordless-sms-response.mdx b/docs/reference/javascript/auth/types/passwordless-sms-response.mdx
new file mode 100644
index 0000000000..e0cd807b52
--- /dev/null
+++ b/docs/reference/javascript/auth/types/passwordless-sms-response.mdx
@@ -0,0 +1,17 @@
+---
+title: PasswordlessSmsResponse
+sidebarTitle: PasswordlessSmsResponse
+description: payload from hasura-auth endpoint /signin/passwordless/sms
+---
+
+# `PasswordlessSmsResponse`
+
+payload from hasura-auth endpoint /signin/passwordless/sms
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/personal-access-token-creation-response.mdx b/docs/reference/javascript/auth/types/personal-access-token-creation-response.mdx
new file mode 100644
index 0000000000..0ce977fec2
--- /dev/null
+++ b/docs/reference/javascript/auth/types/personal-access-token-creation-response.mdx
@@ -0,0 +1,25 @@
+---
+title: PersonalAccessTokenCreationResponse
+sidebarTitle: PersonalAccessTokenCreationResponse
+description: Data of a personal access token creation response.
+---
+
+# `PersonalAccessTokenCreationResponse`
+
+Data of a personal access token creation response.
+
+## Parameters
+
+---
+
+**id ** required string
+
+The personal access token identifier.
+
+---
+
+**personalAccessToken ** required string
+
+The personal access token.
+
+---
diff --git a/docs/reference/javascript/auth/types/provider-options.mdx b/docs/reference/javascript/auth/types/provider-options.mdx
new file mode 100644
index 0000000000..b6642cab98
--- /dev/null
+++ b/docs/reference/javascript/auth/types/provider-options.mdx
@@ -0,0 +1,60 @@
+---
+title: ProviderOptions
+sidebarTitle: ProviderOptions
+description: No description provided.
+---
+
+# `ProviderOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
+
+**connection ** optional string
+
+---
+
+**organization ** optional string
+
+---
+
+**provider ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/types/provider.mdx b/docs/reference/javascript/auth/types/provider.mdx
new file mode 100644
index 0000000000..33b51110ff
--- /dev/null
+++ b/docs/reference/javascript/auth/types/provider.mdx
@@ -0,0 +1,26 @@
+---
+title: Provider
+sidebarTitle: Provider
+description: No description provided.
+---
+
+# `Provider`
+
+```ts
+type Provider =
+ | 'apple'
+ | 'azuread'
+ | 'bitbucket'
+ | 'discord'
+ | 'facebook'
+ | 'github'
+ | 'gitlab'
+ | 'google'
+ | 'linkedin'
+ | 'spotify'
+ | 'strava'
+ | 'twitch'
+ | 'twitter'
+ | 'windowslive'
+ | 'workos'
+```
diff --git a/docs/reference/javascript/auth/types/redirect-option.mdx b/docs/reference/javascript/auth/types/redirect-option.mdx
new file mode 100644
index 0000000000..1841b6a7da
--- /dev/null
+++ b/docs/reference/javascript/auth/types/redirect-option.mdx
@@ -0,0 +1,18 @@
+---
+title: RedirectOption
+sidebarTitle: RedirectOption
+description: No description provided.
+---
+
+# `RedirectOption`
+
+## Parameters
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/refresh-session-response.mdx b/docs/reference/javascript/auth/types/refresh-session-response.mdx
new file mode 100644
index 0000000000..9e2a4d5efb
--- /dev/null
+++ b/docs/reference/javascript/auth/types/refresh-session-response.mdx
@@ -0,0 +1,9 @@
+---
+title: RefreshSessionResponse
+sidebarTitle: RefreshSessionResponse
+description: payload from hasura-auth endpoint /token
+---
+
+# `RefreshSessionResponse`
+
+payload from hasura-auth endpoint /token
diff --git a/docs/reference/javascript/auth/types/reset-password-context.mdx b/docs/reference/javascript/auth/types/reset-password-context.mdx
new file mode 100644
index 0000000000..aa382b6724
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-context.mdx
@@ -0,0 +1,11 @@
+---
+title: ResetPasswordContext
+sidebarTitle: ResetPasswordContext
+description: No description provided.
+---
+
+# `ResetPasswordContext`
+
+```ts
+type ResetPasswordContext = () => { error: [AuthErrorPayload](/reference/javascript/auth/types/auth-error-payload) | null }
+```
diff --git a/docs/reference/javascript/auth/types/reset-password-events.mdx b/docs/reference/javascript/auth/types/reset-password-events.mdx
new file mode 100644
index 0000000000..88c4ab8eaf
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-events.mdx
@@ -0,0 +1,14 @@
+---
+title: ResetPasswordEvents
+sidebarTitle: ResetPasswordEvents
+description: No description provided.
+---
+
+# `ResetPasswordEvents`
+
+```ts
+type ResetPasswordEvents =
+ | { type: 'REQUEST'; email: string; options: ResetPasswordOptions }
+ | { type: 'SUCCESS' }
+ | { type: 'ERROR'; error: AuthErrorPayload | null }
+```
diff --git a/docs/reference/javascript/auth/types/reset-password-handler-result.mdx b/docs/reference/javascript/auth/types/reset-password-handler-result.mdx
new file mode 100644
index 0000000000..23baa45b1f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-handler-result.mdx
@@ -0,0 +1,35 @@
+---
+title: ResetPasswordHandlerResult
+sidebarTitle: ResetPasswordHandlerResult
+description: No description provided.
+---
+
+# `ResetPasswordHandlerResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when an email to reset the password has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/reset-password-machine.mdx b/docs/reference/javascript/auth/types/reset-password-machine.mdx
new file mode 100644
index 0000000000..203268224f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: ResetPasswordMachine
+sidebarTitle: ResetPasswordMachine
+description: No description provided.
+---
+
+# `ResetPasswordMachine`
diff --git a/docs/reference/javascript/auth/types/reset-password-options.mdx b/docs/reference/javascript/auth/types/reset-password-options.mdx
new file mode 100644
index 0000000000..26aeec73a0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-options.mdx
@@ -0,0 +1,18 @@
+---
+title: ResetPasswordOptions
+sidebarTitle: ResetPasswordOptions
+description: No description provided.
+---
+
+# `ResetPasswordOptions`
+
+## Parameters
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/reset-password-params.mdx b/docs/reference/javascript/auth/types/reset-password-params.mdx
new file mode 100644
index 0000000000..9df2fc7275
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-params.mdx
@@ -0,0 +1,23 @@
+---
+title: ResetPasswordParams
+sidebarTitle: ResetPasswordParams
+description: No description provided.
+---
+
+# `ResetPasswordParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`RedirectOption`](/reference/javascript/auth/types/redirect-option)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/types/reset-password-response.mdx b/docs/reference/javascript/auth/types/reset-password-response.mdx
new file mode 100644
index 0000000000..e0e17987f4
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-response.mdx
@@ -0,0 +1,17 @@
+---
+title: ResetPasswordResponse
+sidebarTitle: ResetPasswordResponse
+description: payload from hasura-auth endpoint /user/password/reset
+---
+
+# `ResetPasswordResponse`
+
+payload from hasura-auth endpoint /user/password/reset
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/reset-password-services.mdx b/docs/reference/javascript/auth/types/reset-password-services.mdx
new file mode 100644
index 0000000000..ec35c9a8db
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-services.mdx
@@ -0,0 +1,11 @@
+---
+title: ResetPasswordServices
+sidebarTitle: ResetPasswordServices
+description: No description provided.
+---
+
+# `ResetPasswordServices`
+
+```ts
+type ResetPasswordServices = () => { requestChange: { data: [ResetPasswordResponse](/reference/javascript/auth/types/reset-password-response) } }
+```
diff --git a/docs/reference/javascript/auth/types/reset-password-state.mdx b/docs/reference/javascript/auth/types/reset-password-state.mdx
new file mode 100644
index 0000000000..cd9618a49f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/reset-password-state.mdx
@@ -0,0 +1,43 @@
+---
+title: ResetPasswordState
+sidebarTitle: ResetPasswordState
+description: No description provided.
+---
+
+# `ResetPasswordState`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when an email to reset the password has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
diff --git a/docs/reference/javascript/auth/types/security-key.mdx b/docs/reference/javascript/auth/types/security-key.mdx
new file mode 100644
index 0000000000..bf87130375
--- /dev/null
+++ b/docs/reference/javascript/auth/types/security-key.mdx
@@ -0,0 +1,25 @@
+---
+title: SecurityKey
+sidebarTitle: SecurityKey
+description: Data of a WebAuthn security key
+---
+
+# `SecurityKey`
+
+Data of a WebAuthn security key
+
+## Parameters
+
+---
+
+**id ** required string
+
+Unique indentifier of the security key
+
+---
+
+**nickname ** optional string
+
+Human-readable nickname fof the security key
+
+---
diff --git a/docs/reference/javascript/auth/types/send-verification-email-context.mdx b/docs/reference/javascript/auth/types/send-verification-email-context.mdx
new file mode 100644
index 0000000000..d5c8e4ba96
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-context.mdx
@@ -0,0 +1,11 @@
+---
+title: SendVerificationEmailContext
+sidebarTitle: SendVerificationEmailContext
+description: No description provided.
+---
+
+# `SendVerificationEmailContext`
+
+```ts
+type SendVerificationEmailContext = () => { error: [AuthErrorPayload](/reference/javascript/auth/types/auth-error-payload) | null }
+```
diff --git a/docs/reference/javascript/auth/types/send-verification-email-events.mdx b/docs/reference/javascript/auth/types/send-verification-email-events.mdx
new file mode 100644
index 0000000000..5ff17dd0c3
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-events.mdx
@@ -0,0 +1,14 @@
+---
+title: SendVerificationEmailEvents
+sidebarTitle: SendVerificationEmailEvents
+description: No description provided.
+---
+
+# `SendVerificationEmailEvents`
+
+```ts
+type SendVerificationEmailEvents =
+ | { type: 'REQUEST'; email: string; options: SendVerificationEmailOptions }
+ | { type: 'SUCCESS' }
+ | { type: 'ERROR'; error: AuthErrorPayload | null }
+```
diff --git a/docs/reference/javascript/auth/types/send-verification-email-handler-result.mdx b/docs/reference/javascript/auth/types/send-verification-email-handler-result.mdx
new file mode 100644
index 0000000000..8342023d68
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-handler-result.mdx
@@ -0,0 +1,35 @@
+---
+title: SendVerificationEmailHandlerResult
+sidebarTitle: SendVerificationEmailHandlerResult
+description: No description provided.
+---
+
+# `SendVerificationEmailHandlerResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when a new verification email has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/auth/types/send-verification-email-machine.mdx b/docs/reference/javascript/auth/types/send-verification-email-machine.mdx
new file mode 100644
index 0000000000..b421d9ceb8
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: SendVerificationEmailMachine
+sidebarTitle: SendVerificationEmailMachine
+description: No description provided.
+---
+
+# `SendVerificationEmailMachine`
diff --git a/docs/reference/javascript/auth/types/send-verification-email-options.mdx b/docs/reference/javascript/auth/types/send-verification-email-options.mdx
new file mode 100644
index 0000000000..c30542544f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-options.mdx
@@ -0,0 +1,18 @@
+---
+title: SendVerificationEmailOptions
+sidebarTitle: SendVerificationEmailOptions
+description: No description provided.
+---
+
+# `SendVerificationEmailOptions`
+
+## Parameters
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
diff --git a/docs/reference/javascript/auth/types/send-verification-email-params.mdx b/docs/reference/javascript/auth/types/send-verification-email-params.mdx
new file mode 100644
index 0000000000..d16b4f9f5a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-params.mdx
@@ -0,0 +1,23 @@
+---
+title: SendVerificationEmailParams
+sidebarTitle: SendVerificationEmailParams
+description: No description provided.
+---
+
+# `SendVerificationEmailParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`RedirectOption`](/reference/javascript/auth/types/redirect-option)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/types/send-verification-email-response.mdx b/docs/reference/javascript/auth/types/send-verification-email-response.mdx
new file mode 100644
index 0000000000..a15eb23eb3
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-response.mdx
@@ -0,0 +1,17 @@
+---
+title: SendVerificationEmailResponse
+sidebarTitle: SendVerificationEmailResponse
+description: payload from hasura-auth endpoint /user/email/send-verification-email
+---
+
+# `SendVerificationEmailResponse`
+
+payload from hasura-auth endpoint /user/email/send-verification-email
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/send-verification-email-services.mdx b/docs/reference/javascript/auth/types/send-verification-email-services.mdx
new file mode 100644
index 0000000000..d145f74142
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-services.mdx
@@ -0,0 +1,11 @@
+---
+title: SendVerificationEmailServices
+sidebarTitle: SendVerificationEmailServices
+description: No description provided.
+---
+
+# `SendVerificationEmailServices`
+
+```ts
+type SendVerificationEmailServices = () => { request: { data: [SendVerificationEmailResponse](/reference/javascript/auth/types/send-verification-email-response) } }
+```
diff --git a/docs/reference/javascript/auth/types/send-verification-email-state.mdx b/docs/reference/javascript/auth/types/send-verification-email-state.mdx
new file mode 100644
index 0000000000..3cc3b89572
--- /dev/null
+++ b/docs/reference/javascript/auth/types/send-verification-email-state.mdx
@@ -0,0 +1,43 @@
+---
+title: SendVerificationEmailState
+sidebarTitle: SendVerificationEmailState
+description: No description provided.
+---
+
+# `SendVerificationEmailState`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when a new verification email has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
diff --git a/docs/reference/javascript/auth/types/session-action-handler-result.mdx b/docs/reference/javascript/auth/types/session-action-handler-result.mdx
new file mode 100644
index 0000000000..3eebc7b4bf
--- /dev/null
+++ b/docs/reference/javascript/auth/types/session-action-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: SessionActionHandlerResult
+sidebarTitle: SessionActionHandlerResult
+description: No description provided.
+---
+
+# `SessionActionHandlerResult`
+
+## Parameters
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-anonymous-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-anonymous-handler-result.mdx
new file mode 100644
index 0000000000..7e43ab3cd8
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-anonymous-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: SignInAnonymousHandlerResult
+sidebarTitle: SignInAnonymousHandlerResult
+description: No description provided.
+---
+
+# `SignInAnonymousHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-anonymous-response.mdx b/docs/reference/javascript/auth/types/sign-in-anonymous-response.mdx
new file mode 100644
index 0000000000..210dc8c432
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-anonymous-response.mdx
@@ -0,0 +1,9 @@
+---
+title: SignInAnonymousResponse
+sidebarTitle: SignInAnonymousResponse
+description: payload from hasura-auth endpoint /signin/anonymous
+---
+
+# `SignInAnonymousResponse`
+
+payload from hasura-auth endpoint /signin/anonymous
diff --git a/docs/reference/javascript/auth/types/sign-in-anonymous-state.mdx b/docs/reference/javascript/auth/types/sign-in-anonymous-state.mdx
new file mode 100644
index 0000000000..2e2abce6e0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-anonymous-state.mdx
@@ -0,0 +1,61 @@
+---
+title: SignInAnonymousState
+sidebarTitle: SignInAnonymousState
+description: No description provided.
+---
+
+# `SignInAnonymousState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-password-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-email-password-handler-result.mdx
new file mode 100644
index 0000000000..59ad9a0dee
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-password-handler-result.mdx
@@ -0,0 +1,69 @@
+---
+title: SignInEmailPasswordHandlerResult
+sidebarTitle: SignInEmailPasswordHandlerResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordHandlerResult`
+
+## Parameters
+
+---
+
+**needsMfaOtp ** required boolean
+
+---
+
+**mfa ** required null | { ticket: string }
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-password-otp-params.mdx b/docs/reference/javascript/auth/types/sign-in-email-password-otp-params.mdx
new file mode 100644
index 0000000000..d58bc78e4e
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-password-otp-params.mdx
@@ -0,0 +1,19 @@
+---
+title: SignInEmailPasswordOtpParams
+sidebarTitle: SignInEmailPasswordOtpParams
+description: No description provided.
+---
+
+# `SignInEmailPasswordOtpParams`
+
+## Parameters
+
+---
+
+**otp ** required string
+
+---
+
+**ticket ** optional string
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-password-params.mdx b/docs/reference/javascript/auth/types/sign-in-email-password-params.mdx
new file mode 100644
index 0000000000..ba6ee70c4f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-password-params.mdx
@@ -0,0 +1,19 @@
+---
+title: SignInEmailPasswordParams
+sidebarTitle: SignInEmailPasswordParams
+description: No description provided.
+---
+
+# `SignInEmailPasswordParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**password ** required string
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-password-state.mdx b/docs/reference/javascript/auth/types/sign-in-email-password-state.mdx
new file mode 100644
index 0000000000..e2678b675e
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-password-state.mdx
@@ -0,0 +1,77 @@
+---
+title: SignInEmailPasswordState
+sidebarTitle: SignInEmailPasswordState
+description: No description provided.
+---
+
+# `SignInEmailPasswordState`
+
+## Parameters
+
+---
+
+**needsMfaOtp ** required boolean
+
+---
+
+**mfa ** required null | { ticket: string }
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-passwordless-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-email-passwordless-handler-result.mdx
new file mode 100644
index 0000000000..8f397c1db7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-passwordless-handler-result.mdx
@@ -0,0 +1,35 @@
+---
+title: SignInEmailPasswordlessHandlerResult
+sidebarTitle: SignInEmailPasswordlessHandlerResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordlessHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-email-passwordless-state.mdx b/docs/reference/javascript/auth/types/sign-in-email-passwordless-state.mdx
new file mode 100644
index 0000000000..42375e07e4
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-email-passwordless-state.mdx
@@ -0,0 +1,43 @@
+---
+title: SignInEmailPasswordlessState
+sidebarTitle: SignInEmailPasswordlessState
+description: No description provided.
+---
+
+# `SignInEmailPasswordlessState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-mfa-totp-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-mfa-totp-handler-result.mdx
new file mode 100644
index 0000000000..43ca8a295f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-mfa-totp-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: SignInMfaTotpHandlerResult
+sidebarTitle: SignInMfaTotpHandlerResult
+description: No description provided.
+---
+
+# `SignInMfaTotpHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-mfa-totp-response.mdx b/docs/reference/javascript/auth/types/sign-in-mfa-totp-response.mdx
new file mode 100644
index 0000000000..8fb8263ad6
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-mfa-totp-response.mdx
@@ -0,0 +1,9 @@
+---
+title: SignInMfaTotpResponse
+sidebarTitle: SignInMfaTotpResponse
+description: payload from hasura-auth endpoint /signin/mfa/totp
+---
+
+# `SignInMfaTotpResponse`
+
+payload from hasura-auth endpoint /signin/mfa/totp
diff --git a/docs/reference/javascript/auth/types/sign-in-mfa-totp-state.mdx b/docs/reference/javascript/auth/types/sign-in-mfa-totp-state.mdx
new file mode 100644
index 0000000000..d01f9f9adf
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-mfa-totp-state.mdx
@@ -0,0 +1,61 @@
+---
+title: SignInMfaTotpState
+sidebarTitle: SignInMfaTotpState
+description: No description provided.
+---
+
+# `SignInMfaTotpState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-params.mdx b/docs/reference/javascript/auth/types/sign-in-params.mdx
new file mode 100644
index 0000000000..6e196d2c5a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-params.mdx
@@ -0,0 +1,18 @@
+---
+title: SignInParams
+sidebarTitle: SignInParams
+description: No description provided.
+---
+
+# `SignInParams`
+
+```ts
+type SignInParams =
+ | SignInEmailPasswordParams
+ | SignInEmailPasswordOtpParams
+ | SignInPasswordlessEmailParams
+ | SignInPasswordlessSecurityKeyParams
+ | SignInPasswordlessSmsOtpParams
+ | SignInPasswordlessSmsParams
+ | SignInWithProviderParams
+```
diff --git a/docs/reference/javascript/auth/types/sign-in-passwordless-email-params.mdx b/docs/reference/javascript/auth/types/sign-in-passwordless-email-params.mdx
new file mode 100644
index 0000000000..d73a59b89b
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-passwordless-email-params.mdx
@@ -0,0 +1,28 @@
+---
+title: SignInPasswordlessEmailParams
+sidebarTitle: SignInPasswordlessEmailParams
+description: No description provided.
+---
+
+# `SignInPasswordlessEmailParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`PasswordlessOptions`](/reference/javascript/auth/types/passwordless-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. locale | string
| | Locale of the user, in two digits |
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-passwordless-security-key-params.mdx b/docs/reference/javascript/auth/types/sign-in-passwordless-security-key-params.mdx
new file mode 100644
index 0000000000..d53c07df87
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-passwordless-security-key-params.mdx
@@ -0,0 +1,19 @@
+---
+title: SignInPasswordlessSecurityKeyParams
+sidebarTitle: SignInPasswordlessSecurityKeyParams
+description: No description provided.
+---
+
+# `SignInPasswordlessSecurityKeyParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**securityKey ** required "true"
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-passwordless-sms-otp-params.mdx b/docs/reference/javascript/auth/types/sign-in-passwordless-sms-otp-params.mdx
new file mode 100644
index 0000000000..a4264a90d6
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-passwordless-sms-otp-params.mdx
@@ -0,0 +1,19 @@
+---
+title: SignInPasswordlessSmsOtpParams
+sidebarTitle: SignInPasswordlessSmsOtpParams
+description: No description provided.
+---
+
+# `SignInPasswordlessSmsOtpParams`
+
+## Parameters
+
+---
+
+**phoneNumber ** required string
+
+---
+
+**otp ** required string
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-passwordless-sms-params.mdx b/docs/reference/javascript/auth/types/sign-in-passwordless-sms-params.mdx
new file mode 100644
index 0000000000..529e8d6f04
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-passwordless-sms-params.mdx
@@ -0,0 +1,28 @@
+---
+title: SignInPasswordlessSmsParams
+sidebarTitle: SignInPasswordlessSmsParams
+description: No description provided.
+---
+
+# `SignInPasswordlessSmsParams`
+
+## Parameters
+
+---
+
+**phoneNumber ** required string
+
+---
+
+**options ** optional [`PasswordlessOptions`](/reference/javascript/auth/types/passwordless-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. locale | string
| | Locale of the user, in two digits |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-pat-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-pat-handler-result.mdx
new file mode 100644
index 0000000000..ddee6edf06
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-pat-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: SignInPATHandlerResult
+sidebarTitle: SignInPATHandlerResult
+description: No description provided.
+---
+
+# `SignInPATHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-pat-response.mdx b/docs/reference/javascript/auth/types/sign-in-pat-response.mdx
new file mode 100644
index 0000000000..a00dfad846
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-pat-response.mdx
@@ -0,0 +1,9 @@
+---
+title: SignInPATResponse
+sidebarTitle: SignInPATResponse
+description: payload from hasura-auth endpoint /signin/pat
+---
+
+# `SignInPATResponse`
+
+payload from hasura-auth endpoint /signin/pat
diff --git a/docs/reference/javascript/auth/types/sign-in-pat-state.mdx b/docs/reference/javascript/auth/types/sign-in-pat-state.mdx
new file mode 100644
index 0000000000..15caf0692c
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-pat-state.mdx
@@ -0,0 +1,61 @@
+---
+title: SignInPATState
+sidebarTitle: SignInPATState
+description: No description provided.
+---
+
+# `SignInPATState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-response.mdx b/docs/reference/javascript/auth/types/sign-in-response.mdx
new file mode 100644
index 0000000000..ebc846cd88
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-response.mdx
@@ -0,0 +1,25 @@
+---
+title: SignInResponse
+sidebarTitle: SignInResponse
+description: payload from hasura-auth endpoint /signin/email-password
+---
+
+# `SignInResponse`
+
+payload from hasura-auth endpoint /signin/email-password
+
+## Parameters
+
+---
+
+**session ** required null | [`NhostSession`](/reference/javascript/auth/types/nhost-session)
+
+---
+
+**mfa ** required null | { ticket: string }
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-handler-result.mdx
new file mode 100644
index 0000000000..e82ca6ab4e
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-handler-result.mdx
@@ -0,0 +1,61 @@
+---
+title: SignInSecurityKeyPasswordlessHandlerResult
+sidebarTitle: SignInSecurityKeyPasswordlessHandlerResult
+description: No description provided.
+---
+
+# `SignInSecurityKeyPasswordlessHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-state.mdx b/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-state.mdx
new file mode 100644
index 0000000000..b795c27d89
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-security-key-passwordless-state.mdx
@@ -0,0 +1,69 @@
+---
+title: SignInSecurityKeyPasswordlessState
+sidebarTitle: SignInSecurityKeyPasswordlessState
+description: No description provided.
+---
+
+# `SignInSecurityKeyPasswordlessState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-sms-passwordless-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-handler-result.mdx
new file mode 100644
index 0000000000..2b01336d64
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-handler-result.mdx
@@ -0,0 +1,41 @@
+---
+title: SignInSmsPasswordlessHandlerResult
+sidebarTitle: SignInSmsPasswordlessHandlerResult
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHandlerResult`
+
+## Parameters
+
+---
+
+**needsOtp ** required boolean
+
+Returns true when the one-time password has been sent over by SMS, and the user needs to send it back to complete sign-in.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-handler-result.mdx b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-handler-result.mdx
new file mode 100644
index 0000000000..7161cae159
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: SignInSmsPasswordlessOtpHandlerResult
+sidebarTitle: SignInSmsPasswordlessOtpHandlerResult
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessOtpHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-state.mdx b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-state.mdx
new file mode 100644
index 0000000000..682f0a0280
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-otp-state.mdx
@@ -0,0 +1,61 @@
+---
+title: SignInSmsPasswordlessOtpState
+sidebarTitle: SignInSmsPasswordlessOtpState
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessOtpState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-sms-passwordless-state.mdx b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-state.mdx
new file mode 100644
index 0000000000..6bc5966790
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-sms-passwordless-state.mdx
@@ -0,0 +1,49 @@
+---
+title: SignInSmsPasswordlessState
+sidebarTitle: SignInSmsPasswordlessState
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessState`
+
+## Parameters
+
+---
+
+**needsOtp ** required boolean
+
+Returns true when the one-time password has been sent over by SMS, and the user needs to send it back to complete sign-in.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-in-with-provider-params.mdx b/docs/reference/javascript/auth/types/sign-in-with-provider-params.mdx
new file mode 100644
index 0000000000..aa529563e6
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-in-with-provider-params.mdx
@@ -0,0 +1,13 @@
+---
+title: SignInWithProviderParams
+sidebarTitle: SignInWithProviderParams
+description: No description provided.
+---
+
+# `SignInWithProviderParams`
+
+```ts
+type SignInWithProviderParams =
+ | { provider: Exclude; options: CommonProviderOptions }
+ | { provider: 'workos'; options: WorkOsOptions }
+```
diff --git a/docs/reference/javascript/auth/types/sign-out-response.mdx b/docs/reference/javascript/auth/types/sign-out-response.mdx
new file mode 100644
index 0000000000..fb822b1835
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-out-response.mdx
@@ -0,0 +1,17 @@
+---
+title: SignOutResponse
+sidebarTitle: SignOutResponse
+description: payload from hasura-auth endpoint /signout
+---
+
+# `SignOutResponse`
+
+payload from hasura-auth endpoint /signout
+
+## Parameters
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-outless-handler-result.mdx b/docs/reference/javascript/auth/types/sign-outless-handler-result.mdx
new file mode 100644
index 0000000000..56fa2b0949
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-outless-handler-result.mdx
@@ -0,0 +1,35 @@
+---
+title: SignOutlessHandlerResult
+sidebarTitle: SignOutlessHandlerResult
+description: No description provided.
+---
+
+# `SignOutlessHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-outless-state.mdx b/docs/reference/javascript/auth/types/sign-outless-state.mdx
new file mode 100644
index 0000000000..1bd8eacc8f
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-outless-state.mdx
@@ -0,0 +1,43 @@
+---
+title: SignOutlessState
+sidebarTitle: SignOutlessState
+description: No description provided.
+---
+
+# `SignOutlessState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-email-password-handler-result.mdx b/docs/reference/javascript/auth/types/sign-up-email-password-handler-result.mdx
new file mode 100644
index 0000000000..5090b517b7
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-email-password-handler-result.mdx
@@ -0,0 +1,61 @@
+---
+title: SignUpEmailPasswordHandlerResult
+sidebarTitle: SignUpEmailPasswordHandlerResult
+description: No description provided.
+---
+
+# `SignUpEmailPasswordHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-email-password-params.mdx b/docs/reference/javascript/auth/types/sign-up-email-password-params.mdx
new file mode 100644
index 0000000000..776055b16e
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-email-password-params.mdx
@@ -0,0 +1,32 @@
+---
+title: SignUpEmailPasswordParams
+sidebarTitle: SignUpEmailPasswordParams
+description: No description provided.
+---
+
+# `SignUpEmailPasswordParams`
+
+## Parameters
+
+---
+
+**options ** optional [`SignUpOptions`](/reference/javascript/auth/types/sign-up-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. locale | string
| | Locale of the user, in two digits |
+
+---
+
+**email ** required string
+
+---
+
+**password ** required string
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-email-password-state.mdx b/docs/reference/javascript/auth/types/sign-up-email-password-state.mdx
new file mode 100644
index 0000000000..6278a74a4a
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-email-password-state.mdx
@@ -0,0 +1,69 @@
+---
+title: SignUpEmailPasswordState
+sidebarTitle: SignUpEmailPasswordState
+description: No description provided.
+---
+
+# `SignUpEmailPasswordState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-options.mdx b/docs/reference/javascript/auth/types/sign-up-options.mdx
new file mode 100644
index 0000000000..3011157c15
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-options.mdx
@@ -0,0 +1,48 @@
+---
+title: SignUpOptions
+sidebarTitle: SignUpOptions
+description: No description provided.
+---
+
+# `SignUpOptions`
+
+## Parameters
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-params.mdx b/docs/reference/javascript/auth/types/sign-up-params.mdx
new file mode 100644
index 0000000000..4c5684114b
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-params.mdx
@@ -0,0 +1,11 @@
+---
+title: SignUpParams
+sidebarTitle: SignUpParams
+description: No description provided.
+---
+
+# `SignUpParams`
+
+```ts
+type SignUpParams = SignUpEmailPasswordParams | SignUpSecurityKeyParams
+```
diff --git a/docs/reference/javascript/auth/types/sign-up-response.mdx b/docs/reference/javascript/auth/types/sign-up-response.mdx
new file mode 100644
index 0000000000..4e2ebf5bae
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-response.mdx
@@ -0,0 +1,9 @@
+---
+title: SignUpResponse
+sidebarTitle: SignUpResponse
+description: payload from hasura-auth endpoint /signup/email-password
+---
+
+# `SignUpResponse`
+
+payload from hasura-auth endpoint /signup/email-password
diff --git a/docs/reference/javascript/auth/types/sign-up-security-key-handler-result.mdx b/docs/reference/javascript/auth/types/sign-up-security-key-handler-result.mdx
new file mode 100644
index 0000000000..7567331ce9
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-security-key-handler-result.mdx
@@ -0,0 +1,61 @@
+---
+title: SignUpSecurityKeyHandlerResult
+sidebarTitle: SignUpSecurityKeyHandlerResult
+description: No description provided.
+---
+
+# `SignUpSecurityKeyHandlerResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-security-key-options.mdx b/docs/reference/javascript/auth/types/sign-up-security-key-options.mdx
new file mode 100644
index 0000000000..6998a16672
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-security-key-options.mdx
@@ -0,0 +1,54 @@
+---
+title: SignUpSecurityKeyOptions
+sidebarTitle: SignUpSecurityKeyOptions
+description: No description provided.
+---
+
+# `SignUpSecurityKeyOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
+
+**nickname ** optional string
+
+Optional nickname for the security key
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-security-key-params.mdx b/docs/reference/javascript/auth/types/sign-up-security-key-params.mdx
new file mode 100644
index 0000000000..8ce9b95449
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-security-key-params.mdx
@@ -0,0 +1,33 @@
+---
+title: SignUpSecurityKeyParams
+sidebarTitle: SignUpSecurityKeyParams
+description: No description provided.
+---
+
+# `SignUpSecurityKeyParams`
+
+## Parameters
+
+---
+
+**email ** required string
+
+---
+
+**options ** optional [`SignUpSecurityKeyOptions`](/reference/javascript/auth/types/sign-up-security-key-options)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| options. locale | string
| | Locale of the user, in two digits |
+| options. allowedRoles | Array<string>
| | Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth. |
+| options. defaultRole | string
| | Default role of the user. Must be part of the default allowed roles defined in Hasura Auth. |
+| options. displayName | string
| | Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise. |
+| options. metadata | Record<string, unknown>
| | Custom additional user information stored in the `metadata` column. Can be any JSON object. |
+| options. redirectTo | string
| | Redirection path in the client application that will be used in the link in the verification email. For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`. |
+| options. nickname | string
| | Optional nickname for the security key |
+
+---
+
+**securityKey ** required "true"
+
+---
diff --git a/docs/reference/javascript/auth/types/sign-up-security-key-state.mdx b/docs/reference/javascript/auth/types/sign-up-security-key-state.mdx
new file mode 100644
index 0000000000..97538efdaf
--- /dev/null
+++ b/docs/reference/javascript/auth/types/sign-up-security-key-state.mdx
@@ -0,0 +1,69 @@
+---
+title: SignUpSecurityKeyState
+sidebarTitle: SignUpSecurityKeyState
+description: No description provided.
+---
+
+# `SignUpSecurityKeyState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`AuthErrorPayload`](/reference/javascript/auth/types/auth-error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/javascript/auth/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
diff --git a/docs/reference/javascript/auth/types/state-error-types.mdx b/docs/reference/javascript/auth/types/state-error-types.mdx
new file mode 100644
index 0000000000..9ad2399dbb
--- /dev/null
+++ b/docs/reference/javascript/auth/types/state-error-types.mdx
@@ -0,0 +1,11 @@
+---
+title: StateErrorTypes
+sidebarTitle: StateErrorTypes
+description: No description provided.
+---
+
+# `StateErrorTypes`
+
+```ts
+type StateErrorTypes = 'registration' | 'authentication' | 'signout'
+```
diff --git a/docs/reference/javascript/auth/types/storage-getter.mdx b/docs/reference/javascript/auth/types/storage-getter.mdx
new file mode 100644
index 0000000000..f291c7aab8
--- /dev/null
+++ b/docs/reference/javascript/auth/types/storage-getter.mdx
@@ -0,0 +1,13 @@
+---
+title: StorageGetter
+sidebarTitle: StorageGetter
+description: No description provided.
+---
+
+# `StorageGetter`
+
+```ts
+type StorageGetter = () => (
+ key: string
+) => string | null | Promise
+```
diff --git a/docs/reference/javascript/auth/types/storage-setter.mdx b/docs/reference/javascript/auth/types/storage-setter.mdx
new file mode 100644
index 0000000000..764c99fc6c
--- /dev/null
+++ b/docs/reference/javascript/auth/types/storage-setter.mdx
@@ -0,0 +1,14 @@
+---
+title: StorageSetter
+sidebarTitle: StorageSetter
+description: No description provided.
+---
+
+# `StorageSetter`
+
+```ts
+type StorageSetter = () => (
+ key: string,
+ value: string | null
+) => void | Promise
+```
diff --git a/docs/reference/javascript/auth/types/user.mdx b/docs/reference/javascript/auth/types/user.mdx
new file mode 100644
index 0000000000..5033d0e5bb
--- /dev/null
+++ b/docs/reference/javascript/auth/types/user.mdx
@@ -0,0 +1,91 @@
+---
+title: User
+sidebarTitle: User
+description: User information
+---
+
+# `User`
+
+User information
+
+## Parameters
+
+---
+
+**id ** required string
+
+User's unique identifier (uuid)
+
+---
+
+**createdAt ** required string
+
+The date-time when the user has been created
+
+---
+
+**displayName ** required string
+
+User's display name
+
+---
+
+**avatarUrl ** required string
+
+The URL to the user's profile picture
+
+---
+
+**locale ** required string
+
+The locale of the user, as a two-characters string
+
+---
+
+**email ** optional string
+
+User's email address
+
+---
+
+**isAnonymous ** required boolean
+
+Whether or not the user is anonymous
+
+---
+
+**defaultRole ** required string
+
+The default role of the user
+
+---
+
+**roles ** required Array<string>
+
+The roles assigned to the user
+
+---
+
+**metadata ** required Record<string, unknown>
+
+Additional attributes used for user information
+
+---
+
+**emailVerified ** required boolean
+
+Is `true` if the user email has not been verified
+
+---
+
+**phoneNumber ** required null | string
+
+---
+
+**phoneNumberVerified ** required boolean
+
+---
+
+**activeMfaType ** required null | "totp"
+
+---
diff --git a/docs/reference/javascript/auth/types/validation-auth-error-payload.mdx b/docs/reference/javascript/auth/types/validation-auth-error-payload.mdx
new file mode 100644
index 0000000000..e649b2abd0
--- /dev/null
+++ b/docs/reference/javascript/auth/types/validation-auth-error-payload.mdx
@@ -0,0 +1,13 @@
+---
+title: ValidationAuthErrorPayload
+sidebarTitle: ValidationAuthErrorPayload
+description: No description provided.
+---
+
+# `ValidationAuthErrorPayload`
+
+```ts
+type ValidationAuthErrorPayload = AuthErrorPayload & {
+ status: VALIDATION_ERROR_CODE
+}
+```
diff --git a/docs/reference/javascript/auth/types/work-os-options.mdx b/docs/reference/javascript/auth/types/work-os-options.mdx
new file mode 100644
index 0000000000..49dbb8515d
--- /dev/null
+++ b/docs/reference/javascript/auth/types/work-os-options.mdx
@@ -0,0 +1,60 @@
+---
+title: WorkOsOptions
+sidebarTitle: WorkOsOptions
+description: No description provided.
+---
+
+# `WorkOsOptions`
+
+## Parameters
+
+---
+
+**locale ** optional string
+
+Locale of the user, in two digits
+
+---
+
+**allowedRoles ** optional Array<string>
+
+Allowed roles of the user. Must be a subset of the default allowed roles defined in Hasura Auth.
+
+---
+
+**defaultRole ** optional string
+
+Default role of the user. Must be part of the default allowed roles defined in Hasura Auth.
+
+---
+
+**displayName ** optional string
+
+Display name of the user. If not provided, it will use the display name given by the social provider (Oauth) used on registration, or the email address otherwise.
+
+---
+
+**metadata ** optional Record<string, unknown>
+
+Custom additional user information stored in the `metadata` column. Can be any JSON object.
+
+---
+
+**redirectTo ** optional string
+
+Redirection path in the client application that will be used in the link in the verification email.
+For instance, if you want to redirect to `https://myapp.com/success`, the `redirectTo` value is `'/success'`.
+
+---
+
+**connection ** optional string
+
+---
+
+**organization ** optional string
+
+---
+
+**provider ** optional string
+
+---
diff --git a/docs/reference/javascript/graphql/get-url.mdx b/docs/reference/javascript/graphql/get-url.mdx
new file mode 100644
index 0000000000..8275e6f1ff
--- /dev/null
+++ b/docs/reference/javascript/graphql/get-url.mdx
@@ -0,0 +1,6 @@
+---
+title: getUrl()
+sidebarTitle: getUrl()
+---
+
+Use `nhost.graphql.getUrl()` to get the GraphQL URL.
diff --git a/docs/reference/javascript/graphql/nhost-graphql-client.mdx b/docs/reference/javascript/graphql/nhost-graphql-client.mdx
new file mode 100644
index 0000000000..a2578c3dd0
--- /dev/null
+++ b/docs/reference/javascript/graphql/nhost-graphql-client.mdx
@@ -0,0 +1,15 @@
+---
+title: NhostGraphqlClient
+sidebarTitle: GraphQL
+description: No description provided.
+---
+
+# `NhostGraphqlClient`
+
+## Parameters
+
+---
+
+**params ** required NhostGraphqlConstructorParams
+
+---
diff --git a/docs/reference/javascript/graphql/request.mdx b/docs/reference/javascript/graphql/request.mdx
new file mode 100644
index 0000000000..eca52e87f6
--- /dev/null
+++ b/docs/reference/javascript/graphql/request.mdx
@@ -0,0 +1,44 @@
+---
+title: request()
+sidebarTitle: request()
+---
+
+# `request()`
+
+## Overload 1 of 2
+
+Use `nhost.graphql.request` to send a GraphQL request. For more serious GraphQL usage we recommend using a GraphQL client such as Apollo Client (https://www.apollographql.com/docs/react).
+
+```ts
+const CUSTOMERS = gql`
+ query {
+ customers {
+ id
+ name
+ }
+ }
+`
+const { data, error } = await nhost.graphql.request(CUSTOMERS)
+```
+
+### Parameters
+
+---
+
+**document ** required RequestDocument | TypedDocumentNode<T, V>
+
+---
+
+**variablesAndRequestHeaders ** required
+
+---
+
+## Overload 2 of 2
+
+### Parameters
+
+---
+
+**options ** required RequestOptions<V, T>
+
+---
diff --git a/docs/reference/javascript/graphql/set-access-token.mdx b/docs/reference/javascript/graphql/set-access-token.mdx
new file mode 100644
index 0000000000..b555824324
--- /dev/null
+++ b/docs/reference/javascript/graphql/set-access-token.mdx
@@ -0,0 +1,18 @@
+---
+title: setAccessToken()
+sidebarTitle: setAccessToken()
+---
+
+Use `nhost.graphql.setAccessToken` to a set an access token to be used in subsequent graphql requests. Note that if you're signin in users with `nhost.auth.signIn()` the access token will be set automatically.
+
+```ts
+nhost.graphql.setAccessToken('some-access-token')
+```
+
+## Parameters
+
+---
+
+**accessToken ** required undefined | string
+
+---
diff --git a/docs/reference/javascript/storage/02-create-file-upload-machine.mdx b/docs/reference/javascript/storage/02-create-file-upload-machine.mdx
new file mode 100644
index 0000000000..b0f26d51d9
--- /dev/null
+++ b/docs/reference/javascript/storage/02-create-file-upload-machine.mdx
@@ -0,0 +1,4 @@
+---
+title: createFileUploadMachine()
+sidebarTitle: createFileUploadMachine()
+---
diff --git a/docs/reference/javascript/storage/02-create-multiple-files-upload-machine.mdx b/docs/reference/javascript/storage/02-create-multiple-files-upload-machine.mdx
new file mode 100644
index 0000000000..a59541f3d3
--- /dev/null
+++ b/docs/reference/javascript/storage/02-create-multiple-files-upload-machine.mdx
@@ -0,0 +1,4 @@
+---
+title: createMultipleFilesUploadMachine()
+sidebarTitle: createMultipleFilesUploadMachine()
+---
diff --git a/docs/reference/javascript/storage/02-upload-file-promise.mdx b/docs/reference/javascript/storage/02-upload-file-promise.mdx
new file mode 100644
index 0000000000..828b7a31cd
--- /dev/null
+++ b/docs/reference/javascript/storage/02-upload-file-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: uploadFilePromise()
+sidebarTitle: uploadFilePromise()
+---
+
+## Parameters
+
+---
+
+**params ** required [`FileUploadConfig`](/reference/javascript/storage/types/file-upload-config) & Partial<StorageUploadFileParams>
+
+---
+
+**interpreter ** required ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>> | Interpreter<FileUploadContext, any, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/javascript/storage/02-upload-multiple-files-promise.mdx b/docs/reference/javascript/storage/02-upload-multiple-files-promise.mdx
new file mode 100644
index 0000000000..c997779856
--- /dev/null
+++ b/docs/reference/javascript/storage/02-upload-multiple-files-promise.mdx
@@ -0,0 +1,16 @@
+---
+title: uploadMultipleFilesPromise()
+sidebarTitle: uploadMultipleFilesPromise()
+---
+
+## Parameters
+
+---
+
+**params ** required [`FileUploadConfig`](/reference/javascript/storage/types/file-upload-config) & [`UploadMultipleFilesActionParams`](/reference/javascript/storage/types/upload-multiple-files-action-params)
+
+---
+
+**service ** required Interpreter<MultipleFilesUploadContext, any, { type: "ADD", files: AnyFileList, bucketId: string } | { type: "UPLOAD", files: AnyFileList, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", additions: number } | { type: "UPLOAD_DONE" } | { type: "UPLOAD_ERROR" } | { type: "CANCEL" } | { type: "REMOVE" } | { type: "CLEAR" }, { value: any, context: MultipleFilesUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", files: AnyFileList, bucketId: string } | { type: "UPLOAD", files: AnyFileList, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", additions: number } | { type: "UPLOAD_DONE" } | { type: "UPLOAD_ERROR" } | { type: "CANCEL" } | { type: "REMOVE" } | { type: "CLEAR" }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/javascript/storage/delete.mdx b/docs/reference/javascript/storage/delete.mdx
new file mode 100644
index 0000000000..e301f37af2
--- /dev/null
+++ b/docs/reference/javascript/storage/delete.mdx
@@ -0,0 +1,22 @@
+---
+title: delete()
+sidebarTitle: delete()
+---
+
+Use `nhost.storage.delete` to delete a file. To delete a file the user must have permissions to delete the file in the `storage.files` table. Deleting the file using `nhost.storage.delete()` will delete both the file and its metadata.
+
+```ts
+const { error } = await nhost.storage.delete({ fileId: 'uuid' })
+```
+
+## Parameters
+
+---
+
+**params ** required [`StorageDeleteParams`](/reference/javascript/storage/types/storage-delete-params)
+
+| Property | Type | Required | Notes |
+| :---------------------------------------------------------------------------------------- | :------------------ | :------: | :---- |
+| params. fileId | string
| ✔️ | |
+
+---
diff --git a/docs/reference/javascript/storage/get-presigned-url.mdx b/docs/reference/javascript/storage/get-presigned-url.mdx
new file mode 100644
index 0000000000..3119ac797c
--- /dev/null
+++ b/docs/reference/javascript/storage/get-presigned-url.mdx
@@ -0,0 +1,35 @@
+---
+title: getPresignedUrl()
+sidebarTitle: getPresignedUrl()
+---
+
+Use `nhost.storage.getPresignedUrl` to get a presigned URL of a file. To get a presigned URL the user must have permission to select the file in the `storage.files` table.
+
+```ts
+const { presignedUrl, error } = await nhost.storage.getPresignedUrl({
+ fileId: ''
+})
+
+if (error) {
+ throw error
+}
+
+console.log('url: ', presignedUrl.url)
+console.log('expiration: ', presignedUrl.expiration)
+```
+
+## Parameters
+
+---
+
+**params ** required [`StorageGetPresignedUrlParams`](/reference/javascript/storage/types/storage-get-presigned-url-params)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------- | :------------------ | :------: | :----------------------------------------------------------- |
+| params. fileId | string
| ✔️ | |
+| params. blur | number
| | Image blur, between 0 and 100 |
+| params. quality | number
| | Image quality, between 1 and 100, 100 being the best quality |
+| params. height | number
| | Image height, in pixels |
+| params. width | number
| | Image width, in pixels |
+
+---
diff --git a/docs/reference/javascript/storage/get-public-url.mdx b/docs/reference/javascript/storage/get-public-url.mdx
new file mode 100644
index 0000000000..15e988d3bc
--- /dev/null
+++ b/docs/reference/javascript/storage/get-public-url.mdx
@@ -0,0 +1,26 @@
+---
+title: getPublicUrl()
+sidebarTitle: getPublicUrl()
+---
+
+Use `nhost.storage.getPublicUrl` to get the public URL of a file. The public URL can be used for un-authenticated users to access files. To access public files the `public` role must have permissions to select the file in the `storage.files` table.
+
+```ts
+const publicUrl = nhost.storage.getPublicUrl({ fileId: '' })
+```
+
+## Parameters
+
+---
+
+**params ** required [`StorageGetUrlParams`](/reference/javascript/storage/types/storage-get-url-params)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------- | :------------------ | :------: | :----------------------------------------------------------- |
+| params. fileId | string
| ✔️ | |
+| params. blur | number
| | Image blur, between 0 and 100 |
+| params. quality | number
| | Image quality, between 1 and 100, 100 being the best quality |
+| params. height | number
| | Image height, in pixels |
+| params. width | number
| | Image width, in pixels |
+
+---
diff --git a/docs/reference/javascript/storage/hasura-storage-client.mdx b/docs/reference/javascript/storage/hasura-storage-client.mdx
new file mode 100644
index 0000000000..b2ecd84f5b
--- /dev/null
+++ b/docs/reference/javascript/storage/hasura-storage-client.mdx
@@ -0,0 +1,20 @@
+---
+title: HasuraStorageClient
+sidebarTitle: Storage
+description: No description provided.
+---
+
+# `HasuraStorageClient`
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required [`NhostStorageConstructorParams`](/reference/javascript/storage/types/nhost-storage-constructor-params)
+
+| Property | Type | Required | Notes |
+| :---------------------------------------------------------------------------------------------------------- | :------------------ | :------: | :---------------------------------------------------------------------------------------- |
+| \_\_namedParameters. url | string
| ✔️ | Storage endpoint. |
+| \_\_namedParameters. adminSecret | string
| | Admin secret. When set, it is sent as an `x-hasura-admin-secret` header for all requests. |
+
+---
diff --git a/docs/reference/javascript/storage/set-access-token.mdx b/docs/reference/javascript/storage/set-access-token.mdx
new file mode 100644
index 0000000000..73a62a0bb8
--- /dev/null
+++ b/docs/reference/javascript/storage/set-access-token.mdx
@@ -0,0 +1,20 @@
+---
+title: setAccessToken()
+sidebarTitle: setAccessToken()
+---
+
+Use `nhost.storage.setAccessToken` to a set an access token to be used in subsequent storage requests. Note that if you're signin in users with `nhost.auth.signIn()` the access token will be set automatically.
+
+```ts
+nhost.storage.setAccessToken('some-access-token')
+```
+
+## Parameters
+
+---
+
+**accessToken ** optional string
+
+Access token
+
+---
diff --git a/docs/reference/javascript/storage/set-admin-secret.mdx b/docs/reference/javascript/storage/set-admin-secret.mdx
new file mode 100644
index 0000000000..588695ed33
--- /dev/null
+++ b/docs/reference/javascript/storage/set-admin-secret.mdx
@@ -0,0 +1,20 @@
+---
+title: setAdminSecret()
+sidebarTitle: setAdminSecret()
+---
+
+Use `nhost.storage.adminSecret` to set the admin secret to be used for subsequent storage requests. This is useful if you want to run storage in "admin mode".
+
+```ts
+nhost.storage.setAdminSecret('some-admin-secret')
+```
+
+## Parameters
+
+---
+
+**adminSecret ** optional string
+
+Hasura admin secret
+
+---
diff --git a/docs/reference/javascript/storage/types/_category_.json b/docs/reference/javascript/storage/types/_category_.json
new file mode 100644
index 0000000000..63e39462e4
--- /dev/null
+++ b/docs/reference/javascript/storage/types/_category_.json
@@ -0,0 +1,9 @@
+{
+ "label": "Types",
+ "position": 1,
+ "className": "hidden",
+ "link": {
+ "type": "generated-index",
+ "slug": "/reference/javascript/storage/types"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/javascript/storage/types/any-file-list.mdx b/docs/reference/javascript/storage/types/any-file-list.mdx
new file mode 100644
index 0000000000..bbf10a0765
--- /dev/null
+++ b/docs/reference/javascript/storage/types/any-file-list.mdx
@@ -0,0 +1,11 @@
+---
+title: AnyFileList
+sidebarTitle: AnyFileList
+description: No description provided.
+---
+
+# `AnyFileList`
+
+```ts
+type AnyFileList = File | Array | FileList
+```
diff --git a/docs/reference/javascript/storage/types/api-delete-params.mdx b/docs/reference/javascript/storage/types/api-delete-params.mdx
new file mode 100644
index 0000000000..cdee08d92f
--- /dev/null
+++ b/docs/reference/javascript/storage/types/api-delete-params.mdx
@@ -0,0 +1,15 @@
+---
+title: ApiDeleteParams
+sidebarTitle: ApiDeleteParams
+description: No description provided.
+---
+
+# `ApiDeleteParams`
+
+## Parameters
+
+---
+
+**fileId ** required string
+
+---
diff --git a/docs/reference/javascript/storage/types/api-delete-response.mdx b/docs/reference/javascript/storage/types/api-delete-response.mdx
new file mode 100644
index 0000000000..127ff624c0
--- /dev/null
+++ b/docs/reference/javascript/storage/types/api-delete-response.mdx
@@ -0,0 +1,15 @@
+---
+title: ApiDeleteResponse
+sidebarTitle: ApiDeleteResponse
+description: No description provided.
+---
+
+# `ApiDeleteResponse`
+
+## Parameters
+
+---
+
+**error ** required null | Error
+
+---
diff --git a/docs/reference/javascript/storage/types/api-get-presigned-url-params.mdx b/docs/reference/javascript/storage/types/api-get-presigned-url-params.mdx
new file mode 100644
index 0000000000..93c0ee808d
--- /dev/null
+++ b/docs/reference/javascript/storage/types/api-get-presigned-url-params.mdx
@@ -0,0 +1,15 @@
+---
+title: ApiGetPresignedUrlParams
+sidebarTitle: ApiGetPresignedUrlParams
+description: No description provided.
+---
+
+# `ApiGetPresignedUrlParams`
+
+## Parameters
+
+---
+
+**fileId ** required string
+
+---
diff --git a/docs/reference/javascript/storage/types/api-get-presigned-url-response.mdx b/docs/reference/javascript/storage/types/api-get-presigned-url-response.mdx
new file mode 100644
index 0000000000..0fa84e2ac5
--- /dev/null
+++ b/docs/reference/javascript/storage/types/api-get-presigned-url-response.mdx
@@ -0,0 +1,13 @@
+---
+title: ApiGetPresignedUrlResponse
+sidebarTitle: ApiGetPresignedUrlResponse
+description: No description provided.
+---
+
+# `ApiGetPresignedUrlResponse`
+
+```ts
+type ApiGetPresignedUrlResponse =
+ | { presignedUrl: { url: string; expiration: number }; error: null }
+ | { presignedUrl: null; error: Error }
+```
diff --git a/docs/reference/javascript/storage/types/file-item-ref.mdx b/docs/reference/javascript/storage/types/file-item-ref.mdx
new file mode 100644
index 0000000000..fb6f2ca059
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-item-ref.mdx
@@ -0,0 +1,7 @@
+---
+title: FileItemRef
+sidebarTitle: FileItemRef
+description: No description provided.
+---
+
+# `FileItemRef`
diff --git a/docs/reference/javascript/storage/types/file-response.mdx b/docs/reference/javascript/storage/types/file-response.mdx
new file mode 100644
index 0000000000..2c8e00ef5c
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-response.mdx
@@ -0,0 +1,51 @@
+---
+title: FileResponse
+sidebarTitle: FileResponse
+description: No description provided.
+---
+
+# `FileResponse`
+
+## Parameters
+
+---
+
+**id ** required string
+
+---
+
+**name ** required string
+
+---
+
+**size ** required number
+
+---
+
+**mimeType ** required string
+
+---
+
+**etag ** required string
+
+---
+
+**createdAt ** required string
+
+---
+
+**bucketId ** required string
+
+---
+
+**isUploaded ** required "true"
+
+---
+
+**updatedAt ** required string
+
+---
+
+**uploadedByUserId ** required string
+
+---
diff --git a/docs/reference/javascript/storage/types/file-upload-config.mdx b/docs/reference/javascript/storage/types/file-upload-config.mdx
new file mode 100644
index 0000000000..3f2f26b39a
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-config.mdx
@@ -0,0 +1,23 @@
+---
+title: FileUploadConfig
+sidebarTitle: FileUploadConfig
+description: No description provided.
+---
+
+# `FileUploadConfig`
+
+## Parameters
+
+---
+
+**accessToken ** optional string
+
+---
+
+**url ** required string
+
+---
+
+**adminSecret ** optional string
+
+---
diff --git a/docs/reference/javascript/storage/types/file-upload-context.mdx b/docs/reference/javascript/storage/types/file-upload-context.mdx
new file mode 100644
index 0000000000..56e29a96db
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-context.mdx
@@ -0,0 +1,11 @@
+---
+title: FileUploadContext
+sidebarTitle: FileUploadContext
+description: No description provided.
+---
+
+# `FileUploadContext`
+
+```ts
+type FileUploadContext = () => { progress: number | null, loaded: number, error: [StorageErrorPayload](/reference/javascript/storage/types/storage-error-payload) | null, id: string, bucketId: string, file: File }
+```
diff --git a/docs/reference/javascript/storage/types/file-upload-event-payload.mdx b/docs/reference/javascript/storage/types/file-upload-event-payload.mdx
new file mode 100644
index 0000000000..b8e3100300
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-event-payload.mdx
@@ -0,0 +1,11 @@
+---
+title: FileUploadEventPayload
+sidebarTitle: FileUploadEventPayload
+description: No description provided.
+---
+
+# `FileUploadEventPayload`
+
+```ts
+type FileUploadEventPayload = () => __type
+```
diff --git a/docs/reference/javascript/storage/types/file-upload-events.mdx b/docs/reference/javascript/storage/types/file-upload-events.mdx
new file mode 100644
index 0000000000..58c94b3556
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-events.mdx
@@ -0,0 +1,29 @@
+---
+title: FileUploadEvents
+sidebarTitle: FileUploadEvents
+description: No description provided.
+---
+
+# `FileUploadEvents`
+
+```ts
+type FileUploadEvents =
+ | { type: 'ADD'; file: File; id: string; bucketId: string; name: string }
+ | ({
+ type: 'UPLOAD'
+ file: File
+ id: string
+ name: string
+ bucketId: string
+ } & FileUploadConfig)
+ | {
+ type: 'UPLOAD_PROGRESS'
+ progress: number
+ loaded: number
+ additions: number
+ }
+ | { type: 'UPLOAD_DONE'; id: string; bucketId: string }
+ | { type: 'UPLOAD_ERROR'; error: StorageErrorPayload }
+ | { type: 'CANCEL' }
+ | { type: 'DESTROY' }
+```
diff --git a/docs/reference/javascript/storage/types/file-upload-machine.mdx b/docs/reference/javascript/storage/types/file-upload-machine.mdx
new file mode 100644
index 0000000000..c5228d741a
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: FileUploadMachine
+sidebarTitle: FileUploadMachine
+description: No description provided.
+---
+
+# `FileUploadMachine`
diff --git a/docs/reference/javascript/storage/types/file-upload-state.mdx b/docs/reference/javascript/storage/types/file-upload-state.mdx
new file mode 100644
index 0000000000..ba9ea05105
--- /dev/null
+++ b/docs/reference/javascript/storage/types/file-upload-state.mdx
@@ -0,0 +1,65 @@
+---
+title: FileUploadState
+sidebarTitle: FileUploadState
+description: No description provided.
+---
+
+# `FileUploadState`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the file is being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when the file has been successfully uploaded.
+
+---
+
+**id ** optional string
+
+Returns the id of the file.
+
+---
+
+**bucketId ** optional string
+
+Returns the bucket id.
+
+---
+
+**name ** optional string
+
+Returns the name of the file.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`StorageErrorPayload`](/reference/javascript/storage/types/storage-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/storage/types/multiple-files-handler-result.mdx b/docs/reference/javascript/storage/types/multiple-files-handler-result.mdx
new file mode 100644
index 0000000000..e20d985294
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-files-handler-result.mdx
@@ -0,0 +1,29 @@
+---
+title: MultipleFilesHandlerResult
+sidebarTitle: MultipleFilesHandlerResult
+description: No description provided.
+---
+
+# `MultipleFilesHandlerResult`
+
+## Parameters
+
+---
+
+**files ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+The list of file uploads. The properties can be accessed through `item.getSnapshot()` of with the `useFileUploadItem` hook.
+
+---
+
+**isError ** required boolean
+
+Returns `true` when all upload request are processed, but at least one of them has failed.
+
+---
+
+**errors ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+Returns the list of file uploads that have failed
+
+---
diff --git a/docs/reference/javascript/storage/types/multiple-files-upload-context.mdx b/docs/reference/javascript/storage/types/multiple-files-upload-context.mdx
new file mode 100644
index 0000000000..fe354a127d
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-files-upload-context.mdx
@@ -0,0 +1,11 @@
+---
+title: MultipleFilesUploadContext
+sidebarTitle: MultipleFilesUploadContext
+description: No description provided.
+---
+
+# `MultipleFilesUploadContext`
+
+```ts
+type MultipleFilesUploadContext = () => { progress: number | null, files: Array<[FileItemRef](/reference/javascript/storage/types/file-item-ref)>, loaded: number, total: number }
+```
diff --git a/docs/reference/javascript/storage/types/multiple-files-upload-events.mdx b/docs/reference/javascript/storage/types/multiple-files-upload-events.mdx
new file mode 100644
index 0000000000..c051472b6e
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-files-upload-events.mdx
@@ -0,0 +1,23 @@
+---
+title: MultipleFilesUploadEvents
+sidebarTitle: MultipleFilesUploadEvents
+description: No description provided.
+---
+
+# `MultipleFilesUploadEvents`
+
+```ts
+type MultipleFilesUploadEvents =
+ | { type: 'ADD'; files: AnyFileList; bucketId: string }
+ | ({
+ type: 'UPLOAD'
+ files: AnyFileList
+ bucketId: string
+ } & FileUploadConfig)
+ | { type: 'UPLOAD_PROGRESS'; additions: number }
+ | { type: 'UPLOAD_DONE' }
+ | { type: 'UPLOAD_ERROR' }
+ | { type: 'CANCEL' }
+ | { type: 'REMOVE' }
+ | { type: 'CLEAR' }
+```
diff --git a/docs/reference/javascript/storage/types/multiple-files-upload-machine.mdx b/docs/reference/javascript/storage/types/multiple-files-upload-machine.mdx
new file mode 100644
index 0000000000..897926b924
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-files-upload-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: MultipleFilesUploadMachine
+sidebarTitle: MultipleFilesUploadMachine
+description: No description provided.
+---
+
+# `MultipleFilesUploadMachine`
diff --git a/docs/reference/javascript/storage/types/multiple-files-upload-state.mdx b/docs/reference/javascript/storage/types/multiple-files-upload-state.mdx
new file mode 100644
index 0000000000..7a38359dd2
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-files-upload-state.mdx
@@ -0,0 +1,47 @@
+---
+title: MultipleFilesUploadState
+sidebarTitle: MultipleFilesUploadState
+description: No description provided.
+---
+
+# `MultipleFilesUploadState`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the files are being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the overall progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**files ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+The list of file uploads. The properties can be accessed through `item.getSnapshot()` of with the `useFileUploadItem` hook.
+
+---
+
+**isError ** required boolean
+
+Returns `true` when all upload request are processed, but at least one of them has failed.
+
+---
+
+**errors ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+Returns the list of file uploads that have failed
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when all the files have been successfully uploaded.
+
+---
diff --git a/docs/reference/javascript/storage/types/multiple-upload-progress-state.mdx b/docs/reference/javascript/storage/types/multiple-upload-progress-state.mdx
new file mode 100644
index 0000000000..8fbecbb688
--- /dev/null
+++ b/docs/reference/javascript/storage/types/multiple-upload-progress-state.mdx
@@ -0,0 +1,23 @@
+---
+title: MultipleUploadProgressState
+sidebarTitle: MultipleUploadProgressState
+description: No description provided.
+---
+
+# `MultipleUploadProgressState`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the files are being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the overall progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
diff --git a/docs/reference/javascript/storage/types/nhost-storage-constructor-params.mdx b/docs/reference/javascript/storage/types/nhost-storage-constructor-params.mdx
new file mode 100644
index 0000000000..6d93dc9f46
--- /dev/null
+++ b/docs/reference/javascript/storage/types/nhost-storage-constructor-params.mdx
@@ -0,0 +1,23 @@
+---
+title: NhostStorageConstructorParams
+sidebarTitle: NhostStorageConstructorParams
+description: No description provided.
+---
+
+# `NhostStorageConstructorParams`
+
+## Parameters
+
+---
+
+**url ** required string
+
+Storage endpoint.
+
+---
+
+**adminSecret ** optional string
+
+Admin secret. When set, it is sent as an `x-hasura-admin-secret` header for all requests.
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-action-error-state.mdx b/docs/reference/javascript/storage/types/storage-action-error-state.mdx
new file mode 100644
index 0000000000..c97227c0a4
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-action-error-state.mdx
@@ -0,0 +1,29 @@
+---
+title: StorageActionErrorState
+sidebarTitle: StorageActionErrorState
+description: No description provided.
+---
+
+# `StorageActionErrorState`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`StorageErrorPayload`](/reference/javascript/storage/types/storage-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-delete-params.mdx b/docs/reference/javascript/storage/types/storage-delete-params.mdx
new file mode 100644
index 0000000000..c7785bfc26
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-delete-params.mdx
@@ -0,0 +1,15 @@
+---
+title: StorageDeleteParams
+sidebarTitle: StorageDeleteParams
+description: No description provided.
+---
+
+# `StorageDeleteParams`
+
+## Parameters
+
+---
+
+**fileId ** required string
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-delete-response.mdx b/docs/reference/javascript/storage/types/storage-delete-response.mdx
new file mode 100644
index 0000000000..d6416ce419
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-delete-response.mdx
@@ -0,0 +1,15 @@
+---
+title: StorageDeleteResponse
+sidebarTitle: StorageDeleteResponse
+description: No description provided.
+---
+
+# `StorageDeleteResponse`
+
+## Parameters
+
+---
+
+**error ** required null | Error
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-error-payload.mdx b/docs/reference/javascript/storage/types/storage-error-payload.mdx
new file mode 100644
index 0000000000..799a860ad9
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-error-payload.mdx
@@ -0,0 +1,15 @@
+---
+title: StorageErrorPayload
+sidebarTitle: StorageErrorPayload
+description: No description provided.
+---
+
+# `StorageErrorPayload`
+
+```ts
+type StorageErrorPayload = () => {
+ error: string
+ status: number
+ message: string
+}
+```
diff --git a/docs/reference/javascript/storage/types/storage-get-presigned-url-params.mdx b/docs/reference/javascript/storage/types/storage-get-presigned-url-params.mdx
new file mode 100644
index 0000000000..9875fea945
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-get-presigned-url-params.mdx
@@ -0,0 +1,39 @@
+---
+title: StorageGetPresignedUrlParams
+sidebarTitle: StorageGetPresignedUrlParams
+description: No description provided.
+---
+
+# `StorageGetPresignedUrlParams`
+
+## Parameters
+
+---
+
+**fileId ** required string
+
+---
+
+**blur ** optional number
+
+Image blur, between 0 and 100
+
+---
+
+**quality ** optional number
+
+Image quality, between 1 and 100, 100 being the best quality
+
+---
+
+**height ** optional number
+
+Image height, in pixels
+
+---
+
+**width ** optional number
+
+Image width, in pixels
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-get-presigned-url-response.mdx b/docs/reference/javascript/storage/types/storage-get-presigned-url-response.mdx
new file mode 100644
index 0000000000..5d50def6b5
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-get-presigned-url-response.mdx
@@ -0,0 +1,13 @@
+---
+title: StorageGetPresignedUrlResponse
+sidebarTitle: StorageGetPresignedUrlResponse
+description: No description provided.
+---
+
+# `StorageGetPresignedUrlResponse`
+
+```ts
+type StorageGetPresignedUrlResponse =
+ | { presignedUrl: { url: string; expiration: number }; error: null }
+ | { presignedUrl: null; error: Error }
+```
diff --git a/docs/reference/javascript/storage/types/storage-get-url-params.mdx b/docs/reference/javascript/storage/types/storage-get-url-params.mdx
new file mode 100644
index 0000000000..4b9250b3d9
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-get-url-params.mdx
@@ -0,0 +1,39 @@
+---
+title: StorageGetUrlParams
+sidebarTitle: StorageGetUrlParams
+description: No description provided.
+---
+
+# `StorageGetUrlParams`
+
+## Parameters
+
+---
+
+**fileId ** required string
+
+---
+
+**blur ** optional number
+
+Image blur, between 0 and 100
+
+---
+
+**quality ** optional number
+
+Image quality, between 1 and 100, 100 being the best quality
+
+---
+
+**height ** optional number
+
+Image height, in pixels
+
+---
+
+**width ** optional number
+
+Image width, in pixels
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-image-transformation-params.mdx b/docs/reference/javascript/storage/types/storage-image-transformation-params.mdx
new file mode 100644
index 0000000000..59c13c4dd7
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-image-transformation-params.mdx
@@ -0,0 +1,35 @@
+---
+title: StorageImageTransformationParams
+sidebarTitle: StorageImageTransformationParams
+description: No description provided.
+---
+
+# `StorageImageTransformationParams`
+
+## Parameters
+
+---
+
+**width ** optional number
+
+Image width, in pixels
+
+---
+
+**height ** optional number
+
+Image height, in pixels
+
+---
+
+**quality ** optional number
+
+Image quality, between 1 and 100, 100 being the best quality
+
+---
+
+**blur ** optional number
+
+Image blur, between 0 and 100
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-upload-file-params.mdx b/docs/reference/javascript/storage/types/storage-upload-file-params.mdx
new file mode 100644
index 0000000000..dad060b4a6
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-file-params.mdx
@@ -0,0 +1,27 @@
+---
+title: StorageUploadFileParams
+sidebarTitle: StorageUploadFileParams
+description: No description provided.
+---
+
+# `StorageUploadFileParams`
+
+## Parameters
+
+---
+
+**file ** required File
+
+---
+
+**bucketId ** optional string
+
+---
+
+**name ** optional string
+
+---
+
+**id ** optional string
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-upload-file-response.mdx b/docs/reference/javascript/storage/types/storage-upload-file-response.mdx
new file mode 100644
index 0000000000..dfa4dcb350
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-file-response.mdx
@@ -0,0 +1,13 @@
+---
+title: StorageUploadFileResponse
+sidebarTitle: StorageUploadFileResponse
+description: No description provided.
+---
+
+# `StorageUploadFileResponse`
+
+```ts
+type StorageUploadFileResponse =
+ | { fileMetadata: FileResponse; error: null }
+ | { fileMetadata: null; error: StorageErrorPayload }
+```
diff --git a/docs/reference/javascript/storage/types/storage-upload-form-data-params.mdx b/docs/reference/javascript/storage/types/storage-upload-form-data-params.mdx
new file mode 100644
index 0000000000..bdc39deb1b
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-form-data-params.mdx
@@ -0,0 +1,23 @@
+---
+title: StorageUploadFormDataParams
+sidebarTitle: StorageUploadFormDataParams
+description: No description provided.
+---
+
+# `StorageUploadFormDataParams`
+
+## Parameters
+
+---
+
+**formData ** required FormData | FormData
+
+---
+
+**headers ** optional Record<string, string>
+
+---
+
+**bucketId ** optional string
+
+---
diff --git a/docs/reference/javascript/storage/types/storage-upload-form-data-response.mdx b/docs/reference/javascript/storage/types/storage-upload-form-data-response.mdx
new file mode 100644
index 0000000000..b143991145
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-form-data-response.mdx
@@ -0,0 +1,13 @@
+---
+title: StorageUploadFormDataResponse
+sidebarTitle: StorageUploadFormDataResponse
+description: No description provided.
+---
+
+# `StorageUploadFormDataResponse`
+
+```ts
+type StorageUploadFormDataResponse =
+ | { fileMetadata: { processedFiles: Array }; error: null }
+ | { fileMetadata: null; error: StorageErrorPayload }
+```
diff --git a/docs/reference/javascript/storage/types/storage-upload-params.mdx b/docs/reference/javascript/storage/types/storage-upload-params.mdx
new file mode 100644
index 0000000000..c319035453
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-params.mdx
@@ -0,0 +1,11 @@
+---
+title: StorageUploadParams
+sidebarTitle: StorageUploadParams
+description: No description provided.
+---
+
+# `StorageUploadParams`
+
+```ts
+type StorageUploadParams = StorageUploadFileParams | StorageUploadFormDataParams
+```
diff --git a/docs/reference/javascript/storage/types/storage-upload-response.mdx b/docs/reference/javascript/storage/types/storage-upload-response.mdx
new file mode 100644
index 0000000000..ac22718c17
--- /dev/null
+++ b/docs/reference/javascript/storage/types/storage-upload-response.mdx
@@ -0,0 +1,13 @@
+---
+title: StorageUploadResponse
+sidebarTitle: StorageUploadResponse
+description: No description provided.
+---
+
+# `StorageUploadResponse`
+
+```ts
+type StorageUploadResponse =
+ | StorageUploadFileResponse
+ | StorageUploadFormDataResponse
+```
diff --git a/docs/reference/javascript/storage/types/upload-file-handler-result.mdx b/docs/reference/javascript/storage/types/upload-file-handler-result.mdx
new file mode 100644
index 0000000000..782ce6fa69
--- /dev/null
+++ b/docs/reference/javascript/storage/types/upload-file-handler-result.mdx
@@ -0,0 +1,53 @@
+---
+title: UploadFileHandlerResult
+sidebarTitle: UploadFileHandlerResult
+description: No description provided.
+---
+
+# `UploadFileHandlerResult`
+
+## Parameters
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when the file has been successfully uploaded.
+
+---
+
+**id ** optional string
+
+Returns the id of the file.
+
+---
+
+**bucketId ** optional string
+
+Returns the bucket id.
+
+---
+
+**name ** optional string
+
+Returns the name of the file.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`StorageErrorPayload`](/reference/javascript/storage/types/storage-error-payload)
+
+Provides details about the error
+
+---
diff --git a/docs/reference/javascript/storage/types/upload-headers.mdx b/docs/reference/javascript/storage/types/upload-headers.mdx
new file mode 100644
index 0000000000..bbdfc5436a
--- /dev/null
+++ b/docs/reference/javascript/storage/types/upload-headers.mdx
@@ -0,0 +1,11 @@
+---
+title: UploadHeaders
+sidebarTitle: UploadHeaders
+description: No description provided.
+---
+
+# `UploadHeaders`
+
+```ts
+type UploadHeaders = HeadersInit & { x-nhost-bucket-id: string, x-nhost-file-id: string, x-nhost-file-name: string }
+```
diff --git a/docs/reference/javascript/storage/types/upload-multiple-files-action-params.mdx b/docs/reference/javascript/storage/types/upload-multiple-files-action-params.mdx
new file mode 100644
index 0000000000..bf1892b4fe
--- /dev/null
+++ b/docs/reference/javascript/storage/types/upload-multiple-files-action-params.mdx
@@ -0,0 +1,11 @@
+---
+title: UploadMultipleFilesActionParams
+sidebarTitle: UploadMultipleFilesActionParams
+description: No description provided.
+---
+
+# `UploadMultipleFilesActionParams`
+
+```ts
+type UploadMultipleFilesActionParams = () => { files: [AnyFileList](/reference/javascript/storage/types/any-file-list), bucketId: string }
+```
diff --git a/docs/reference/javascript/storage/types/upload-progress-state.mdx b/docs/reference/javascript/storage/types/upload-progress-state.mdx
new file mode 100644
index 0000000000..62a6991735
--- /dev/null
+++ b/docs/reference/javascript/storage/types/upload-progress-state.mdx
@@ -0,0 +1,23 @@
+---
+title: UploadProgressState
+sidebarTitle: UploadProgressState
+description: No description provided.
+---
+
+# `UploadProgressState`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the file is being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
diff --git a/docs/reference/javascript/storage/upload.mdx b/docs/reference/javascript/storage/upload.mdx
new file mode 100644
index 0000000000..b928a430bc
--- /dev/null
+++ b/docs/reference/javascript/storage/upload.mdx
@@ -0,0 +1,70 @@
+---
+title: upload()
+sidebarTitle: upload()
+---
+
+# `upload()`
+
+## Overload 1 of 2
+
+Use `nhost.storage.upload` to upload a file.
+
+It's possible to use [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File) or [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) to upload a file. The `File` instance is only available in the browser while `FormData` with [`form-data`](https://www.npmjs.com/package/form-data) works both in the browser and in NodeJS (server).
+
+If no `bucketId` is specified the bucket `default` is used.
+
+### Parameters
+
+---
+
+**params ** required [`StorageUploadFileParams`](/reference/javascript/storage/types/storage-upload-file-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------ | :------------------ | :------: | :---- |
+| params. file | File
| ✔️ | |
+| params. bucketId | string
| | |
+| params. name | string
| | |
+| params. id | string
| | |
+
+---
+
+### Examples
+
+Upload a file from a browser using `File`.
+
+```ts
+await nhost.storage.upload({ file })
+```
+
+Upload a file from a browser using `File` to a specific Bucket.
+
+```ts
+await nhost.storage.upload({ file, bucketId: '' })
+```
+
+Upload a file from a server using `FormData` with [`form-data`](https://www.npmjs.com/package/form-data).
+
+```ts
+const fd = new FormData()
+fd.append('file', fs.createReadStream('./tests/assets/sample.pdf'))
+
+await storage.upload({
+ formData: fd
+})
+```
+
+## Overload 2 of 2
+
+### Parameters
+
+---
+
+**params ** required [`StorageUploadFormDataParams`](/reference/javascript/storage/types/storage-upload-form-data-params)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------ | :---------------------------------------- | :------: | :---- |
+| params. formData | FormData | FormData
| ✔️ | |
+| params. headers | Record<string, string>
| | |
+| params. bucketId | string
| | |
+
+---
diff --git a/docs/reference/nextjs/create-server-side-client.mdx b/docs/reference/nextjs/create-server-side-client.mdx
new file mode 100644
index 0000000000..0e53567557
--- /dev/null
+++ b/docs/reference/nextjs/create-server-side-client.mdx
@@ -0,0 +1,27 @@
+---
+title: createServerSideClient()
+sidebarTitle: createServerSideClient()
+---
+
+Creates an Nhost client that runs on the server side.
+It will try to get the refesh token in cookies, or from the request URL
+If a refresh token is found, it uses it to get an up to date access token (JWT) and a user session
+This method resolves when the authentication status is known eventually
+
+**`@returns`**
+
+instance of `NhostClient` that is ready to use on the server side (signed in or signed out)
+
+## Parameters
+
+---
+
+**params ** required string | Partial<Pick<NhostReactClientConstructorParams, "subdomain" | "region" | "authUrl" | "graphqlUrl" | "storageUrl" | "functionsUrl">>
+
+---
+
+**context ** required GetServerSidePropsContext<ParsedUrlQuery, PreviewData>
+
+Server side context
+
+---
diff --git a/docs/reference/nextjs/get-nhost-session.mdx b/docs/reference/nextjs/get-nhost-session.mdx
new file mode 100644
index 0000000000..e39e28d9fe
--- /dev/null
+++ b/docs/reference/nextjs/get-nhost-session.mdx
@@ -0,0 +1,76 @@
+---
+title: getNhostSession()
+sidebarTitle: getNhostSession()
+---
+
+Refreshes the access token if there is any and returns the Nhost session.
+
+**`@returns`**
+
+Nhost session
+
+```js
+export const getServerSideProps: GetServerSideProps = async (context) => {
+ const nhostSession = await getNhostSession(
+ { subdomain: '', region: '' },
+ context
+ )
+
+ return {
+ props: {
+ nhostSession
+ }
+ }
+}
+```
+
+## Parameters
+
+---
+
+**params ** required string | Partial<Pick<NhostReactClientConstructorParams, "subdomain" | "region" | "authUrl" | "graphqlUrl" | "storageUrl" | "functionsUrl">>
+
+---
+
+**context ** required GetServerSidePropsContext<ParsedUrlQuery, PreviewData>
+
+Next.js context
+
+---
+
+## Examples
+
+### Using an arrow function
+
+```js
+export const getServerSideProps: GetServerSideProps = async (context) => {
+ const nhostSession = await getNhostSession(
+ { subdomain: '', region: '' },
+ context
+ )
+
+ return {
+ props: {
+ nhostSession
+ }
+ }
+}
+```
+
+### Using a regular function
+
+```js
+export async function getServerSideProps(context: GetServerSidePropsContext) {
+ // or NextPageContext
+ const nhostSession = await getNhostSession(
+ { subdomain: '', region: '' },
+ context
+ )
+
+ return {
+ props: {
+ nhostSession
+ }
+ }
+}
+```
diff --git a/docs/reference/nextjs/nhost-client.mdx b/docs/reference/nextjs/nhost-client.mdx
new file mode 100644
index 0000000000..1261174bd6
--- /dev/null
+++ b/docs/reference/nextjs/nhost-client.mdx
@@ -0,0 +1,30 @@
+---
+title: NhostClient
+sidebarTitle: NhostClient
+description: No description provided.
+---
+
+# `NhostClient`
+
+## Parameters
+
+---
+
+**params ** required [`NhostNextClientConstructorParams`](/reference/nextjs/types/nhost-next-client-constructor-params)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------------- | :------------------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------- |
+| params. adminSecret | string
| | When set, the admin secret is sent as a header, `x-hasura-admin-secret`, for all requests to GraphQL, Storage, and Serverless Functions. |
+| params. functionsUrl | string
| | |
+| params. storageUrl | string
| | |
+| params. graphqlUrl | string
| | |
+| params. authUrl | string
| | |
+| params. region | string
| | Project region (e.g. `eu-central-1`) Project region is not required during local development (when `subdomain` is `localhost`) |
+| params. subdomain | string
| | Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`) Use `localhost` during local development |
+| params. backendUrl | string
| | Nhost backend URL Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead. |
+| params. devTools | boolean
| | Activate devTools e.g. the ability to connect to the xstate inspector |
+| params. autoSignIn | boolean
| | When set to true, will parse the url on startup to check if it contains a refresh token to start the session with |
+| params. autoRefreshToken | boolean
| | When set to true, will automatically refresh token before it expires |
+| params. refreshIntervalTime | number
| | Time interval until token refreshes, in seconds |
+
+---
diff --git a/docs/reference/nextjs/signed-in.mdx b/docs/reference/nextjs/signed-in.mdx
new file mode 100644
index 0000000000..ec28ca1c36
--- /dev/null
+++ b/docs/reference/nextjs/signed-in.mdx
@@ -0,0 +1,29 @@
+---
+title:
+sidebarTitle:
+---
+
+Use ` ` to control the rendering of components for users. Components inside ` ` are only rendered if the user is authenticated.
+
+```tsx
+import { NhostProvider, SignedIn } from '@nhost/react'
+import { nhost } from '@/utils/nhost'
+
+function Page() {
+ return (
+
+
+ Only rendered if the user is authenticated
+
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required { children: ReactNode }
+
+---
diff --git a/docs/reference/nextjs/signed-out.mdx b/docs/reference/nextjs/signed-out.mdx
new file mode 100644
index 0000000000..6d57345341
--- /dev/null
+++ b/docs/reference/nextjs/signed-out.mdx
@@ -0,0 +1,29 @@
+---
+title:
+sidebarTitle:
+---
+
+Use ` ` to control the rendering of components for users. Components inside ` ` are only rendered if the user is not authenticated.
+
+```tsx
+import { NhostProvider, SignedOut } from '@nhost/react'
+import { nhost } from '@/utils/nhost'
+
+function Page() {
+ return (
+
+
+ Only rendered if the user is not authenticated
+
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required { children: ReactNode }
+
+---
diff --git a/docs/reference/nextjs/types/_category_.json b/docs/reference/nextjs/types/_category_.json
new file mode 100644
index 0000000000..f9f20a6530
--- /dev/null
+++ b/docs/reference/nextjs/types/_category_.json
@@ -0,0 +1,9 @@
+{
+ "label": "Types",
+ "position": 1,
+ "className": "hidden",
+ "link": {
+ "type": "generated-index",
+ "slug": "/reference/nextjs/types"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/nextjs/types/add-securit-key-hook-result.mdx b/docs/reference/nextjs/types/add-securit-key-hook-result.mdx
new file mode 100644
index 0000000000..3149ed1084
--- /dev/null
+++ b/docs/reference/nextjs/types/add-securit-key-hook-result.mdx
@@ -0,0 +1,41 @@
+---
+title: AddSecuritKeyHookResult
+sidebarTitle: AddSecuritKeyHookResult
+description: No description provided.
+---
+
+# `AddSecuritKeyHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/nextjs/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**add ** required AddSecurityKeyHandler
+
+Add a security key to the current user with the WebAuthn API
+
+---
diff --git a/docs/reference/nextjs/types/auth-machine.mdx b/docs/reference/nextjs/types/auth-machine.mdx
new file mode 100644
index 0000000000..5d08c9d446
--- /dev/null
+++ b/docs/reference/nextjs/types/auth-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: AuthMachine
+sidebarTitle: AuthMachine
+description: No description provided.
+---
+
+# `AuthMachine`
diff --git a/docs/reference/nextjs/types/backend-url.mdx b/docs/reference/nextjs/types/backend-url.mdx
new file mode 100644
index 0000000000..9bf8c5a885
--- /dev/null
+++ b/docs/reference/nextjs/types/backend-url.mdx
@@ -0,0 +1,11 @@
+---
+title: BackendUrl
+sidebarTitle: BackendUrl
+description: No description provided.
+---
+
+# `BackendUrl`
+
+```ts
+type BackendUrl = () => { backendUrl: string }
+```
diff --git a/docs/reference/nextjs/types/change-email-hook-result.mdx b/docs/reference/nextjs/types/change-email-hook-result.mdx
new file mode 100644
index 0000000000..1774e66424
--- /dev/null
+++ b/docs/reference/nextjs/types/change-email-hook-result.mdx
@@ -0,0 +1,51 @@
+---
+title: ChangeEmailHookResult
+sidebarTitle: ChangeEmailHookResult
+description: No description provided.
+---
+
+# `ChangeEmailHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**changeEmail ** required ChangeEmailHandler
+
+Requests the email change. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/change-password-hook-result.mdx b/docs/reference/nextjs/types/change-password-hook-result.mdx
new file mode 100644
index 0000000000..a70b1f6fb3
--- /dev/null
+++ b/docs/reference/nextjs/types/change-password-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: ChangePasswordHookResult
+sidebarTitle: ChangePasswordHookResult
+description: No description provided.
+---
+
+# `ChangePasswordHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/nextjs/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**changePassword ** required ChangePasswordHandler
+
+Requests the password change. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/create-server-side-client-params.mdx b/docs/reference/nextjs/types/create-server-side-client-params.mdx
new file mode 100644
index 0000000000..9bdce08c7c
--- /dev/null
+++ b/docs/reference/nextjs/types/create-server-side-client-params.mdx
@@ -0,0 +1,7 @@
+---
+title: CreateServerSideClientParams
+sidebarTitle: CreateServerSideClientParams
+description: No description provided.
+---
+
+# `CreateServerSideClientParams`
diff --git a/docs/reference/nextjs/types/error-payload.mdx b/docs/reference/nextjs/types/error-payload.mdx
new file mode 100644
index 0000000000..a5f00b74cc
--- /dev/null
+++ b/docs/reference/nextjs/types/error-payload.mdx
@@ -0,0 +1,23 @@
+---
+title: ErrorPayload
+sidebarTitle: ErrorPayload
+description: No description provided.
+---
+
+# `ErrorPayload`
+
+## Parameters
+
+---
+
+**error ** required string
+
+---
+
+**status ** required number
+
+---
+
+**message ** required TMessage
+
+---
diff --git a/docs/reference/nextjs/types/file-item-ref.mdx b/docs/reference/nextjs/types/file-item-ref.mdx
new file mode 100644
index 0000000000..fb6f2ca059
--- /dev/null
+++ b/docs/reference/nextjs/types/file-item-ref.mdx
@@ -0,0 +1,7 @@
+---
+title: FileItemRef
+sidebarTitle: FileItemRef
+description: No description provided.
+---
+
+# `FileItemRef`
diff --git a/docs/reference/nextjs/types/file-upload-hook-result.mdx b/docs/reference/nextjs/types/file-upload-hook-result.mdx
new file mode 100644
index 0000000000..092f8984fa
--- /dev/null
+++ b/docs/reference/nextjs/types/file-upload-hook-result.mdx
@@ -0,0 +1,77 @@
+---
+title: FileUploadHookResult
+sidebarTitle: FileUploadHookResult
+description: No description provided.
+---
+
+# `FileUploadHookResult`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the file is being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when the file has been successfully uploaded.
+
+---
+
+**id ** optional string
+
+Returns the id of the file.
+
+---
+
+**bucketId ** optional string
+
+Returns the bucket id.
+
+---
+
+**name ** optional string
+
+Returns the name of the file.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | StorageErrorPayload
+
+Provides details about the error
+
+---
+
+**add ** required (params: StorageUploadFileParams) => void
+
+---
+
+**upload ** required (params: Partial<StorageUploadFileParams>) => Promise<UploadFileHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
diff --git a/docs/reference/nextjs/types/multiple-files-hook-result.mdx b/docs/reference/nextjs/types/multiple-files-hook-result.mdx
new file mode 100644
index 0000000000..0e5cc5e429
--- /dev/null
+++ b/docs/reference/nextjs/types/multiple-files-hook-result.mdx
@@ -0,0 +1,63 @@
+---
+title: MultipleFilesHookResult
+sidebarTitle: MultipleFilesHookResult
+description: No description provided.
+---
+
+# `MultipleFilesHookResult`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the files are being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the overall progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**files ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+The list of file uploads. The properties can be accessed through `item.getSnapshot()` of with the `useFileUploadItem` hook.
+
+---
+
+**isError ** required boolean
+
+Returns `true` when all upload request are processed, but at least one of them has failed.
+
+---
+
+**errors ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+Returns the list of file uploads that have failed
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when all the files have been successfully uploaded.
+
+---
+
+**add ** required (params: Required<Pick<UploadMultipleFilesActionParams, "files">> & UploadMultipleFilesActionParams) => void
+
+---
+
+**upload ** required (params: UploadMultipleFilesActionParams) => Promise<MultipleFilesHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
+
+**clear ** required () => void
+
+---
diff --git a/docs/reference/nextjs/types/nhost-auth-constructor-params.mdx b/docs/reference/nextjs/types/nhost-auth-constructor-params.mdx
new file mode 100644
index 0000000000..0175d75a88
--- /dev/null
+++ b/docs/reference/nextjs/types/nhost-auth-constructor-params.mdx
@@ -0,0 +1,71 @@
+---
+title: NhostAuthConstructorParams
+sidebarTitle: NhostAuthConstructorParams
+description: No description provided.
+---
+
+# `NhostAuthConstructorParams`
+
+## Parameters
+
+---
+
+**url ** required string
+
+---
+
+**start ** optional boolean
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
+
+**clientStorageType ** optional ClientStorageType
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**clientStorage ** optional ClientStorage
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
diff --git a/docs/reference/nextjs/types/nhost-next-client-constructor-params.mdx b/docs/reference/nextjs/types/nhost-next-client-constructor-params.mdx
new file mode 100644
index 0000000000..452ddd9269
--- /dev/null
+++ b/docs/reference/nextjs/types/nhost-next-client-constructor-params.mdx
@@ -0,0 +1,79 @@
+---
+title: NhostNextClientConstructorParams
+sidebarTitle: NhostNextClientConstructorParams
+description: No description provided.
+---
+
+# `NhostNextClientConstructorParams`
+
+## Parameters
+
+---
+
+**adminSecret ** optional string
+
+When set, the admin secret is sent as a header, `x-hasura-admin-secret`,
+for all requests to GraphQL, Storage, and Serverless Functions.
+
+---
+
+**functionsUrl ** optional string
+
+---
+
+**storageUrl ** optional string
+
+---
+
+**graphqlUrl ** optional string
+
+---
+
+**authUrl ** optional string
+
+---
+
+**region ** optional string
+
+Project region (e.g. `eu-central-1`)
+Project region is not required during local development (when `subdomain` is `localhost`)
+
+---
+
+**subdomain ** optional string
+
+Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`)
+Use `localhost` during local development
+
+---
+
+**backendUrl ** optional string
+
+Nhost backend URL
+Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead.
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
diff --git a/docs/reference/nextjs/types/nhost-provider-props.mdx b/docs/reference/nextjs/types/nhost-provider-props.mdx
new file mode 100644
index 0000000000..691ded0590
--- /dev/null
+++ b/docs/reference/nextjs/types/nhost-provider-props.mdx
@@ -0,0 +1,27 @@
+---
+title: NhostProviderProps
+sidebarTitle: NhostProviderProps
+description: No description provided.
+---
+
+# `NhostProviderProps`
+
+## Parameters
+
+---
+
+**nhost ** required NhostClient
+
+---
+
+**initial ** optional [`NhostSession`](/reference/nextjs/types/nhost-session)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------- | :------------------------------------- | :------: | :---- |
+| initial. user | [`User`](/reference/nextjs/types/user) | ✔️ | |
+| initial. refreshToken | null | string
| ✔️ | |
+| initial. accessTokenExpiresIn | number
| ✔️ | |
+| initial. accessToken | string
| ✔️ | |
+| initial. refreshTokenId | null | string
| | |
+
+---
diff --git a/docs/reference/nextjs/types/nhost-react-client-constructor-params.mdx b/docs/reference/nextjs/types/nhost-react-client-constructor-params.mdx
new file mode 100644
index 0000000000..7066e32b9d
--- /dev/null
+++ b/docs/reference/nextjs/types/nhost-react-client-constructor-params.mdx
@@ -0,0 +1,107 @@
+---
+title: NhostReactClientConstructorParams
+sidebarTitle: NhostReactClientConstructorParams
+description: No description provided.
+---
+
+# `NhostReactClientConstructorParams`
+
+## Parameters
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
+
+**clientStorageType ** optional ClientStorageType
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**clientStorage ** optional ClientStorage
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**backendUrl ** optional string
+
+Nhost backend URL
+Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead.
+
+---
+
+**subdomain ** optional string
+
+Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`)
+Use `localhost` during local development
+
+---
+
+**region ** optional string
+
+Project region (e.g. `eu-central-1`)
+Project region is not required during local development (when `subdomain` is `localhost`)
+
+---
+
+**authUrl ** optional string
+
+---
+
+**graphqlUrl ** optional string
+
+---
+
+**storageUrl ** optional string
+
+---
+
+**functionsUrl ** optional string
+
+---
+
+**adminSecret ** optional string
+
+When set, the admin secret is sent as a header, `x-hasura-admin-secret`,
+for all requests to GraphQL, Storage, and Serverless Functions.
+
+---
diff --git a/docs/reference/nextjs/types/nhost-session.mdx b/docs/reference/nextjs/types/nhost-session.mdx
new file mode 100644
index 0000000000..1050c03b8d
--- /dev/null
+++ b/docs/reference/nextjs/types/nhost-session.mdx
@@ -0,0 +1,48 @@
+---
+title: NhostSession
+sidebarTitle: NhostSession
+description: No description provided.
+---
+
+# `NhostSession`
+
+## Parameters
+
+---
+
+**accessToken ** required string
+
+---
+
+**accessTokenExpiresIn ** required number
+
+---
+
+**refreshToken ** required null | string
+
+---
+
+**refreshTokenId ** optional null | string
+
+---
+
+**user ** required [`User`](/reference/nextjs/types/user)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :------------------------------------------------- |
+| user. activeMfaType | null | "totp"
| ✔️ | |
+| user. phoneNumberVerified | boolean
| ✔️ | |
+| user. phoneNumber | null | string
| ✔️ | |
+| user. emailVerified | boolean
| ✔️ | Is `true` if the user email has not been verified |
+| user. metadata | Record<string, unknown>
| ✔️ | Additional attributes used for user information |
+| user. roles | Array<string>
| ✔️ | The roles assigned to the user |
+| user. defaultRole | string
| ✔️ | The default role of the user |
+| user. isAnonymous | boolean
| ✔️ | Whether or not the user is anonymous |
+| user. locale | string
| ✔️ | The locale of the user, as a two-characters string |
+| user. avatarUrl | string
| ✔️ | The URL to the user's profile picture |
+| user. displayName | string
| ✔️ | User's display name |
+| user. createdAt | string
| ✔️ | The date-time when the user has been created |
+| user. id | string
| ✔️ | User's unique identifier (uuid) |
+| user. email | string
| | User's email address |
+
+---
diff --git a/docs/reference/nextjs/types/reset-password-hook-result.mdx b/docs/reference/nextjs/types/reset-password-hook-result.mdx
new file mode 100644
index 0000000000..a0084fe2bf
--- /dev/null
+++ b/docs/reference/nextjs/types/reset-password-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: ResetPasswordHookResult
+sidebarTitle: ResetPasswordHookResult
+description: No description provided.
+---
+
+# `ResetPasswordHookResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when an email to reset the password has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**resetPassword ** required ResetPasswordHandler
+
+Sends an email with a temporary connection link. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/send-verification-email-hook-result.mdx b/docs/reference/nextjs/types/send-verification-email-hook-result.mdx
new file mode 100644
index 0000000000..71e2101a4d
--- /dev/null
+++ b/docs/reference/nextjs/types/send-verification-email-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: SendVerificationEmailHookResult
+sidebarTitle: SendVerificationEmailHookResult
+description: No description provided.
+---
+
+# `SendVerificationEmailHookResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when a new verification email has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**sendEmail ** required SendVerificationEmailHandler
+
+Resend the verification email. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-email-password-hook-result.mdx b/docs/reference/nextjs/types/sign-in-email-password-hook-result.mdx
new file mode 100644
index 0000000000..7cc7ec4be3
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-email-password-hook-result.mdx
@@ -0,0 +1,85 @@
+---
+title: SignInEmailPasswordHookResult
+sidebarTitle: SignInEmailPasswordHookResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordHookResult`
+
+## Parameters
+
+---
+
+**needsMfaOtp ** required boolean
+
+---
+
+**mfa ** required null | { ticket: string }
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/nextjs/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signInEmailPassword ** required SignInEmailPasswordHandler
+
+---
+
+**sendMfaOtp ** required SendMfaOtpHander
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-email-passwordless-hook-result.mdx b/docs/reference/nextjs/types/sign-in-email-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..88e56dd7c0
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-email-passwordless-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: SignInEmailPasswordlessHookResult
+sidebarTitle: SignInEmailPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/nextjs/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**signInEmailPasswordless ** required SignInEmailPasswordlessHandler
+
+Sends a magic link to the given email
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-pat-hook-result.mdx b/docs/reference/nextjs/types/sign-in-pat-hook-result.mdx
new file mode 100644
index 0000000000..22f5a71aae
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-pat-hook-result.mdx
@@ -0,0 +1,65 @@
+---
+title: SignInPATHookResult
+sidebarTitle: SignInPATHookResult
+description: No description provided.
+---
+
+# `SignInPATHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/nextjs/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**signInPAT ** required SignInPATHandler
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-security-key-passwordless-hook-result.mdx b/docs/reference/nextjs/types/sign-in-security-key-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..601ea5d41b
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-security-key-passwordless-hook-result.mdx
@@ -0,0 +1,73 @@
+---
+title: SignInSecurityKeyPasswordlessHookResult
+sidebarTitle: SignInSecurityKeyPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInSecurityKeyPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/nextjs/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signInEmailSecurityKey ** required SignInSecurityKeyPasswordlessHandler
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-sms-passwordless-handler.mdx b/docs/reference/nextjs/types/sign-in-sms-passwordless-handler.mdx
new file mode 100644
index 0000000000..bfa3d297d1
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-sms-passwordless-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessHandler
+sidebarTitle: SignInSmsPasswordlessHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHandler`
diff --git a/docs/reference/nextjs/types/sign-in-sms-passwordless-hook-result.mdx b/docs/reference/nextjs/types/sign-in-sms-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..df74a3659f
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-sms-passwordless-hook-result.mdx
@@ -0,0 +1,59 @@
+---
+title: SignInSmsPasswordlessHookResult
+sidebarTitle: SignInSmsPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**needsOtp ** required boolean
+
+Returns true when the one-time password has been sent over by SMS, and the user needs to send it back to complete sign-in.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**signInSmsPasswordless ** required [`SignInSmsPasswordlessHandler`](/reference/nextjs/types/sign-in-sms-passwordless-handler)
+
+Sends a one-time code to the given phoneNumber
+
+---
+
+**sendOtp ** required [`SignInSmsPasswordlessOtpHandler`](/reference/nextjs/types/sign-in-sms-passwordless-otp-handler)
+
+---
diff --git a/docs/reference/nextjs/types/sign-in-sms-passwordless-otp-handler.mdx b/docs/reference/nextjs/types/sign-in-sms-passwordless-otp-handler.mdx
new file mode 100644
index 0000000000..75ec218e2f
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-in-sms-passwordless-otp-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessOtpHandler
+sidebarTitle: SignInSmsPasswordlessOtpHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessOtpHandler`
diff --git a/docs/reference/nextjs/types/sign-up-email-password-hook-result.mdx b/docs/reference/nextjs/types/sign-up-email-password-hook-result.mdx
new file mode 100644
index 0000000000..c5ab7b6638
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-up-email-password-hook-result.mdx
@@ -0,0 +1,75 @@
+---
+title: SignUpEmailPasswordHookResult
+sidebarTitle: SignUpEmailPasswordHookResult
+description: No description provided.
+---
+
+# `SignUpEmailPasswordHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/nextjs/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signUpEmailPassword ** required SignUpEmailPasswordHandler
+
+Used for a new user to sign up. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/sign-up-security-key-hook-result.mdx b/docs/reference/nextjs/types/sign-up-security-key-hook-result.mdx
new file mode 100644
index 0000000000..afa0d19baf
--- /dev/null
+++ b/docs/reference/nextjs/types/sign-up-security-key-hook-result.mdx
@@ -0,0 +1,75 @@
+---
+title: SignUpSecurityKeyHookResult
+sidebarTitle: SignUpSecurityKeyHookResult
+description: No description provided.
+---
+
+# `SignUpSecurityKeyHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/nextjs/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signUpEmailSecurityKey ** required SignUpSecurityKeyHandler
+
+Used for a new user to sign up with a security key. Returns a promise with the current context
+
+---
diff --git a/docs/reference/nextjs/types/subdomain.mdx b/docs/reference/nextjs/types/subdomain.mdx
new file mode 100644
index 0000000000..5f734e91ad
--- /dev/null
+++ b/docs/reference/nextjs/types/subdomain.mdx
@@ -0,0 +1,15 @@
+---
+title: Subdomain
+sidebarTitle: Subdomain
+description: No description provided.
+---
+
+# `Subdomain`
+
+```ts
+type Subdomain = () => {
+ subdomain: string
+ region: string
+ adminSecret: string
+}
+```
diff --git a/docs/reference/nextjs/types/user.mdx b/docs/reference/nextjs/types/user.mdx
new file mode 100644
index 0000000000..5033d0e5bb
--- /dev/null
+++ b/docs/reference/nextjs/types/user.mdx
@@ -0,0 +1,91 @@
+---
+title: User
+sidebarTitle: User
+description: User information
+---
+
+# `User`
+
+User information
+
+## Parameters
+
+---
+
+**id ** required string
+
+User's unique identifier (uuid)
+
+---
+
+**createdAt ** required string
+
+The date-time when the user has been created
+
+---
+
+**displayName ** required string
+
+User's display name
+
+---
+
+**avatarUrl ** required string
+
+The URL to the user's profile picture
+
+---
+
+**locale ** required string
+
+The locale of the user, as a two-characters string
+
+---
+
+**email ** optional string
+
+User's email address
+
+---
+
+**isAnonymous ** required boolean
+
+Whether or not the user is anonymous
+
+---
+
+**defaultRole ** required string
+
+The default role of the user
+
+---
+
+**roles ** required Array<string>
+
+The roles assigned to the user
+
+---
+
+**metadata ** required Record<string, unknown>
+
+Additional attributes used for user information
+
+---
+
+**emailVerified ** required boolean
+
+Is `true` if the user email has not been verified
+
+---
+
+**phoneNumber ** required null | string
+
+---
+
+**phoneNumberVerified ** required boolean
+
+---
+
+**activeMfaType ** required null | "totp"
+
+---
diff --git a/docs/reference/nextjs/use-access-token.mdx b/docs/reference/nextjs/use-access-token.mdx
new file mode 100644
index 0000000000..1e56c3f06b
--- /dev/null
+++ b/docs/reference/nextjs/use-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useAccessToken()
+sidebarTitle: useAccessToken()
+---
+
+Use `useAccessToken` to get the access token of the user.
+
+```ts
+const accessToken = useAccessToken()
+```
diff --git a/docs/reference/nextjs/use-add-security-key.mdx b/docs/reference/nextjs/use-add-security-key.mdx
new file mode 100644
index 0000000000..4c648e0c65
--- /dev/null
+++ b/docs/reference/nextjs/use-add-security-key.mdx
@@ -0,0 +1,16 @@
+---
+title: useAddSecurityKey()
+sidebarTitle: useAddSecurityKey()
+---
+
+Use the hook `useAddSecurityKey` to add a WebAuthn security key.
+
+```tsx
+const { add, isLoading, isSuccess, isError, error } = useAddSecurityKey()
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await add('key nickname')
+}
+```
diff --git a/docs/reference/nextjs/use-authenticated.mdx b/docs/reference/nextjs/use-authenticated.mdx
new file mode 100644
index 0000000000..8d0c2873b5
--- /dev/null
+++ b/docs/reference/nextjs/use-authenticated.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticated()
+sidebarTitle: useAuthenticated()
+---
+
+Use `useAuthenticated` to get the authentication status of the user.
+
+```ts
+const isAuthenticated = useAuthenticated()
+```
diff --git a/docs/reference/nextjs/use-authentication-status.mdx b/docs/reference/nextjs/use-authentication-status.mdx
new file mode 100644
index 0000000000..9b6528a88e
--- /dev/null
+++ b/docs/reference/nextjs/use-authentication-status.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticationStatus()
+sidebarTitle: useAuthenticationStatus()
+---
+
+Use `useAuthenticationStatus` to get the authentication status for the user.
+
+```tsx
+const { isAuthenticated, isLoading } = useAuthenticationStatus()
+```
diff --git a/docs/reference/nextjs/use-change-email.mdx b/docs/reference/nextjs/use-change-email.mdx
new file mode 100644
index 0000000000..d3c7a6a9e4
--- /dev/null
+++ b/docs/reference/nextjs/use-change-email.mdx
@@ -0,0 +1,27 @@
+---
+title: useChangeEmail()
+sidebarTitle: useChangeEmail()
+---
+
+Use the hook `useChangeEmail` to change email for the user.
+
+```tsx
+const { changeEmail, isLoading, needsEmailVerification, isError, error } =
+ useChangeEmail()
+
+console.log({ isLoading, needsEmailVerification, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changeEmail('new@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional ChangeEmailOptions
+
+---
diff --git a/docs/reference/nextjs/use-change-password.mdx b/docs/reference/nextjs/use-change-password.mdx
new file mode 100644
index 0000000000..7c76c9bcb1
--- /dev/null
+++ b/docs/reference/nextjs/use-change-password.mdx
@@ -0,0 +1,19 @@
+---
+title: useChangePassword()
+sidebarTitle: useChangePassword()
+---
+
+Use the hook `useChangePassword` to change password for the user.
+
+```tsx
+const { changePassword, isLoading, isSuccess, isError, error } =
+ useChangePassword()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changePassword('my-new-password')
+}
+```
diff --git a/docs/reference/nextjs/use-config-mfa.mdx b/docs/reference/nextjs/use-config-mfa.mdx
new file mode 100644
index 0000000000..1267954e03
--- /dev/null
+++ b/docs/reference/nextjs/use-config-mfa.mdx
@@ -0,0 +1,4 @@
+---
+title: useConfigMfa()
+sidebarTitle: useConfigMfa()
+---
diff --git a/docs/reference/nextjs/use-decoded-access-token.mdx b/docs/reference/nextjs/use-decoded-access-token.mdx
new file mode 100644
index 0000000000..90c67d8bf7
--- /dev/null
+++ b/docs/reference/nextjs/use-decoded-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useDecodedAccessToken()
+sidebarTitle: useDecodedAccessToken()
+---
+
+Use the hook `useDecodedAccessToken` to get the decoded access token of the user.
+
+```tsx
+const decodedAccessToken = useDecodedAccessToken()
+```
diff --git a/docs/reference/nextjs/use-file-upload-item.mdx b/docs/reference/nextjs/use-file-upload-item.mdx
new file mode 100644
index 0000000000..bdf005c908
--- /dev/null
+++ b/docs/reference/nextjs/use-file-upload-item.mdx
@@ -0,0 +1,38 @@
+---
+title: useFileUploadItem()
+sidebarTitle: useFileUploadItem()
+---
+
+Use the hook `useFileUploadItem` to control the file upload of a file in a multiple file upload.
+
+It has the same signature as `useFileUpload`.
+
+```tsx
+const Item = ({ itemRef }) => {
+ const { name, progress } = useFileUploadItem(itemRef)
+ return (
+
+ {name} {progress}
+
+ )
+}
+
+const List = () => {
+ const { list } = useMultipleFilesUpload()
+ return (
+
+ {list.map((itemRef) => (
+
+ ))}
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**ref ** required ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>> | Interpreter<FileUploadContext, any, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/nextjs/use-file-upload.mdx b/docs/reference/nextjs/use-file-upload.mdx
new file mode 100644
index 0000000000..b213a7628d
--- /dev/null
+++ b/docs/reference/nextjs/use-file-upload.mdx
@@ -0,0 +1,27 @@
+---
+title: useFileUpload()
+sidebarTitle: useFileUpload()
+---
+
+Use the hook `useFileUpload` to upload a file.
+
+```tsx
+const {
+ add,
+ upload,
+ cancel,
+ isUploaded,
+ isUploading,
+ isError,
+ progress,
+ id,
+ bucketId,
+ name
+} = useFileUpload()
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await upload({ file })
+}
+```
diff --git a/docs/reference/nextjs/use-hasura-claim.mdx b/docs/reference/nextjs/use-hasura-claim.mdx
new file mode 100644
index 0000000000..310f9e1827
--- /dev/null
+++ b/docs/reference/nextjs/use-hasura-claim.mdx
@@ -0,0 +1,19 @@
+---
+title: useHasuraClaim()
+sidebarTitle: useHasuraClaim()
+---
+
+Use the hook `useHasuraClaim` to get the value of a specific Hasura claim of the user.
+
+```tsx
+// if `x-hasura-company-id` exists as a custom claim
+const companyId = useHasuraClaim('company-id')
+```
+
+## Parameters
+
+---
+
+**name ** required string
+
+---
diff --git a/docs/reference/nextjs/use-hasura-claims.mdx b/docs/reference/nextjs/use-hasura-claims.mdx
new file mode 100644
index 0000000000..da30853e83
--- /dev/null
+++ b/docs/reference/nextjs/use-hasura-claims.mdx
@@ -0,0 +1,10 @@
+---
+title: useHasuraClaims()
+sidebarTitle: useHasuraClaims()
+---
+
+Use the hook `useHasuraClaims` to get the Hasura claims of the user.
+
+```tsx
+const hasuraClaims = useHasuraClaims()
+```
diff --git a/docs/reference/nextjs/use-multiple-files-upload.mdx b/docs/reference/nextjs/use-multiple-files-upload.mdx
new file mode 100644
index 0000000000..e7c994de76
--- /dev/null
+++ b/docs/reference/nextjs/use-multiple-files-upload.mdx
@@ -0,0 +1,6 @@
+---
+title: useMultipleFilesUpload()
+sidebarTitle: useMultipleFilesUpload()
+---
+
+Use the hook `useMultipleFilesUpload` to upload multiple files.
diff --git a/docs/reference/nextjs/use-nhost-client.mdx b/docs/reference/nextjs/use-nhost-client.mdx
new file mode 100644
index 0000000000..f8b3f155e0
--- /dev/null
+++ b/docs/reference/nextjs/use-nhost-client.mdx
@@ -0,0 +1,10 @@
+---
+title: useNhostClient()
+sidebarTitle: useNhostClient()
+---
+
+Use the hook `useNhostClient` to get the Nhost JavaScript client (https://docs.nhost.io/reference/javascript).
+
+```tsx
+const nhost = useNhostClient()
+```
diff --git a/docs/reference/nextjs/use-provider-link.mdx b/docs/reference/nextjs/use-provider-link.mdx
new file mode 100644
index 0000000000..e760a8429f
--- /dev/null
+++ b/docs/reference/nextjs/use-provider-link.mdx
@@ -0,0 +1,39 @@
+---
+title: useProviderLink()
+sidebarTitle: useProviderLink()
+---
+
+Use the hook `useProviderLink` to get an OAuth provider URL that can be used to sign in users.
+
+```js
+const providerLink = useProviderLink()
+```
+
+## Parameters
+
+---
+
+**options ** optional ProviderOptions
+
+---
+
+## Examples
+
+```js
+const providerLink = useProviderLink()
+```
+
+```jsx
+import { useProviderLink } from '@nhost/react'
+
+const Component = () => {
+ const { facebook, github } = useProviderLink()
+
+ return (
+
+ )
+}
+```
diff --git a/docs/reference/nextjs/use-reset-password.mdx b/docs/reference/nextjs/use-reset-password.mdx
new file mode 100644
index 0000000000..65360604ff
--- /dev/null
+++ b/docs/reference/nextjs/use-reset-password.mdx
@@ -0,0 +1,28 @@
+---
+title: useResetPassword()
+sidebarTitle: useResetPassword()
+---
+
+Use the hook `useResetPassword` to reset the password for a user. This will send a reset password link in an email to the user. When the user clicks on the reset-password link the user is automatically signed in and can change their password using the hook `useChangePassword`.
+
+```tsx
+const { resetPassword, isLoading, isSent, isError, error } = useResetPassword()
+
+console.log({ isLoading, isSent, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await resetPassword('joe@example.com', {
+ redirectTo: 'http://localhost:3000/settings/change-password'
+ })
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional ResetPasswordOptions
+
+---
diff --git a/docs/reference/nextjs/use-send-verification-email.mdx b/docs/reference/nextjs/use-send-verification-email.mdx
new file mode 100644
index 0000000000..d3dabe7e6e
--- /dev/null
+++ b/docs/reference/nextjs/use-send-verification-email.mdx
@@ -0,0 +1,29 @@
+---
+title: useSendVerificationEmail()
+sidebarTitle: useSendVerificationEmail()
+---
+
+Use the hook `useSendVerificationEmail` to send a verification email. The verification email is sent to the user's email address and includes a link to verify the email address.
+
+```tsx
+const { sendEmail, isLoading, isSent, isError, error } =
+ useSendVerificationEmail()
+
+console.log({ isLoading, isSent, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await sendEmail({
+ email: 'joe@example.com'
+ })
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SendVerificationEmailOptions
+
+---
diff --git a/docs/reference/nextjs/use-sign-in-anonymous.mdx b/docs/reference/nextjs/use-sign-in-anonymous.mdx
new file mode 100644
index 0000000000..b3ab92e42a
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-anonymous.mdx
@@ -0,0 +1,22 @@
+---
+title: useSignInAnonymous()
+sidebarTitle: useSignInAnonymous()
+---
+
+Use the hook `useSignInAnonymous` to sign in a user anonymously.
+
+As a result, the user will have the `anonymous` role and subsequent set of permissions.
+The user can then be converted to a regular user at a later stage using email+password sign-up, passwordless email (magic link), or passwordless SMS.
+
+```tsx
+const { signInAnonymous, isLoading, isSuccess, isError, error } =
+ useSignInAnonymous()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInAnonymous()
+}
+```
diff --git a/docs/reference/nextjs/use-sign-in-email-password.mdx b/docs/reference/nextjs/use-sign-in-email-password.mdx
new file mode 100644
index 0000000000..37eba2d20a
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-email-password.mdx
@@ -0,0 +1,25 @@
+---
+title: useSignInEmailPassword()
+sidebarTitle: useSignInEmailPassword()
+---
+
+Use the hook `useSignInEmailPassword` to sign in a user using email and password.
+
+```tsx
+const {
+ signInEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInEmailPassword()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPassword('joe@example.com', 'secret-password')
+}
+```
diff --git a/docs/reference/nextjs/use-sign-in-email-passwordless.mdx b/docs/reference/nextjs/use-sign-in-email-passwordless.mdx
new file mode 100644
index 0000000000..4cfb2e3ec2
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-email-passwordless.mdx
@@ -0,0 +1,27 @@
+---
+title: useSignInEmailPasswordless()
+sidebarTitle: useSignInEmailPasswordless()
+---
+
+Use the hook `useSignInEmailPasswordless` to sign in a user using passwordless email (Magic Link).
+
+```tsx
+const { signInEmailPasswordless, isLoading, isSuccess, isError, error } =
+ useSignInEmailPasswordless()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPasswordless('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional PasswordlessOptions
+
+---
diff --git a/docs/reference/nextjs/use-sign-in-email-security-key.mdx b/docs/reference/nextjs/use-sign-in-email-security-key.mdx
new file mode 100644
index 0000000000..73422364bc
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-email-security-key.mdx
@@ -0,0 +1,25 @@
+---
+title: useSignInEmailSecurityKey()
+sidebarTitle: useSignInEmailSecurityKey()
+---
+
+Use the hook `useSignInEmailSecurityKey` to sign in a user using their email and a security key using the WebAuthn API.
+
+```tsx
+const {
+ signInEmailSecurityKey,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInEmailSecurityKey()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailSecurityKey('joe@example.com')
+}
+```
diff --git a/docs/reference/nextjs/use-sign-in-pat.mdx b/docs/reference/nextjs/use-sign-in-pat.mdx
new file mode 100644
index 0000000000..d7f7d5be9f
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-pat.mdx
@@ -0,0 +1,18 @@
+---
+title: useSignInPAT()
+sidebarTitle: useSignInPAT()
+---
+
+Use the hook `useSignInPAT` to sign in a user using a personal access token.
+
+```tsx
+const { signInPAT, isLoading, isSuccess, isError, error } = useSignInPAT()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInPAT('8c5402d1-b05d-4825-a3ae-52d26402b89b')
+}
+```
diff --git a/docs/reference/nextjs/use-sign-in-sms-passwordless.mdx b/docs/reference/nextjs/use-sign-in-sms-passwordless.mdx
new file mode 100644
index 0000000000..d72ff29095
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-in-sms-passwordless.mdx
@@ -0,0 +1,44 @@
+---
+title: useSignInSmsPasswordless()
+sidebarTitle: useSignInSmsPasswordless()
+---
+
+Use the hook `useSignInSmsPasswordless` to sign in a user with a one-time password sent via SMS to a phone.
+
+1. The `signInSmsPasswordless` action sends a one-time password to the given phone number.
+2. The client is then awaiting the OTP. `needsOtp` equals true.
+3. After the code is received by SMS, the client sends the code with `sendOtp`. On success, the client is authenticated, and `isSuccess` equals `true`.
+
+Any error is monitored through `isError` and `error`. While the `signInSmsPasswordless` and `sendOtp` actions are running, `isLoading` equals `true`.
+
+```tsx
+const {
+ signInSmsPasswordless,
+ sendOtp,
+ needsOtp,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInSmsPasswordless()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const askCode = async (e) => {
+ e.preventDefault()
+ await signInSmsPasswordless('+32455555555')
+}
+
+const sendCode = async (e) => {
+ e.preventDefault()
+ await sendOtp('123456')
+}
+```
+
+## Parameters
+
+---
+
+**stateOptions ** optional PasswordlessOptions
+
+---
diff --git a/docs/reference/nextjs/use-sign-out.mdx b/docs/reference/nextjs/use-sign-out.mdx
new file mode 100644
index 0000000000..f28bede9d4
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-out.mdx
@@ -0,0 +1,29 @@
+---
+title: useSignOut()
+sidebarTitle: useSignOut()
+---
+
+Use the hook `useSignOut` to sign out the user.
+
+```tsx
+import { useSignOut, useAuthenticated } from '@nhost/react'
+
+const Component = () => {
+ const { signOut } = useSignOut()
+ const isAuthenticated = useAuthenticated()
+
+ if (isAuthenticated) {
+ return signOut()}>Sign Out
+ }
+
+ return Not authenticated
+}
+```
+
+## Parameters
+
+---
+
+**stateAll ** required boolean
+
+---
diff --git a/docs/reference/nextjs/use-sign-up-email-password.mdx b/docs/reference/nextjs/use-sign-up-email-password.mdx
new file mode 100644
index 0000000000..3323107cf7
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-up-email-password.mdx
@@ -0,0 +1,33 @@
+---
+title: useSignUpEmailPassword()
+sidebarTitle: useSignUpEmailPassword()
+---
+
+Use the hook `useSignUpEmailPassword` to sign up a user using email and password.
+
+```tsx
+const {
+ signUpEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignUpEmailPassword()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signUpEmailPassword('joe@example.com', 'secret-password')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SignUpOptions
+
+---
diff --git a/docs/reference/nextjs/use-sign-up-email-security-key-email.mdx b/docs/reference/nextjs/use-sign-up-email-security-key-email.mdx
new file mode 100644
index 0000000000..0368f218e0
--- /dev/null
+++ b/docs/reference/nextjs/use-sign-up-email-security-key-email.mdx
@@ -0,0 +1,33 @@
+---
+title: useSignUpEmailSecurityKeyEmail()
+sidebarTitle: useSignUpEmailSecurityKeyEmail()
+---
+
+Use the hook `useSignUpEmailSecurityKey` to sign up a user with security key and an email using the WebAuthn API.
+
+```tsx
+const {
+ signUpEmailSecurityKey,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignUpEmailSecurityKey()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signUpEmailSecurityKey('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SignUpSecurityKeyOptions
+
+---
diff --git a/docs/reference/nextjs/use-user-avatar-url.mdx b/docs/reference/nextjs/use-user-avatar-url.mdx
new file mode 100644
index 0000000000..bb3f80b05c
--- /dev/null
+++ b/docs/reference/nextjs/use-user-avatar-url.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserAvatarUrl()
+sidebarTitle: useUserAvatarUrl()
+---
+
+Use the hook `useUserAvatarUrl` to get the avatar URL of the user.
+
+```tsx
+const userAvatarUrl = useUserAvatarUrl()
+```
diff --git a/docs/reference/nextjs/use-user-data.mdx b/docs/reference/nextjs/use-user-data.mdx
new file mode 100644
index 0000000000..b0e35fc5bc
--- /dev/null
+++ b/docs/reference/nextjs/use-user-data.mdx
@@ -0,0 +1,36 @@
+---
+title: useUserData()
+sidebarTitle: useUserData()
+---
+
+Use the hook `useUserData` to get the user data of the user.
+
+```tsx
+const userData = useUserData()
+```
+
+## Examples
+
+```tsx
+const userData = useUserData()
+```
+
+Example of user data
+
+```json
+{
+ "avatarUrl": "https://s.gravatar.com/avatar",
+ "createdAt": "2022-04-11T16:33:14.780439+00:00",
+ "defaultRole": "user",
+ "displayName": "John Doe",
+ "email": "john@nhost.io",
+ "id": "05e054c7-a722-42e7-90a6-3f77a2f118c8",
+ "isAnonymous": false,
+ "locale": "en",
+ "metadata": {
+ "lastName": "Doe",
+ "firstName": "John"
+ },
+ "roles": ["user", "me"]
+}
+```
diff --git a/docs/reference/nextjs/use-user-default-role.mdx b/docs/reference/nextjs/use-user-default-role.mdx
new file mode 100644
index 0000000000..9a77ca811f
--- /dev/null
+++ b/docs/reference/nextjs/use-user-default-role.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDefaultRole()
+sidebarTitle: useUserDefaultRole()
+---
+
+Use the hook `useUserDefaultRole` to get the default role of the user.
+
+```tsx
+const userDefaultRole = useUserDefaultRole()
+```
diff --git a/docs/reference/nextjs/use-user-display-name.mdx b/docs/reference/nextjs/use-user-display-name.mdx
new file mode 100644
index 0000000000..c018253b0d
--- /dev/null
+++ b/docs/reference/nextjs/use-user-display-name.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDisplayName()
+sidebarTitle: useUserDisplayName()
+---
+
+Use the hook `useUserDisplayName` to get the display name of the user.
+
+```tsx
+const userDisplayName = useUserDisplayName()
+```
diff --git a/docs/reference/nextjs/use-user-email.mdx b/docs/reference/nextjs/use-user-email.mdx
new file mode 100644
index 0000000000..d97c0704e4
--- /dev/null
+++ b/docs/reference/nextjs/use-user-email.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserEmail()
+sidebarTitle: useUserEmail()
+---
+
+Use the hook `useUserEmail` to get the email of the user.
+
+```tsx
+const userEmail = useUserEmail()
+```
diff --git a/docs/reference/nextjs/use-user-id.mdx b/docs/reference/nextjs/use-user-id.mdx
new file mode 100644
index 0000000000..0ffc52c01b
--- /dev/null
+++ b/docs/reference/nextjs/use-user-id.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserId()
+sidebarTitle: useUserId()
+---
+
+Use the hook `useUserId` to get the id of the user.
+
+```tsx
+const userId = useUserId()
+```
diff --git a/docs/reference/nextjs/use-user-is-anonymous.mdx b/docs/reference/nextjs/use-user-is-anonymous.mdx
new file mode 100644
index 0000000000..e2974bd7b2
--- /dev/null
+++ b/docs/reference/nextjs/use-user-is-anonymous.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserIsAnonymous()
+sidebarTitle: useUserIsAnonymous()
+---
+
+Use the hook `useUserIsAnonymous` to see if the user is anonymous or not.
+
+```tsx
+const userIsAnonymous = useUserIsAnonymous()
+```
diff --git a/docs/reference/nextjs/use-user-locale.mdx b/docs/reference/nextjs/use-user-locale.mdx
new file mode 100644
index 0000000000..5e406f6f2a
--- /dev/null
+++ b/docs/reference/nextjs/use-user-locale.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserLocale()
+sidebarTitle: useUserLocale()
+---
+
+Use the hook `useUserLocale` to get the locale of the user.
+
+```tsx
+const userLocale = useUserLocale()
+```
diff --git a/docs/reference/nextjs/use-user-roles.mdx b/docs/reference/nextjs/use-user-roles.mdx
new file mode 100644
index 0000000000..db0d20bd3d
--- /dev/null
+++ b/docs/reference/nextjs/use-user-roles.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserRoles()
+sidebarTitle: useUserRoles()
+---
+
+Use the hook `useUserRoles` to get all allowed roles of the user.
+
+```tsx
+const userRoles = useUserRoles()
+```
diff --git a/docs/reference/openapi-auth.yaml b/docs/reference/openapi-auth.yaml
new file mode 100644
index 0000000000..414f0238ba
--- /dev/null
+++ b/docs/reference/openapi-auth.yaml
@@ -0,0 +1,2329 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.yaml
+---
+openapi: 3.0.3
+info:
+ description: Hasura Auth
+ version: 1.0.0
+ title: Hasura Auth
+ license:
+ name: LICENSE-TBD
+ url: https://LICENSE-TBD
+servers:
+ - url: https://local.auth.nhost.run/v1
+ description: API Server
+security:
+ - AdminSecret: []
+ - BearerAuth: []
+
+components:
+
+ securitySchemes:
+ AdminSecret:
+ type: apiKey
+ in: header
+ name: X-Hasura-Admin-Secret
+ description: Hasura Admin Secret
+ BearerAuth:
+ scheme: bearer
+ type: http
+ bearerFormat: JWT
+ description: JSON Web Token to authorize requests.
+ schemas:
+
+ SignInWebauthnSessionPayload:
+ type: object
+ properties:
+ challenge:
+ type: string
+ allowCredentials:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ type:
+ type: string
+ timeout:
+ type: integer
+ userVerification:
+ type: string
+ rpId:
+ type: string
+ example:
+ challenge: "KOGeoAfC2nrZ_SluhmU5RYYMvBsRDvzghjERGdXbbfQ"
+ allowCredentials:
+ - id: "zCnsWvxgtMrOCeX6eA_yqQ"
+ type: "public-key"
+ timeout: 60000
+ userVerification: "preferred"
+ rpId: "react-apollo.example.nhost.io"
+
+ WebauthnSessionPayload:
+ type: object
+ properties:
+ challenge:
+ type: string
+ rp:
+ type: object
+ properties:
+ name:
+ type: string
+ id:
+ type: string
+ user:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ name:
+ type: string
+ format: email
+ displayName:
+ type: string
+ pubKeyCredParams:
+ type: array
+ items:
+ type: object
+ properties:
+ alg:
+ type: integer
+ type:
+ type: string
+ timeout:
+ type: integer
+ attestation:
+ type: string
+ excludeCredentials:
+ type: array
+ items: {}
+ authenticatorSelection:
+ type: object
+ properties:
+ requireResidentKey:
+ type: boolean
+ userVerification:
+ type: string
+ example:
+ challenge: "eKdWG60F0lB-wNOviefzn6En0jvdf_GYDyCK2Zuznh8"
+ rp:
+ name: "hasura-auth"
+ id: "localhost"
+ user:
+ id: "44b96e0d-18ad-48b9-a517-6537d32223da"
+ name: "john.smith@nhost.io"
+ displayName: "John Smith"
+ pubKeyCredParams:
+ - alg: -7
+ type: "public-key"
+ - alg: -8
+ type: "public-key"
+ - alg: -36
+ type: "public-key"
+ - alg: -37
+ type: "public-key"
+ - alg: -38
+ type: "public-key"
+ - alg: -39
+ type: "public-key"
+ - alg: -257
+ type: "public-key"
+ - alg: -258
+ type: "public-key"
+ - alg: -259
+ type: "public-key"
+ timeout: 60000
+ attestation: "indirect"
+ excludeCredentials: []
+ authenticatorSelection:
+ requireResidentKey: false
+ userVerification: "preferred"
+
+ CannotSendSmsError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - cannot-send-sms
+ message:
+ enum:
+ - Error sending SMS
+ status:
+ enum:
+ - 500
+ type: object
+ DisabledEndpointError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - disabled-endpoint
+ message:
+ enum:
+ - This endpoint is disabled
+ status:
+ enum:
+ - 404
+ type: object
+ DisabledMfaTotpError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - disabled-mfa-totp
+ message:
+ enum:
+ - MFA TOTP is not enabled for this user
+ status:
+ enum:
+ - 400
+ type: object
+ DisabledUserError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - disabled-user
+ message:
+ enum:
+ - User is disabled
+ status:
+ enum:
+ - 401
+ type: object
+ EmailAlreadyInUseError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - email-already-in-use
+ message:
+ enum:
+ - Email already in use
+ status:
+ enum:
+ - 409
+ type: object
+ EmailAlreadyVerifiedError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - email-already-verified
+ message:
+ enum:
+ - User's email is already verified
+ status:
+ enum:
+ - 400
+ type: object
+ ForbiddenAnonymousError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - forbidden-anonymous
+ message:
+ enum:
+ - Anonymous users cannot access this endpoint
+ status:
+ enum:
+ - 403
+ type: object
+ ForbiddenEndpointInProductionError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - forbidden-endpoint-in-production
+ message:
+ enum:
+ - This endpoint is only available on test environments
+ status:
+ enum:
+ - 400
+ type: object
+ InternalErrorError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - internal-error
+ message:
+ enum:
+ - Internal server error
+ status:
+ enum:
+ - 500
+ type: object
+ InvalidAdminSecretError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-admin-secret
+ message:
+ enum:
+ - Invalid admin secret
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidEmailPasswordError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-email-password
+ message:
+ enum:
+ - Incorrect email or password
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidOauthConfigurationError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-oauth-configuration
+ message:
+ enum:
+ - Invalid OAuth configuration
+ status:
+ enum:
+ - 500
+ type: object
+ InvalidOtpError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-otp
+ message:
+ enum:
+ - Invalid or expired OTP
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidRefreshTokenError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-refresh-token
+ message:
+ enum:
+ - Invalid or expired refresh token
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidRequestError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-request
+ message:
+ enum:
+ - The request payload is incorrect
+ status:
+ enum:
+ - 400
+ type: object
+ InvalidSignInMethodError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-sign-in-method
+ message:
+ enum:
+ - Incorrect sign in method
+ status:
+ enum:
+ - 400
+ type: object
+ InvalidTicketError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-ticket
+ message:
+ enum:
+ - Invalid or expired verification ticket
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidWebauthnSecurityKeyError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-webauthn-security-key
+ message:
+ enum:
+ - Invalid WebAuthn security key
+ status:
+ enum:
+ - 401
+ type: object
+ InvalidWebauthnVerificationError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - invalid-webauthn-verification
+ message:
+ enum:
+ - Invalid WebAuthn verification
+ status:
+ enum:
+ - 401
+ type: object
+ Mfa:
+ additionalProperties: false
+ properties:
+ ticket:
+ type: string
+ type: object
+ MfaTypeNotFoundError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - mfa-type-not-found
+ message:
+ enum:
+ - There is no active MFA set for the user
+ status:
+ enum:
+ - 400
+ type: object
+ NoTotpSecretError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - no-totp-secret
+ message:
+ enum:
+ - OTP secret is not set for user
+ status:
+ enum:
+ - 400
+ type: object
+ RouteNotFoundError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - route-not-found
+ message:
+ enum:
+ - Route not found
+ status:
+ enum:
+ - 404
+ type: object
+
+ Session:
+ additionalProperties: false
+ properties:
+ accessToken:
+ type: string
+ accessTokenExpiresIn:
+ format: float
+ type: number
+ refreshToken:
+ description: Refresh token during authentication or when refreshing the JWT
+ example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
+ pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ user:
+ $ref: '#/components/schemas/User'
+ required:
+ - accessToken
+ - accessTokenExpiresIn
+ - refreshToken
+ type: object
+
+ SessionPayload:
+ additionalProperties: false
+ properties:
+ mfa:
+ $ref: '#/components/schemas/Mfa'
+ session:
+ $ref: '#/components/schemas/Session'
+ type: object
+
+ SignInAnonymousSchema:
+ additionalProperties: false
+ properties:
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ type: object
+ SignInEmailPasswordSchema:
+ type: object
+ additionalProperties: false
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ password:
+ example: Str0ngPassw#ord-94|%
+ type: string
+ required:
+ - email
+ - password
+ SignInMfaTotpSchema:
+ additionalProperties: false
+ properties:
+ otp:
+ type: string
+ ticket:
+ example: mfaTotp:e08204c7-40af-4434-a7ed-31c6aa37a390
+ pattern: >-
+ mfaTotp:\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ required:
+ - ticket
+ - otp
+ type: object
+ SignInOtpSchema:
+ additionalProperties: false
+ properties:
+ otp:
+ type: string
+ phoneNumber:
+ type: string
+ required:
+ - phoneNumber
+ - otp
+ type: object
+ SignInPasswordlessEmailSchema:
+ additionalProperties: false
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ allowedRoles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ required:
+ - email
+ type: object
+ SignInPasswordlessSmsSchema:
+ additionalProperties: false
+ properties:
+ phoneNumber:
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ allowedRoles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ required:
+ - phoneNumber
+ type: object
+
+ SignUpWebauthnSchema:
+ additionalProperties: false
+ type: object
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ type: object
+ properties:
+ allowedRoles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ required:
+ - email
+
+ SignUpVerifyWebauthnSchema:
+ additionalProperties: false
+ type: object
+ properties:
+ credential:
+ type: object
+ properties:
+ id:
+ type: string
+ rawId:
+ type: string
+ response:
+ type: object
+ properties:
+ attestationObject:
+ type: string
+ clientDataJSON:
+ type: string
+ type:
+ type: string
+ clientExtensionResults:
+ type: object
+ authenticatorAttachment:
+ type: string
+ transports:
+ type: array
+ items:
+ type: string
+ options:
+ type: object
+ example:
+ credential:
+ id: "zCnsWvxgtMrOCeX6eA_yqQ"
+ rawId: "zCnsWvxgtMrOCeX6eA_yqQ"
+ response:
+ attestationObject: "o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YViU0RE6Bmg2J-FxNrC8136ZQSeTWKWtdni_Lpfv5XR4bDtdAAAAALraVWanqkAfvZZFYZpVEg0AEMwp7Fr8YLTKzgnl-ngP8qmlAQIDJiABIVgg3XjPRqX1a22te029Du57F1w56XXy3GARb842fEtQlIEiWCC1Jce4J3bN1P-V-78elqwVy0u6MAxEcZwCvkSLqZjkjA"
+ clientDataJSON: "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiSGlwZ0NKLWR0bU1FeWxRN05pRnV4VXE0allNbFIwMDA1V2VmcEJWQm9payIsIm9yaWdpbiI6Imh0dHBzOi8vcmVhY3QtYXBvbGxvLmV4YW1wbGUubmhvc3QuaW8ifQ"
+ type: "public-key"
+ clientExtensionResults: {}
+ authenticatorAttachment: "platform"
+ transports:
+ - "internal"
+ - "hybrid"
+ options: {}
+ required:
+ - credential
+
+ SignInWebauthnSchema:
+ additionalProperties: false
+ type: object
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ required:
+ - email
+
+ SignInVerifyWebauthnSchema:
+ additionalProperties: true
+ type: object
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+
+ credential:
+ type: object
+ properties:
+ id:
+ type: string
+ rawId:
+ type: string
+ response:
+ type: object
+ properties:
+ authenticatorData:
+ type: string
+ clientDataJSON:
+ type: string
+ signature:
+ type: string
+ userHandle:
+ type: string
+ format: uuid
+ type:
+ type: string
+ clientExtensionResults:
+ type: object
+ authenticatorAttachment:
+ type: string
+ example:
+ email: "nuno@nhost.io"
+ credential:
+ id: "zCnsWvxgtMrOCeX6eA_yqQ"
+ rawId: "zCnsWvxgtMrOCeX6eA_yqQ"
+ response:
+ authenticatorData: "0RE6Bmg2J-FxNrC8136ZQSeTWKWtdni_Lpfv5XR4bDsdAAAAAA"
+ clientDataJSON: "eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiTkNSSVRVU1pjeFE1ZTFhdUtUcXVlNnA4R0ZacHdxUS1kZzM4bnlWa3NCRSIsIm9yaWdpbiI6Imh0dHBzOi8vcmVhY3QtYXBvbGxvLmV4YW1wbGUubmhvc3QuaW8ifQ"
+ signature: "MEUCIQDRXq3aY-gXWsuYJZhOzqqn6UpoRQfcPdNLP7hpZ7IdvQIgX5rY6TomkYUtqydu-w88fW7KeFm-0oE-5jTdLNHg9zw"
+ userHandle: "8881037a-8495-48ef-8a04-ebbdb69415db"
+ type: "public-key"
+ clientExtensionResults: {}
+ authenticatorAttachment: "platform"
+ required:
+ - email
+ - credential
+
+ SignOutSchema:
+ additionalProperties: false
+ properties:
+ all:
+ default: false
+ description: Sign out from all connected devices
+ type: boolean
+ refreshToken:
+ description: Refresh token during authentication or when refreshing the JWT
+ example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
+ pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ required:
+ - refreshToken
+ type: object
+ SignUpEmailPasswordSchema:
+ additionalProperties: false
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ password:
+ description: A password of minimum 9 characters
+ example: Str0ngPassw#ord-94|%
+ minLength: 9
+ type: string
+ options:
+ additionalProperties: false
+ type: object
+ properties:
+ allowedRoles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ required:
+ - email
+ - password
+ type: object
+ TokenSchema:
+ additionalProperties: false
+ properties:
+ refreshToken:
+ description: Refresh token during authentication or when refreshing the JWT
+ example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
+ pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ required:
+ - refreshToken
+ type: object
+ TotpAlreadyActiveError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - totp-already-active
+ message:
+ enum:
+ - TOTP MFA already active
+ status:
+ enum:
+ - 400
+ type: object
+ TotpPayload:
+ additionalProperties: false
+ properties:
+ imageUrl:
+ description: Data URL of the QR code
+ type: string
+ totpSecret:
+ description: TOTP secret
+ type: string
+ required:
+ - imageUrl
+ - totpSecret
+ type: object
+ UnauthenticatedUserError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - unauthenticated-user
+ message:
+ enum:
+ - User is not logged in
+ status:
+ enum:
+ - 401
+ type: object
+ UnauthorizedError:
+ additionalProperties: false
+ properties:
+ error:
+ type: string
+ message:
+ type: string
+ status:
+ enum:
+ - 401
+ required:
+ - error
+ - status
+ type: object
+ UnverifiedUserError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - unverified-user
+ message:
+ enum:
+ - Email is not verified
+ status:
+ enum:
+ - 401
+ type: object
+ User:
+ additionalProperties: false
+ properties:
+ activeMfaType:
+ anyOf:
+ - enum:
+ - 'totp'
+ type: string
+ - enum:
+ - totp
+ type: string
+ description: Multi-factor authentication type. A null value deactivates MFA
+ example: totp
+ avatarUrl:
+ type: string
+ createdAt:
+ format: date-time
+ type: string
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ emailVerified:
+ default: false
+ type: boolean
+ id:
+ description: Id of the user
+ example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
+ pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ isAnonymous:
+ default: false
+ type: boolean
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ phoneNumber:
+ type: string
+ phoneNumberVerified:
+ default: false
+ type: boolean
+ roles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ required:
+ - createdAt
+ - displayName
+ - avatarUrl
+ - locale
+ - email
+ - isAnonymous
+ - defaultRole
+ - metadata
+ - activeMfaType
+ - emailVerified
+ - phoneNumber
+ - phoneNumberVerified
+ - roles
+ type: object
+ UserDeanonymizeSchema:
+ additionalProperties: false
+ properties:
+ connection:
+ example: email
+ type: string
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ allowedRoles:
+ default:
+ - me
+ - user
+ example:
+ - me
+ - user
+ items:
+ oneOf:
+ - enum:
+ - me
+ - enum:
+ - user
+ type: array
+ defaultRole:
+ default: user
+ enum:
+ - me
+ - user
+ example: user
+ type: string
+ displayName:
+ example: John Smith
+ type: string
+ locale:
+ default: en
+ description: A two-characters locale
+ example: en
+ maxLength: 2
+ minLength: 2
+ type: string
+ metadata:
+ additionalProperties: false
+ default: {}
+ example:
+ firstName: John
+ lastName: Smith
+ properties: {}
+ type: object
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ password:
+ example: Str0ngPassw#ord-94|%
+ type: string
+ signInMethod:
+ enum:
+ - email-password
+ - passwordless
+ example: email-password
+ type: string
+ required:
+ - signInMethod
+ - email
+ type: object
+ UserEmailChangeSchema:
+ additionalProperties: false
+ properties:
+ newEmail:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ type: object
+ UserEmailSendVerificationEmailSchema:
+ additionalProperties: false
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ required:
+ - email
+ type: object
+ UserMfaSchema:
+ additionalProperties: false
+ properties:
+ activeMfaType:
+ anyOf:
+ - enum:
+ - totp
+ type: string
+ description: Multi-factor authentication type. A null value deactivates MFA
+ example: totp
+ code:
+ description: MFA activation code
+ type: string
+ required:
+ - code
+ type: object
+ UserNotAnonymousError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - user-not-anonymous
+ message:
+ enum:
+ - Logged in user is not anonymous
+ status:
+ enum:
+ - 400
+ type: object
+ UserNotFoundError:
+ additionalProperties: false
+ properties:
+ error:
+ enum:
+ - user-not-found
+ message:
+ enum:
+ - No user found
+ status:
+ enum:
+ - 400
+ type: object
+ UserPasswordResetSchema:
+ additionalProperties: false
+ properties:
+ email:
+ description: A valid email
+ example: john.smith@nhost.io
+ format: email
+ type: string
+ options:
+ additionalProperties: false
+ properties:
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ type: object
+ required:
+ - email
+ type: object
+ UserPasswordSchema:
+ additionalProperties: false
+ properties:
+ newPassword:
+ example: Str0ngPassw#ord-94|%
+ type: string
+ ticket:
+ type: string
+ required:
+ - newPassword
+ type: object
+ UserProviderTokensSchema:
+ additionalProperties: false
+ properties:
+ providerId:
+ type: string
+ userId:
+ description: Id of the user
+ example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
+ pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
+ type: string
+ required:
+ - providerId
+ - userId
+ type: object
+ VerifyAddSecurityKeySchema:
+ additionalProperties: false
+ properties:
+ credential:
+ additionalProperties: false
+ properties: {}
+ type: object
+ nickname:
+ type: string
+ required:
+ - credential
+ type: object
+ VerifySchema:
+ additionalProperties: false
+ properties:
+ redirectTo:
+ default: https://my-app.com
+ example: https://my-app.com/catch-redirection
+ type: string
+ ticket:
+ type: string
+ type:
+ type: string
+ required:
+ - redirectTo
+ - ticket
+ - type
+ type: object
+ VerifyTokenSchema:
+ additionalProperties: false
+ properties:
+ token:
+ description: Access token
+ example: >-
+ eyJhbGciOiJIUzI1NiJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWFsbG93ZWQtcm9sZXMiOlsibWUiLCJ1c2VyIl0sIngtaGFzdXJhLWRlZmF1bHQtcm9sZSI6InVzZXIiLCJ4LWhhc3VyYS11c2VyLWlkIjoiODAwYjA2ZWYtNGMyYi00NjQwLWIyMjAtNWZlNjk3ZWNjZGM2IiwieC1oYXN1cmEtdXNlci1pcy1hbm9ueW1vdXMiOiJmYWxzZSJ9LCJzdWIiOiI4MDBiMDZlZi00YzJiLTQ2NDAtYjIyMC01ZmU2OTdlY2NkYzYiLCJpc3MiOiJoYXN1cmEtYXV0aCIsImlhdCI6MTY1MTg2NTkwMCwiZXhwIjoxNjUxODY2ODAwfQ.IvFIMXOe6J21fyEfPkP9Caim3C_uAD2qimK4oGpNm44
+ pattern: ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*$
+ type: string
+ type: object
+ Version:
+ example: 0.17.1
+ type: string
+
+
+paths:
+ /healthz:
+ get:
+ deprecated: false
+ parameters: []
+ responses:
+ '200':
+ description: Success
+ security: []
+ summary: Check if the server is up and running
+ tags:
+ - General
+ /version:
+ get:
+ deprecated: false
+ parameters: []
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Version'
+ description: Hasura auth version
+ security: []
+ summary: Get the current Hasura-auth version
+ tags:
+ - General
+
+ /signup/email-password:
+ post:
+ summary: Sign Up
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignUpEmailPasswordSchema'
+ description: 'a description'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: >-
+ Successfully registered. Null session means email verification is
+ pending
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '409':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/EmailAlreadyInUseError'
+ description: Email is already present in the database
+ security: []
+ tags:
+ - Authentication
+
+ /signin/email-password:
+ post:
+ summary: Sign In
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInEmailPasswordSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: Signed in successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Invalid email or password, or user is not verified
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ tags:
+ - Authentication
+
+ /signup/webauthn:
+ post:
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignUpWebauthnSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/WebauthnSessionPayload'
+ description: Signed Up successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign Up WebAuthn
+ tags:
+ - Authentication
+
+ /signup/webauthn/verify:
+ post:
+ description: Verify WebAuthn Sign Up to complete authentication
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignUpVerifyWebauthnSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: Signed in successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign Up WebAuthn Verify
+ tags:
+ - Authentication
+
+
+ /signin/anonymous:
+ post:
+ description: 'Sign In a user anonymously'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInAnonymousSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: User successfully authenticated
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In Anonymous
+ tags:
+ - Authentication
+
+ /signin/mfa/totp:
+ post:
+ description: 'Sign In with a Time-based One-Time Password (TOTP)'
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInMfaTotpSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: User successfully authenticated
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In TOTP
+ tags:
+ - Authentication
+
+ /signin/passwordless/email:
+ post:
+ description: 'Sign In with a Magic Link, a one-time (OTP) use link sent to the user during the authentication process'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInPasswordlessEmailSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ example: "OK"
+ description: Email sent successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledUserError'
+ description: User is disabled
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In Email
+ tags:
+ - Authentication
+
+ /signin/passwordless/sms:
+ post:
+ description: 'Send a one-time password (OTP) to a user through SMS '
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInPasswordlessSmsSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ example: "OK"
+ description: SMS sent successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In SMS
+ tags:
+ - Authentication
+
+ /signin/passwordless/sms/otp:
+ post:
+ description: 'Verify and authenticate the one-time password (OTP) received by SMS'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInOtpSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: User successfully authenticated
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Error processing the request
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: >-
+ Sign In SMS Verify OTP
+ tags:
+ - Authentication
+
+ /signin/provider/{provider}:
+ get:
+ deprecated: false
+ parameters:
+ - name: provider
+ description: OAuth Provider to use
+ in: path
+ required: true
+ schema:
+ enum:
+ - github
+ - google
+ - facebook
+ - twitter
+ - apple
+ - azuread
+ - windowslive
+ - linkedin
+ - spotify
+ - strava
+ - gitlab
+ - bitbucket
+ - twitch
+ type: string
+ - name: redirectUrl
+ description: After a user successfully authorizes an application, the authorization server will redirect the user back to this URL
+ in: query
+ required: true
+ schema:
+ type: string
+ responses:
+ '302':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Redirect to the provider's authentication page
+ security: []
+ summary: 'Sign In'
+ tags:
+ - Authentication
+
+ /signin/provider/{provider}/callback:
+ get:
+ deprecated: false
+ description: OAuth Callback used by the provider when redirecting the user back to your application
+ parameters:
+ - deprecated: false
+ description: >-
+ in: path
+ name: provider
+ required: true
+ schema:
+ enum:
+ - github
+ - google
+ - facebook
+ - twitter
+ - apple
+ - azuread
+ - windowslive
+ - linkedin
+ - spotify
+ - strava
+ - gitlab
+ - bitbucket
+ - twitch
+ type: string
+ - deprecated: false
+ description: ''
+ in: query
+ name: redirectUrl
+ required: true
+ schema:
+ type: string
+ responses:
+ '302':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: >-
+ Redirect to the initial url given as a query parameter in
+ /signin/provider/{provider}
+ security: []
+ summary: Sign In Callback
+ tags:
+ - Authentication
+
+ /signin/webauthn:
+ post:
+ description: ""
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInWebauthnSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInWebauthnSessionPayload'
+ description: The payload is invalid
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In WebAuthn
+ tags:
+ - Authentication
+
+ /signin/webauthn/verify:
+ post:
+ description: Verify WebAuthn Sign In to complete authentication
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignInVerifyWebauthnSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionPayload'
+ description: Signed in successfully
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Invalid email or password, or user is not verified
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Sign In WebAuthn Verify
+ tags:
+ - Authentication
+
+ /mfa/totp/generate:
+ get:
+ parameters: []
+ description: Generate Secret to request the activation of Time-Based One-Time password (TOTP)
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TotpPayload'
+ description: Success
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security:
+ - BearerAuth: []
+ summary: TOTP Secret
+ tags:
+ - User management
+
+ /signout:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignOutSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ example: "OK"
+ description: Successfully signed out
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User must be signed in to sign out from all sessions
+ security:
+ - BearerAuth: []
+ summary: Sign Out
+ tags:
+ - Sign out
+
+
+ /token:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TokenSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ description: User successfully authenticated
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Unauthenticated user or invalid token
+ security: []
+ summary: Refresh the access JWT token
+ tags:
+ - General
+
+ /token/verify:
+ post:
+ deprecated: false
+ description: >-
+ If request body is not passed the autorization header will be used to be
+ verified
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VerifyTokenSchema'
+ description: ''
+ required: false
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Valid JWT token
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Unauthenticated user or invalid token
+ security: []
+ summary: Veify JWT token
+ tags:
+ - General
+
+ /user:
+ get:
+ deprecated: false
+ parameters: []
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: User information
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ security:
+ - BearerAuth: []
+ summary: Get user information
+ tags:
+ - User management
+
+ /user/deanonymize:
+ post:
+ deprecated: false
+ description: Deanonymize an anonymous user with email and optionally password
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserDeanonymizeSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Success
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ security:
+ - BearerAuth: []
+ summary: >-
+ Sign In Deanonymize
+ tags:
+ - Authentication
+
+ /user/email/change:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserEmailChangeSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: A verification email has been sent to the new email
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ security:
+ - BearerAuth: []
+ summary: Change Email
+ tags:
+ - User management
+
+ /user/email/send-verification-email:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserEmailSendVerificationEmailSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Success
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ security: []
+ summary: Verify Account
+ tags:
+ - User management
+
+ /user/mfa:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserMfaSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Success
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ security:
+ - BearerAuth: []
+ summary: Toogle MFA
+ tags:
+ - Authentication
+
+ /user/password:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserPasswordSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ tapplication/json:
+ schema:
+ type: string
+ description: The password has been successfully changed
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthenticatedUserError'
+ description: User is not authenticated
+ security:
+ - BearerAuth: []
+ summary: Set a new password
+ tags:
+ - User management
+
+ /user/password/reset:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserPasswordResetSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: The email to reset the password has been sent
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ security: []
+ summary: Reset Password
+ tags:
+ - User management
+
+ /user/provider/tokens:
+ post:
+ deprecated: false
+ parameters:
+ - deprecated: false
+ description: Hasura admin secret
+ in: header
+ name: x-hasura-admin-secret
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserProviderTokensSchema'
+ description: ''
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Success
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidAdminSecretError'
+ description: Incorrect admin secret header
+ security: []
+ summary: Refresh Oauth Token
+ tags:
+ - User management
+
+ /user/webauthn/add:
+ post:
+ parameters: []
+ description: Add WebAuthn Security Key for web or mobile devices
+ responses:
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Invalid email or password, or user is not verified
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Add Security Key
+ tags:
+ - User management
+
+ /user/webauthn/verify:
+ post:
+ deprecated: false
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VerifyAddSecurityKeySchema'
+ description: ''
+ required: true
+ responses:
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload is invalid
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnauthorizedError'
+ description: Invalid email or password, or user is not verified
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DisabledEndpointError'
+ description: The feature is not activated
+ security: []
+ summary: Verify Security Key
+ tags:
+ - User management
+
+ /verify:
+ get:
+ deprecated: false
+ parameters:
+ - deprecated: false
+ description: Ticket generated in the previous actions and sent by email
+ in: query
+ name: ticket
+ required: true
+ schema:
+ type: string
+ - deprecated: false
+ description: name param description
+ in: query
+ name: type
+ required: true
+ schema:
+ enum:
+ - emailVerify
+ - emailConfirmChange
+ - signinPasswordless
+ - passwordReset
+ type: string
+ - deprecated: false
+ description: Redirection link
+ in: query
+ name: redirectTo
+ required: true
+ schema:
+ type: string
+ responses:
+ '302':
+ content:
+ application/json:
+ schema:
+ type: string
+ description: '{redirectTo}?refreshToken=${refreshToken}&type=${type}'
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InvalidRequestError'
+ description: The payload format is invalid
+ security: []
+ summary: >-
+ Verify tickets created by email verification, email passwordless
+ authentication, or password reset
+ tags:
+ - General
diff --git a/docs/reference/openapi-storage.yaml b/docs/reference/openapi-storage.yaml
new file mode 100644
index 0000000000..08e002c66f
--- /dev/null
+++ b/docs/reference/openapi-storage.yaml
@@ -0,0 +1,899 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.yaml
+---
+openapi: 3.0.3
+info:
+ description: Hasura Storage
+ version: 1.0.0
+ title: Hasura Storage
+ license:
+ name: LICENSE-TBD
+ url: https://LICENSE-TBD
+servers:
+ - url: https://local.storage.nhost.run/v1
+ description: API Server
+security:
+ - AdminSecret: []
+ - Authorization: []
+
+components:
+ securitySchemes:
+ AdminSecret:
+ type: apiKey
+ in: header
+ name: X-Hasura-Admin-Secret
+ description: Hasura Admin Secret
+ Authorization:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ description: JSON Web Token to authorize requests.
+ schemas:
+ VersionInformation:
+ type: object
+ properties:
+ buildVersion:
+ type: string
+ FileSummary:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ bucketId:
+ type: string
+ isUploaded:
+ type: boolean
+ FileMetadata:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ size:
+ type: number
+ bucketId:
+ type: string
+ eTag:
+ type: string
+ createdAt:
+ type: string
+ format: date-time
+ updatedAt:
+ type: string
+ format: date-time
+ isUploaded:
+ type: boolean
+ mimeType:
+ type: string
+ uploadedByUserId:
+ type: string
+ metadata:
+ type: object
+ additionalProperties: true
+ UploadFileMetadata:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ metadata:
+ type: object
+ additionalProperties: true
+ UpdateFileMetadata:
+ type: object
+ properties:
+ name:
+ type: string
+ metadata:
+ type: object
+ additionalProperties: true
+ PresignedURLResponse:
+ type: object
+ properties:
+ url:
+ type: string
+ expiration:
+ type: number
+ Error:
+ type: object
+ properties:
+ error:
+ type: object
+ properties:
+ message:
+ type: string
+
+paths:
+ /openapi.yaml:
+ get:
+ summary: Return this schema definition
+ tags:
+ - documentation
+ responses:
+ '200':
+ description: Return this schema definition
+ content:
+ application/x-yaml:
+ schema:
+ type: object
+ /version:
+ get:
+ summary: Retrieve build information about the server
+ tags:
+ - documentation
+ responses:
+ '200':
+ description: Return build information
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VersionInformation'
+
+ /files/:
+ post:
+ summary: Upload File
+ description: Upload one or multiple files at once
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ - AdminSecret: []
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ bucket-id:
+ type: string
+ description: Bucket to upload the files to
+ metadata[]:
+ type: array
+ description: (Optional) Set the following metadata for the uploaded files instead of letting the server do it automatically. See "UploadFileMetadata".
+ items:
+ $ref: '#/components/schemas/UploadFileMetadata'
+ file[]:
+ description: Array of files to upload.
+ type: array
+ items:
+ type: string
+ format: binary
+ encoding:
+ file[]:
+ contentType: application/octet-stream
+ responses:
+ '201':
+ description: File was uploaded successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ProcessedFiles:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileMetadata'
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /files/{id}:
+ head:
+ summary: "Download File Metadata"
+ description: "Retrieve metadata of a file"
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ - name: if-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match
+ in: header
+ schema:
+ type: string
+ - name: if-none-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match
+ in: header
+ schema:
+ type: string
+ - name: if-modified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since
+ in: header
+ schema:
+ type: string
+ - name: if-unmodified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since
+ in: header
+ schema:
+ type: string
+ - name: q
+ description: Quality of the image. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: h
+ description: Resize image up to h maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: w
+ description: Resize image up to w maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: b
+ description: Blur the image according to this sigma value. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ responses:
+ '200':
+ description: File information gathered successfully
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ '304':
+ description: |
+ File hasn't been modified based on:
+ - file modification time is older than If-Modified-Since
+ - etag matches one of If-None-Match
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ '412':
+ description: |
+ Some of the conditions specified in the headers failed to match. For instance:
+ - etag doesn't match one of If-Match
+ - if-unmodified-since is false
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ default:
+ description: Some error occurred
+ headers:
+ X-Error:
+ description: An error message
+ schema:
+ type: string
+ get:
+ summary: Download File
+ description: "Download a file from storage"
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ - name: if-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match
+ in: header
+ schema:
+ type: string
+ - name: if-none-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match
+ in: header
+ schema:
+ type: string
+ - name: if-modified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since
+ in: header
+ schema:
+ type: string
+ - name: if-unmodified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since
+ in: header
+ schema:
+ type: string
+ - name: q
+ description: Quality of the image. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: h
+ description: Resize image up to h maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: w
+ description: Resize image up to w maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: b
+ description: Blur the image according to this sigma value. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ responses:
+ '200':
+ description: File gathered successfully
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ content:
+ application/octet-stream: {}
+ '304':
+ description: |
+ File hasn't been modified based on:
+ - file modification time is older than If-Modified-Since
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ '412':
+ description: |
+ Some of the conditions specified in the headers failed to match. For instance:
+ - etag doesn't match one of If-Match
+ - etag matches one of If-None-Match
+ - if-unmodified-since is false
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ default:
+ description: Some error occurred
+ headers:
+ X-Error:
+ description: An error message
+ schema:
+ type: string
+ put:
+ summary: Replace File
+ description: Replace the contents of an existing file
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ metadata:
+ $ref: '#/components/schemas/UpdateFileMetadata'
+ file:
+ description: New contents of the file to upload.
+ encoding:
+ file:
+ contentType: application/octet-stream
+ responses:
+ '200':
+ description: File was uploaded successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileMetadata'
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ summary: Delete File
+ description: "Delete file from storage"
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ responses:
+ '204':
+ description: File was deleted successfully
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /files/{id}/presignedurl:
+ get:
+ summary: Presigned URL
+ description: |
+ Retrieve presigned URL to retrieve the file. Expiration of the URL is
+ determined by bucket configuration
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ responses:
+ '200':
+ description: File gathered successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PresignedURLResponse'
+
+ default:
+ description: Some error occurred
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /files/{id}/presignedurl/contents:
+ get:
+ summary: "Get File Content"
+ description: "Retrieve content of a file"
+ tags:
+ - storage
+ security:
+ - Authorization: []
+ parameters:
+ - name: id
+ required: true
+ in: path
+ schema:
+ type: string
+ - name: X-Amz-Algorithm
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: X-Amz-Credential
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: X-Amz-Date
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: X-Amz-Expires
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: X-Amz-Signature
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: X-Amz-SignedHeaders
+ description: Use presignedurl endpoint to generate this automatically
+ required: true
+ in: query
+ schema:
+ type: string
+ - name: if-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match
+ in: header
+ schema:
+ type: string
+ - name: if-none-match
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match
+ in: header
+ schema:
+ type: string
+ - name: if-modified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since
+ in: header
+ schema:
+ type: string
+ - name: if-unmodified-since
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since
+ in: header
+ schema:
+ type: string
+ - name: q
+ description: Quality of the image. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: h
+ description: Resize image up to h maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: w
+ description: Resize image up to w maintaining aspect ratio. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ - name: b
+ description: Blur the image according to this sigma value. Only applies to jpeg, webp and png files
+ in: query
+ schema:
+ type: number
+ responses:
+ '200':
+ description: File gathered successfully
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ Accept-Ranges:
+ description: Always set to bytes. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges
+ schema:
+ type: string
+ content:
+ application/octet-stream: {}
+ '206':
+ description: File partially gathered successfully
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ Accept-Ranges:
+ description: Always set to bytes. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges
+ schema:
+ type: string
+ Content-Range:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range
+ schema:
+ type: string
+ content:
+ application/octet-stream: {}
+ '304':
+ description: |
+ File hasn't been modified based on:
+ - file modification time is older than If-Modified-Since
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ '412':
+ description: |
+ Some of the conditions specified in the headers failed to match. For instance:
+ - etag doesn't match one of If-Match
+ - etag matches one of If-None-Match
+ - if-unmodified-since is false
+ headers:
+ Cache-Control:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
+ schema:
+ type: string
+ Content-Length:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length
+ schema:
+ type: number
+ Content-Type:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+ schema:
+ type: string
+ Etag:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Etag
+ schema:
+ type: string
+ Last-Modified:
+ description: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified
+ schema:
+ type: string
+ default:
+ description: Some error occurred
+ headers:
+ X-Error:
+ description: An error message
+ schema:
+ type: string
+
+ /ops/list-orphans:
+ post:
+ summary: Lists orphaned files
+ description: Orphaned files are files that are present in the storage but have no associated metadata
+ tags:
+ - operations
+ security:
+ - X-Hasura-Admin-Secret: []
+ responses:
+ '200':
+ description: Successfully computed orphaned files
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /ops/delete-orphans:
+ post:
+ summary: Deletes orphaned files
+ description: Orphaned files are files that are present in the storage but have no associated metadata
+ tags:
+ - operations
+ security:
+ - X-Hasura-Admin-Secret: []
+ responses:
+ '200':
+ description: Successfully deleted orphaned files
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /ops/list-broken-metadata:
+ post:
+ summary: Lists broken metadata
+ description: Broken metadata is defined as metadata that has isUploaded = true but there is no file in the storage matching it
+ tags:
+ - operations
+ security:
+ - X-Hasura-Admin-Secret: []
+ responses:
+ '200':
+ description: Successfully computed broken metadata
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ metadata:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileSummary'
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /ops/delete-broken-metadata:
+ post:
+ summary: Delete broken metadata
+ description: Broken metadata is defined as metadata that has isUploaded = true but there is no file in the storage matching it
+ tags:
+ - operations
+ security:
+ - X-Hasura-Admin-Secret: []
+ responses:
+ '200':
+ description: Successfully deleted broken metadata
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ metadata:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileSummary'
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+
+ /ops/list-not-uploaded:
+ post:
+ summary: Lists files that haven't been uploaded
+ description: That is, metadata that has isUploaded = false
+ tags:
+ - operations
+ security:
+ - X-Hasura-Admin-Secret: []
+ responses:
+ '200':
+ description: Successfully checked files not uploaded
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ metadata:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileSummary'
+ default:
+ description: En error occured
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
diff --git a/docs/reference/overview.mdx b/docs/reference/overview.mdx
new file mode 100644
index 0000000000..770cfd9223
--- /dev/null
+++ b/docs/reference/overview.mdx
@@ -0,0 +1,23 @@
+---
+title: 'Overview'
+description: 'API Reference'
+icon: hand-wave
+---
+
+This reference section is home to both backend services and the various client libraries available.
+
+## Backend Services
+
+In this section you will find the API reference for both the authentication and storage services. There is an **API Playground** to help you learn and test the endpoints against a local Nhost instance.
+
+To learn how to start a local Nhost instance check out [local development](/development/cli/overview). Starting a local instance is optional and only required if you want to use the playground to simulate real requests.
+
+## Client Libraries
+
+This section documents the APIs for all available client libraries:
+
+- `@nhost/nhost-js`
+- `@nhost/react`
+- `@nhost/nextjs`
+- `@nhost/vue`
+
diff --git a/docs/reference/react/nhost-client.mdx b/docs/reference/react/nhost-client.mdx
new file mode 100644
index 0000000000..1eec9a2c60
--- /dev/null
+++ b/docs/reference/react/nhost-client.mdx
@@ -0,0 +1,32 @@
+---
+title: NhostClient
+sidebarTitle: NhostClient
+description: No description provided.
+---
+
+# `NhostClient`
+
+## Parameters
+
+---
+
+**params ** required [`NhostReactClientConstructorParams`](/reference/react/types/nhost-react-client-constructor-params)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------------- | :----------------------------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------- |
+| params. adminSecret | string
| | When set, the admin secret is sent as a header, `x-hasura-admin-secret`, for all requests to GraphQL, Storage, and Serverless Functions. |
+| params. functionsUrl | string
| | |
+| params. storageUrl | string
| | |
+| params. graphqlUrl | string
| | |
+| params. authUrl | string
| | |
+| params. region | string
| | Project region (e.g. `eu-central-1`) Project region is not required during local development (when `subdomain` is `localhost`) |
+| params. subdomain | string
| | Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`) Use `localhost` during local development |
+| params. backendUrl | string
| | Nhost backend URL Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead. |
+| params. devTools | boolean
| | Activate devTools e.g. the ability to connect to the xstate inspector |
+| params. autoSignIn | boolean
| | When set to true, will parse the url on startup to check if it contains a refresh token to start the session with |
+| params. autoRefreshToken | boolean
| | When set to true, will automatically refresh token before it expires |
+| params. clientStorage | ClientStorage
| | Object where the refresh token will be persisted and read locally. |
+| params. clientStorageType | ClientStorageType
| | Define a way to get information about the refresh token and its exipration date. |
+| params. refreshIntervalTime | number
| | Time interval until token refreshes, in seconds |
+
+---
diff --git a/docs/reference/react/signed-in.mdx b/docs/reference/react/signed-in.mdx
new file mode 100644
index 0000000000..ec28ca1c36
--- /dev/null
+++ b/docs/reference/react/signed-in.mdx
@@ -0,0 +1,29 @@
+---
+title:
+sidebarTitle:
+---
+
+Use ` ` to control the rendering of components for users. Components inside ` ` are only rendered if the user is authenticated.
+
+```tsx
+import { NhostProvider, SignedIn } from '@nhost/react'
+import { nhost } from '@/utils/nhost'
+
+function Page() {
+ return (
+
+
+ Only rendered if the user is authenticated
+
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required { children: ReactNode }
+
+---
diff --git a/docs/reference/react/signed-out.mdx b/docs/reference/react/signed-out.mdx
new file mode 100644
index 0000000000..6d57345341
--- /dev/null
+++ b/docs/reference/react/signed-out.mdx
@@ -0,0 +1,29 @@
+---
+title:
+sidebarTitle:
+---
+
+Use ` ` to control the rendering of components for users. Components inside ` ` are only rendered if the user is not authenticated.
+
+```tsx
+import { NhostProvider, SignedOut } from '@nhost/react'
+import { nhost } from '@/utils/nhost'
+
+function Page() {
+ return (
+
+
+ Only rendered if the user is not authenticated
+
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**\_\_namedParameters ** required { children: ReactNode }
+
+---
diff --git a/docs/reference/react/types/_category_.json b/docs/reference/react/types/_category_.json
new file mode 100644
index 0000000000..8a26da2ef0
--- /dev/null
+++ b/docs/reference/react/types/_category_.json
@@ -0,0 +1,9 @@
+{
+ "label": "Types",
+ "position": 1,
+ "className": "hidden",
+ "link": {
+ "type": "generated-index",
+ "slug": "/reference/react/types"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/react/types/add-securit-key-hook-result.mdx b/docs/reference/react/types/add-securit-key-hook-result.mdx
new file mode 100644
index 0000000000..99a565ec8c
--- /dev/null
+++ b/docs/reference/react/types/add-securit-key-hook-result.mdx
@@ -0,0 +1,41 @@
+---
+title: AddSecuritKeyHookResult
+sidebarTitle: AddSecuritKeyHookResult
+description: No description provided.
+---
+
+# `AddSecuritKeyHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/react/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**add ** required AddSecurityKeyHandler
+
+Add a security key to the current user with the WebAuthn API
+
+---
diff --git a/docs/reference/react/types/auth-machine.mdx b/docs/reference/react/types/auth-machine.mdx
new file mode 100644
index 0000000000..5d08c9d446
--- /dev/null
+++ b/docs/reference/react/types/auth-machine.mdx
@@ -0,0 +1,7 @@
+---
+title: AuthMachine
+sidebarTitle: AuthMachine
+description: No description provided.
+---
+
+# `AuthMachine`
diff --git a/docs/reference/react/types/backend-url.mdx b/docs/reference/react/types/backend-url.mdx
new file mode 100644
index 0000000000..9bf8c5a885
--- /dev/null
+++ b/docs/reference/react/types/backend-url.mdx
@@ -0,0 +1,11 @@
+---
+title: BackendUrl
+sidebarTitle: BackendUrl
+description: No description provided.
+---
+
+# `BackendUrl`
+
+```ts
+type BackendUrl = () => { backendUrl: string }
+```
diff --git a/docs/reference/react/types/change-email-hook-result.mdx b/docs/reference/react/types/change-email-hook-result.mdx
new file mode 100644
index 0000000000..1774e66424
--- /dev/null
+++ b/docs/reference/react/types/change-email-hook-result.mdx
@@ -0,0 +1,51 @@
+---
+title: ChangeEmailHookResult
+sidebarTitle: ChangeEmailHookResult
+description: No description provided.
+---
+
+# `ChangeEmailHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**changeEmail ** required ChangeEmailHandler
+
+Requests the email change. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/change-password-hook-result.mdx b/docs/reference/react/types/change-password-hook-result.mdx
new file mode 100644
index 0000000000..02834cba8c
--- /dev/null
+++ b/docs/reference/react/types/change-password-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: ChangePasswordHookResult
+sidebarTitle: ChangePasswordHookResult
+description: No description provided.
+---
+
+# `ChangePasswordHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/react/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**changePassword ** required ChangePasswordHandler
+
+Requests the password change. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/error-payload.mdx b/docs/reference/react/types/error-payload.mdx
new file mode 100644
index 0000000000..a5f00b74cc
--- /dev/null
+++ b/docs/reference/react/types/error-payload.mdx
@@ -0,0 +1,23 @@
+---
+title: ErrorPayload
+sidebarTitle: ErrorPayload
+description: No description provided.
+---
+
+# `ErrorPayload`
+
+## Parameters
+
+---
+
+**error ** required string
+
+---
+
+**status ** required number
+
+---
+
+**message ** required TMessage
+
+---
diff --git a/docs/reference/react/types/file-item-ref.mdx b/docs/reference/react/types/file-item-ref.mdx
new file mode 100644
index 0000000000..fb6f2ca059
--- /dev/null
+++ b/docs/reference/react/types/file-item-ref.mdx
@@ -0,0 +1,7 @@
+---
+title: FileItemRef
+sidebarTitle: FileItemRef
+description: No description provided.
+---
+
+# `FileItemRef`
diff --git a/docs/reference/react/types/file-upload-hook-result.mdx b/docs/reference/react/types/file-upload-hook-result.mdx
new file mode 100644
index 0000000000..092f8984fa
--- /dev/null
+++ b/docs/reference/react/types/file-upload-hook-result.mdx
@@ -0,0 +1,77 @@
+---
+title: FileUploadHookResult
+sidebarTitle: FileUploadHookResult
+description: No description provided.
+---
+
+# `FileUploadHookResult`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the file is being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when the file has been successfully uploaded.
+
+---
+
+**id ** optional string
+
+Returns the id of the file.
+
+---
+
+**bucketId ** optional string
+
+Returns the bucket id.
+
+---
+
+**name ** optional string
+
+Returns the name of the file.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | StorageErrorPayload
+
+Provides details about the error
+
+---
+
+**add ** required (params: StorageUploadFileParams) => void
+
+---
+
+**upload ** required (params: Partial<StorageUploadFileParams>) => Promise<UploadFileHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
diff --git a/docs/reference/react/types/multiple-files-hook-result.mdx b/docs/reference/react/types/multiple-files-hook-result.mdx
new file mode 100644
index 0000000000..0e5cc5e429
--- /dev/null
+++ b/docs/reference/react/types/multiple-files-hook-result.mdx
@@ -0,0 +1,63 @@
+---
+title: MultipleFilesHookResult
+sidebarTitle: MultipleFilesHookResult
+description: No description provided.
+---
+
+# `MultipleFilesHookResult`
+
+## Parameters
+
+---
+
+**isUploading ** required boolean
+
+Returns `true` when the files are being uploaded.
+
+---
+
+**progress ** required null | number
+
+Returns the overall progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**files ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+The list of file uploads. The properties can be accessed through `item.getSnapshot()` of with the `useFileUploadItem` hook.
+
+---
+
+**isError ** required boolean
+
+Returns `true` when all upload request are processed, but at least one of them has failed.
+
+---
+
+**errors ** required Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>
+
+Returns the list of file uploads that have failed
+
+---
+
+**isUploaded ** required boolean
+
+Returns `true` when all the files have been successfully uploaded.
+
+---
+
+**add ** required (params: Required<Pick<UploadMultipleFilesActionParams, "files">> & UploadMultipleFilesActionParams) => void
+
+---
+
+**upload ** required (params: UploadMultipleFilesActionParams) => Promise<MultipleFilesHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
+
+**clear ** required () => void
+
+---
diff --git a/docs/reference/react/types/nhost-auth-constructor-params.mdx b/docs/reference/react/types/nhost-auth-constructor-params.mdx
new file mode 100644
index 0000000000..0175d75a88
--- /dev/null
+++ b/docs/reference/react/types/nhost-auth-constructor-params.mdx
@@ -0,0 +1,71 @@
+---
+title: NhostAuthConstructorParams
+sidebarTitle: NhostAuthConstructorParams
+description: No description provided.
+---
+
+# `NhostAuthConstructorParams`
+
+## Parameters
+
+---
+
+**url ** required string
+
+---
+
+**start ** optional boolean
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
+
+**clientStorageType ** optional ClientStorageType
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**clientStorage ** optional ClientStorage
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
diff --git a/docs/reference/react/types/nhost-provider-props.mdx b/docs/reference/react/types/nhost-provider-props.mdx
new file mode 100644
index 0000000000..a61e3d5329
--- /dev/null
+++ b/docs/reference/react/types/nhost-provider-props.mdx
@@ -0,0 +1,27 @@
+---
+title: NhostProviderProps
+sidebarTitle: NhostProviderProps
+description: No description provided.
+---
+
+# `NhostProviderProps`
+
+## Parameters
+
+---
+
+**nhost ** required [`NhostClient`](/reference/react/nhost-client)
+
+---
+
+**initial ** optional [`NhostSession`](/reference/react/types/nhost-session)
+
+| Property | Type | Required | Notes |
+| :------------------------------------------------------------------------------------------------------- | :------------------------------------ | :------: | :---- |
+| initial. user | [`User`](/reference/react/types/user) | ✔️ | |
+| initial. refreshToken | null | string
| ✔️ | |
+| initial. accessTokenExpiresIn | number
| ✔️ | |
+| initial. accessToken | string
| ✔️ | |
+| initial. refreshTokenId | null | string
| | |
+
+---
diff --git a/docs/reference/react/types/nhost-react-client-constructor-params.mdx b/docs/reference/react/types/nhost-react-client-constructor-params.mdx
new file mode 100644
index 0000000000..6b83342328
--- /dev/null
+++ b/docs/reference/react/types/nhost-react-client-constructor-params.mdx
@@ -0,0 +1,107 @@
+---
+title: NhostReactClientConstructorParams
+sidebarTitle: NhostReactClientConstructorParams
+description: No description provided.
+---
+
+# `NhostReactClientConstructorParams`
+
+## Parameters
+
+---
+
+**adminSecret ** optional string
+
+When set, the admin secret is sent as a header, `x-hasura-admin-secret`,
+for all requests to GraphQL, Storage, and Serverless Functions.
+
+---
+
+**functionsUrl ** optional string
+
+---
+
+**storageUrl ** optional string
+
+---
+
+**graphqlUrl ** optional string
+
+---
+
+**authUrl ** optional string
+
+---
+
+**region ** optional string
+
+Project region (e.g. `eu-central-1`)
+Project region is not required during local development (when `subdomain` is `localhost`)
+
+---
+
+**subdomain ** optional string
+
+Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`)
+Use `localhost` during local development
+
+---
+
+**backendUrl ** optional string
+
+Nhost backend URL
+Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead.
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**clientStorage ** optional ClientStorage
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+---
+
+**clientStorageType ** optional ClientStorageType
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
diff --git a/docs/reference/react/types/nhost-session.mdx b/docs/reference/react/types/nhost-session.mdx
new file mode 100644
index 0000000000..2536ec2ed4
--- /dev/null
+++ b/docs/reference/react/types/nhost-session.mdx
@@ -0,0 +1,48 @@
+---
+title: NhostSession
+sidebarTitle: NhostSession
+description: No description provided.
+---
+
+# `NhostSession`
+
+## Parameters
+
+---
+
+**accessToken ** required string
+
+---
+
+**accessTokenExpiresIn ** required number
+
+---
+
+**refreshToken ** required null | string
+
+---
+
+**refreshTokenId ** optional null | string
+
+---
+
+**user ** required [`User`](/reference/react/types/user)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :------------------------------------------------- |
+| user. activeMfaType | null | "totp"
| ✔️ | |
+| user. phoneNumberVerified | boolean
| ✔️ | |
+| user. phoneNumber | null | string
| ✔️ | |
+| user. emailVerified | boolean
| ✔️ | Is `true` if the user email has not been verified |
+| user. metadata | Record<string, unknown>
| ✔️ | Additional attributes used for user information |
+| user. roles | Array<string>
| ✔️ | The roles assigned to the user |
+| user. defaultRole | string
| ✔️ | The default role of the user |
+| user. isAnonymous | boolean
| ✔️ | Whether or not the user is anonymous |
+| user. locale | string
| ✔️ | The locale of the user, as a two-characters string |
+| user. avatarUrl | string
| ✔️ | The URL to the user's profile picture |
+| user. displayName | string
| ✔️ | User's display name |
+| user. createdAt | string
| ✔️ | The date-time when the user has been created |
+| user. id | string
| ✔️ | User's unique identifier (uuid) |
+| user. email | string
| | User's email address |
+
+---
diff --git a/docs/reference/react/types/reset-password-hook-result.mdx b/docs/reference/react/types/reset-password-hook-result.mdx
new file mode 100644
index 0000000000..a0084fe2bf
--- /dev/null
+++ b/docs/reference/react/types/reset-password-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: ResetPasswordHookResult
+sidebarTitle: ResetPasswordHookResult
+description: No description provided.
+---
+
+# `ResetPasswordHookResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when an email to reset the password has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**resetPassword ** required ResetPasswordHandler
+
+Sends an email with a temporary connection link. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/send-verification-email-hook-result.mdx b/docs/reference/react/types/send-verification-email-hook-result.mdx
new file mode 100644
index 0000000000..71e2101a4d
--- /dev/null
+++ b/docs/reference/react/types/send-verification-email-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: SendVerificationEmailHookResult
+sidebarTitle: SendVerificationEmailHookResult
+description: No description provided.
+---
+
+# `SendVerificationEmailHookResult`
+
+## Parameters
+
+---
+
+**isSent ** required boolean
+
+Returns `true` when a new verification email has been sent
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**sendEmail ** required SendVerificationEmailHandler
+
+Resend the verification email. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/sign-in-email-password-hook-result.mdx b/docs/reference/react/types/sign-in-email-password-hook-result.mdx
new file mode 100644
index 0000000000..9b60a9b7b2
--- /dev/null
+++ b/docs/reference/react/types/sign-in-email-password-hook-result.mdx
@@ -0,0 +1,85 @@
+---
+title: SignInEmailPasswordHookResult
+sidebarTitle: SignInEmailPasswordHookResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordHookResult`
+
+## Parameters
+
+---
+
+**needsMfaOtp ** required boolean
+
+---
+
+**mfa ** required null | { ticket: string }
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/react/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signInEmailPassword ** required SignInEmailPasswordHandler
+
+---
+
+**sendMfaOtp ** required SendMfaOtpHander
+
+---
diff --git a/docs/reference/react/types/sign-in-email-passwordless-hook-result.mdx b/docs/reference/react/types/sign-in-email-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..d8ce0f2e27
--- /dev/null
+++ b/docs/reference/react/types/sign-in-email-passwordless-hook-result.mdx
@@ -0,0 +1,49 @@
+---
+title: SignInEmailPasswordlessHookResult
+sidebarTitle: SignInEmailPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInEmailPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | [`ErrorPayload`](/reference/react/types/error-payload)
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**signInEmailPasswordless ** required SignInEmailPasswordlessHandler
+
+Sends a magic link to the given email
+
+---
diff --git a/docs/reference/react/types/sign-in-pat-hook-result.mdx b/docs/reference/react/types/sign-in-pat-hook-result.mdx
new file mode 100644
index 0000000000..3a50646eba
--- /dev/null
+++ b/docs/reference/react/types/sign-in-pat-hook-result.mdx
@@ -0,0 +1,65 @@
+---
+title: SignInPATHookResult
+sidebarTitle: SignInPATHookResult
+description: No description provided.
+---
+
+# `SignInPATHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/react/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**signInPAT ** required SignInPATHandler
+
+---
diff --git a/docs/reference/react/types/sign-in-security-key-passwordless-hook-result.mdx b/docs/reference/react/types/sign-in-security-key-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..67363a1dc1
--- /dev/null
+++ b/docs/reference/react/types/sign-in-security-key-passwordless-hook-result.mdx
@@ -0,0 +1,73 @@
+---
+title: SignInSecurityKeyPasswordlessHookResult
+sidebarTitle: SignInSecurityKeyPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInSecurityKeyPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/react/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signInEmailSecurityKey ** required SignInSecurityKeyPasswordlessHandler
+
+---
diff --git a/docs/reference/react/types/sign-in-sms-passwordless-handler.mdx b/docs/reference/react/types/sign-in-sms-passwordless-handler.mdx
new file mode 100644
index 0000000000..bfa3d297d1
--- /dev/null
+++ b/docs/reference/react/types/sign-in-sms-passwordless-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessHandler
+sidebarTitle: SignInSmsPasswordlessHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHandler`
diff --git a/docs/reference/react/types/sign-in-sms-passwordless-hook-result.mdx b/docs/reference/react/types/sign-in-sms-passwordless-hook-result.mdx
new file mode 100644
index 0000000000..07548fe34e
--- /dev/null
+++ b/docs/reference/react/types/sign-in-sms-passwordless-hook-result.mdx
@@ -0,0 +1,59 @@
+---
+title: SignInSmsPasswordlessHookResult
+sidebarTitle: SignInSmsPasswordlessHookResult
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHookResult`
+
+## Parameters
+
+---
+
+**needsOtp ** required boolean
+
+Returns true when the one-time password has been sent over by SMS, and the user needs to send it back to complete sign-in.
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**signInSmsPasswordless ** required [`SignInSmsPasswordlessHandler`](/reference/react/types/sign-in-sms-passwordless-handler)
+
+Sends a one-time code to the given phoneNumber
+
+---
+
+**sendOtp ** required [`SignInSmsPasswordlessOtpHandler`](/reference/react/types/sign-in-sms-passwordless-otp-handler)
+
+---
diff --git a/docs/reference/react/types/sign-in-sms-passwordless-otp-handler.mdx b/docs/reference/react/types/sign-in-sms-passwordless-otp-handler.mdx
new file mode 100644
index 0000000000..75ec218e2f
--- /dev/null
+++ b/docs/reference/react/types/sign-in-sms-passwordless-otp-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessOtpHandler
+sidebarTitle: SignInSmsPasswordlessOtpHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessOtpHandler`
diff --git a/docs/reference/react/types/sign-up-email-password-hook-result.mdx b/docs/reference/react/types/sign-up-email-password-hook-result.mdx
new file mode 100644
index 0000000000..be18332b47
--- /dev/null
+++ b/docs/reference/react/types/sign-up-email-password-hook-result.mdx
@@ -0,0 +1,75 @@
+---
+title: SignUpEmailPasswordHookResult
+sidebarTitle: SignUpEmailPasswordHookResult
+description: No description provided.
+---
+
+# `SignUpEmailPasswordHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/react/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signUpEmailPassword ** required SignUpEmailPasswordHandler
+
+Used for a new user to sign up. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/sign-up-security-key-hook-result.mdx b/docs/reference/react/types/sign-up-security-key-hook-result.mdx
new file mode 100644
index 0000000000..6fc54f933d
--- /dev/null
+++ b/docs/reference/react/types/sign-up-security-key-hook-result.mdx
@@ -0,0 +1,75 @@
+---
+title: SignUpSecurityKeyHookResult
+sidebarTitle: SignUpSecurityKeyHookResult
+description: No description provided.
+---
+
+# `SignUpSecurityKeyHookResult`
+
+## Parameters
+
+---
+
+**isError ** required boolean
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required null | AuthErrorPayload
+
+Provides details about the error
+
+---
+
+**isLoading ** required boolean
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required boolean
+
+Returns `true` if the action is successful.
+
+---
+
+**user ** required null | [`User`](/reference/react/types/user)
+
+User information
+
+---
+
+**accessToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**refreshToken ** required null | string
+
+Access token (JWT)
+
+---
+
+**needsEmailVerification ** required boolean
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**signUpEmailSecurityKey ** required SignUpSecurityKeyHandler
+
+Used for a new user to sign up with a security key. Returns a promise with the current context
+
+---
diff --git a/docs/reference/react/types/subdomain.mdx b/docs/reference/react/types/subdomain.mdx
new file mode 100644
index 0000000000..5f734e91ad
--- /dev/null
+++ b/docs/reference/react/types/subdomain.mdx
@@ -0,0 +1,15 @@
+---
+title: Subdomain
+sidebarTitle: Subdomain
+description: No description provided.
+---
+
+# `Subdomain`
+
+```ts
+type Subdomain = () => {
+ subdomain: string
+ region: string
+ adminSecret: string
+}
+```
diff --git a/docs/reference/react/types/user.mdx b/docs/reference/react/types/user.mdx
new file mode 100644
index 0000000000..5033d0e5bb
--- /dev/null
+++ b/docs/reference/react/types/user.mdx
@@ -0,0 +1,91 @@
+---
+title: User
+sidebarTitle: User
+description: User information
+---
+
+# `User`
+
+User information
+
+## Parameters
+
+---
+
+**id ** required string
+
+User's unique identifier (uuid)
+
+---
+
+**createdAt ** required string
+
+The date-time when the user has been created
+
+---
+
+**displayName ** required string
+
+User's display name
+
+---
+
+**avatarUrl ** required string
+
+The URL to the user's profile picture
+
+---
+
+**locale ** required string
+
+The locale of the user, as a two-characters string
+
+---
+
+**email ** optional string
+
+User's email address
+
+---
+
+**isAnonymous ** required boolean
+
+Whether or not the user is anonymous
+
+---
+
+**defaultRole ** required string
+
+The default role of the user
+
+---
+
+**roles ** required Array<string>
+
+The roles assigned to the user
+
+---
+
+**metadata ** required Record<string, unknown>
+
+Additional attributes used for user information
+
+---
+
+**emailVerified ** required boolean
+
+Is `true` if the user email has not been verified
+
+---
+
+**phoneNumber ** required null | string
+
+---
+
+**phoneNumberVerified ** required boolean
+
+---
+
+**activeMfaType ** required null | "totp"
+
+---
diff --git a/docs/reference/react/use-access-token.mdx b/docs/reference/react/use-access-token.mdx
new file mode 100644
index 0000000000..1e56c3f06b
--- /dev/null
+++ b/docs/reference/react/use-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useAccessToken()
+sidebarTitle: useAccessToken()
+---
+
+Use `useAccessToken` to get the access token of the user.
+
+```ts
+const accessToken = useAccessToken()
+```
diff --git a/docs/reference/react/use-add-security-key.mdx b/docs/reference/react/use-add-security-key.mdx
new file mode 100644
index 0000000000..4c648e0c65
--- /dev/null
+++ b/docs/reference/react/use-add-security-key.mdx
@@ -0,0 +1,16 @@
+---
+title: useAddSecurityKey()
+sidebarTitle: useAddSecurityKey()
+---
+
+Use the hook `useAddSecurityKey` to add a WebAuthn security key.
+
+```tsx
+const { add, isLoading, isSuccess, isError, error } = useAddSecurityKey()
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await add('key nickname')
+}
+```
diff --git a/docs/reference/react/use-authenticated.mdx b/docs/reference/react/use-authenticated.mdx
new file mode 100644
index 0000000000..8d0c2873b5
--- /dev/null
+++ b/docs/reference/react/use-authenticated.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticated()
+sidebarTitle: useAuthenticated()
+---
+
+Use `useAuthenticated` to get the authentication status of the user.
+
+```ts
+const isAuthenticated = useAuthenticated()
+```
diff --git a/docs/reference/react/use-authentication-status.mdx b/docs/reference/react/use-authentication-status.mdx
new file mode 100644
index 0000000000..9b6528a88e
--- /dev/null
+++ b/docs/reference/react/use-authentication-status.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticationStatus()
+sidebarTitle: useAuthenticationStatus()
+---
+
+Use `useAuthenticationStatus` to get the authentication status for the user.
+
+```tsx
+const { isAuthenticated, isLoading } = useAuthenticationStatus()
+```
diff --git a/docs/reference/react/use-change-email.mdx b/docs/reference/react/use-change-email.mdx
new file mode 100644
index 0000000000..d3c7a6a9e4
--- /dev/null
+++ b/docs/reference/react/use-change-email.mdx
@@ -0,0 +1,27 @@
+---
+title: useChangeEmail()
+sidebarTitle: useChangeEmail()
+---
+
+Use the hook `useChangeEmail` to change email for the user.
+
+```tsx
+const { changeEmail, isLoading, needsEmailVerification, isError, error } =
+ useChangeEmail()
+
+console.log({ isLoading, needsEmailVerification, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changeEmail('new@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional ChangeEmailOptions
+
+---
diff --git a/docs/reference/react/use-change-password.mdx b/docs/reference/react/use-change-password.mdx
new file mode 100644
index 0000000000..7c76c9bcb1
--- /dev/null
+++ b/docs/reference/react/use-change-password.mdx
@@ -0,0 +1,19 @@
+---
+title: useChangePassword()
+sidebarTitle: useChangePassword()
+---
+
+Use the hook `useChangePassword` to change password for the user.
+
+```tsx
+const { changePassword, isLoading, isSuccess, isError, error } =
+ useChangePassword()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changePassword('my-new-password')
+}
+```
diff --git a/docs/reference/react/use-config-mfa.mdx b/docs/reference/react/use-config-mfa.mdx
new file mode 100644
index 0000000000..1267954e03
--- /dev/null
+++ b/docs/reference/react/use-config-mfa.mdx
@@ -0,0 +1,4 @@
+---
+title: useConfigMfa()
+sidebarTitle: useConfigMfa()
+---
diff --git a/docs/reference/react/use-decoded-access-token.mdx b/docs/reference/react/use-decoded-access-token.mdx
new file mode 100644
index 0000000000..90c67d8bf7
--- /dev/null
+++ b/docs/reference/react/use-decoded-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useDecodedAccessToken()
+sidebarTitle: useDecodedAccessToken()
+---
+
+Use the hook `useDecodedAccessToken` to get the decoded access token of the user.
+
+```tsx
+const decodedAccessToken = useDecodedAccessToken()
+```
diff --git a/docs/reference/react/use-file-upload-item.mdx b/docs/reference/react/use-file-upload-item.mdx
new file mode 100644
index 0000000000..bdf005c908
--- /dev/null
+++ b/docs/reference/react/use-file-upload-item.mdx
@@ -0,0 +1,38 @@
+---
+title: useFileUploadItem()
+sidebarTitle: useFileUploadItem()
+---
+
+Use the hook `useFileUploadItem` to control the file upload of a file in a multiple file upload.
+
+It has the same signature as `useFileUpload`.
+
+```tsx
+const Item = ({ itemRef }) => {
+ const { name, progress } = useFileUploadItem(itemRef)
+ return (
+
+ {name} {progress}
+
+ )
+}
+
+const List = () => {
+ const { list } = useMultipleFilesUpload()
+ return (
+
+ {list.map((itemRef) => (
+
+ ))}
+
+ )
+}
+```
+
+## Parameters
+
+---
+
+**ref ** required ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>> | Interpreter<FileUploadContext, any, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/react/use-file-upload.mdx b/docs/reference/react/use-file-upload.mdx
new file mode 100644
index 0000000000..b213a7628d
--- /dev/null
+++ b/docs/reference/react/use-file-upload.mdx
@@ -0,0 +1,27 @@
+---
+title: useFileUpload()
+sidebarTitle: useFileUpload()
+---
+
+Use the hook `useFileUpload` to upload a file.
+
+```tsx
+const {
+ add,
+ upload,
+ cancel,
+ isUploaded,
+ isUploading,
+ isError,
+ progress,
+ id,
+ bucketId,
+ name
+} = useFileUpload()
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await upload({ file })
+}
+```
diff --git a/docs/reference/react/use-hasura-claim.mdx b/docs/reference/react/use-hasura-claim.mdx
new file mode 100644
index 0000000000..310f9e1827
--- /dev/null
+++ b/docs/reference/react/use-hasura-claim.mdx
@@ -0,0 +1,19 @@
+---
+title: useHasuraClaim()
+sidebarTitle: useHasuraClaim()
+---
+
+Use the hook `useHasuraClaim` to get the value of a specific Hasura claim of the user.
+
+```tsx
+// if `x-hasura-company-id` exists as a custom claim
+const companyId = useHasuraClaim('company-id')
+```
+
+## Parameters
+
+---
+
+**name ** required string
+
+---
diff --git a/docs/reference/react/use-hasura-claims.mdx b/docs/reference/react/use-hasura-claims.mdx
new file mode 100644
index 0000000000..da30853e83
--- /dev/null
+++ b/docs/reference/react/use-hasura-claims.mdx
@@ -0,0 +1,10 @@
+---
+title: useHasuraClaims()
+sidebarTitle: useHasuraClaims()
+---
+
+Use the hook `useHasuraClaims` to get the Hasura claims of the user.
+
+```tsx
+const hasuraClaims = useHasuraClaims()
+```
diff --git a/docs/reference/react/use-multiple-files-upload.mdx b/docs/reference/react/use-multiple-files-upload.mdx
new file mode 100644
index 0000000000..e7c994de76
--- /dev/null
+++ b/docs/reference/react/use-multiple-files-upload.mdx
@@ -0,0 +1,6 @@
+---
+title: useMultipleFilesUpload()
+sidebarTitle: useMultipleFilesUpload()
+---
+
+Use the hook `useMultipleFilesUpload` to upload multiple files.
diff --git a/docs/reference/react/use-nhost-client.mdx b/docs/reference/react/use-nhost-client.mdx
new file mode 100644
index 0000000000..f8b3f155e0
--- /dev/null
+++ b/docs/reference/react/use-nhost-client.mdx
@@ -0,0 +1,10 @@
+---
+title: useNhostClient()
+sidebarTitle: useNhostClient()
+---
+
+Use the hook `useNhostClient` to get the Nhost JavaScript client (https://docs.nhost.io/reference/javascript).
+
+```tsx
+const nhost = useNhostClient()
+```
diff --git a/docs/reference/react/use-provider-link.mdx b/docs/reference/react/use-provider-link.mdx
new file mode 100644
index 0000000000..e760a8429f
--- /dev/null
+++ b/docs/reference/react/use-provider-link.mdx
@@ -0,0 +1,39 @@
+---
+title: useProviderLink()
+sidebarTitle: useProviderLink()
+---
+
+Use the hook `useProviderLink` to get an OAuth provider URL that can be used to sign in users.
+
+```js
+const providerLink = useProviderLink()
+```
+
+## Parameters
+
+---
+
+**options ** optional ProviderOptions
+
+---
+
+## Examples
+
+```js
+const providerLink = useProviderLink()
+```
+
+```jsx
+import { useProviderLink } from '@nhost/react'
+
+const Component = () => {
+ const { facebook, github } = useProviderLink()
+
+ return (
+
+ )
+}
+```
diff --git a/docs/reference/react/use-reset-password.mdx b/docs/reference/react/use-reset-password.mdx
new file mode 100644
index 0000000000..65360604ff
--- /dev/null
+++ b/docs/reference/react/use-reset-password.mdx
@@ -0,0 +1,28 @@
+---
+title: useResetPassword()
+sidebarTitle: useResetPassword()
+---
+
+Use the hook `useResetPassword` to reset the password for a user. This will send a reset password link in an email to the user. When the user clicks on the reset-password link the user is automatically signed in and can change their password using the hook `useChangePassword`.
+
+```tsx
+const { resetPassword, isLoading, isSent, isError, error } = useResetPassword()
+
+console.log({ isLoading, isSent, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await resetPassword('joe@example.com', {
+ redirectTo: 'http://localhost:3000/settings/change-password'
+ })
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional ResetPasswordOptions
+
+---
diff --git a/docs/reference/react/use-send-verification-email.mdx b/docs/reference/react/use-send-verification-email.mdx
new file mode 100644
index 0000000000..d3dabe7e6e
--- /dev/null
+++ b/docs/reference/react/use-send-verification-email.mdx
@@ -0,0 +1,29 @@
+---
+title: useSendVerificationEmail()
+sidebarTitle: useSendVerificationEmail()
+---
+
+Use the hook `useSendVerificationEmail` to send a verification email. The verification email is sent to the user's email address and includes a link to verify the email address.
+
+```tsx
+const { sendEmail, isLoading, isSent, isError, error } =
+ useSendVerificationEmail()
+
+console.log({ isLoading, isSent, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await sendEmail({
+ email: 'joe@example.com'
+ })
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SendVerificationEmailOptions
+
+---
diff --git a/docs/reference/react/use-sign-in-anonymous.mdx b/docs/reference/react/use-sign-in-anonymous.mdx
new file mode 100644
index 0000000000..b3ab92e42a
--- /dev/null
+++ b/docs/reference/react/use-sign-in-anonymous.mdx
@@ -0,0 +1,22 @@
+---
+title: useSignInAnonymous()
+sidebarTitle: useSignInAnonymous()
+---
+
+Use the hook `useSignInAnonymous` to sign in a user anonymously.
+
+As a result, the user will have the `anonymous` role and subsequent set of permissions.
+The user can then be converted to a regular user at a later stage using email+password sign-up, passwordless email (magic link), or passwordless SMS.
+
+```tsx
+const { signInAnonymous, isLoading, isSuccess, isError, error } =
+ useSignInAnonymous()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInAnonymous()
+}
+```
diff --git a/docs/reference/react/use-sign-in-email-password.mdx b/docs/reference/react/use-sign-in-email-password.mdx
new file mode 100644
index 0000000000..37eba2d20a
--- /dev/null
+++ b/docs/reference/react/use-sign-in-email-password.mdx
@@ -0,0 +1,25 @@
+---
+title: useSignInEmailPassword()
+sidebarTitle: useSignInEmailPassword()
+---
+
+Use the hook `useSignInEmailPassword` to sign in a user using email and password.
+
+```tsx
+const {
+ signInEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInEmailPassword()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPassword('joe@example.com', 'secret-password')
+}
+```
diff --git a/docs/reference/react/use-sign-in-email-passwordless.mdx b/docs/reference/react/use-sign-in-email-passwordless.mdx
new file mode 100644
index 0000000000..4cfb2e3ec2
--- /dev/null
+++ b/docs/reference/react/use-sign-in-email-passwordless.mdx
@@ -0,0 +1,27 @@
+---
+title: useSignInEmailPasswordless()
+sidebarTitle: useSignInEmailPasswordless()
+---
+
+Use the hook `useSignInEmailPasswordless` to sign in a user using passwordless email (Magic Link).
+
+```tsx
+const { signInEmailPasswordless, isLoading, isSuccess, isError, error } =
+ useSignInEmailPasswordless()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPasswordless('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional PasswordlessOptions
+
+---
diff --git a/docs/reference/react/use-sign-in-email-security-key.mdx b/docs/reference/react/use-sign-in-email-security-key.mdx
new file mode 100644
index 0000000000..73422364bc
--- /dev/null
+++ b/docs/reference/react/use-sign-in-email-security-key.mdx
@@ -0,0 +1,25 @@
+---
+title: useSignInEmailSecurityKey()
+sidebarTitle: useSignInEmailSecurityKey()
+---
+
+Use the hook `useSignInEmailSecurityKey` to sign in a user using their email and a security key using the WebAuthn API.
+
+```tsx
+const {
+ signInEmailSecurityKey,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInEmailSecurityKey()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailSecurityKey('joe@example.com')
+}
+```
diff --git a/docs/reference/react/use-sign-in-pat.mdx b/docs/reference/react/use-sign-in-pat.mdx
new file mode 100644
index 0000000000..d7f7d5be9f
--- /dev/null
+++ b/docs/reference/react/use-sign-in-pat.mdx
@@ -0,0 +1,18 @@
+---
+title: useSignInPAT()
+sidebarTitle: useSignInPAT()
+---
+
+Use the hook `useSignInPAT` to sign in a user using a personal access token.
+
+```tsx
+const { signInPAT, isLoading, isSuccess, isError, error } = useSignInPAT()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInPAT('8c5402d1-b05d-4825-a3ae-52d26402b89b')
+}
+```
diff --git a/docs/reference/react/use-sign-in-sms-passwordless.mdx b/docs/reference/react/use-sign-in-sms-passwordless.mdx
new file mode 100644
index 0000000000..d72ff29095
--- /dev/null
+++ b/docs/reference/react/use-sign-in-sms-passwordless.mdx
@@ -0,0 +1,44 @@
+---
+title: useSignInSmsPasswordless()
+sidebarTitle: useSignInSmsPasswordless()
+---
+
+Use the hook `useSignInSmsPasswordless` to sign in a user with a one-time password sent via SMS to a phone.
+
+1. The `signInSmsPasswordless` action sends a one-time password to the given phone number.
+2. The client is then awaiting the OTP. `needsOtp` equals true.
+3. After the code is received by SMS, the client sends the code with `sendOtp`. On success, the client is authenticated, and `isSuccess` equals `true`.
+
+Any error is monitored through `isError` and `error`. While the `signInSmsPasswordless` and `sendOtp` actions are running, `isLoading` equals `true`.
+
+```tsx
+const {
+ signInSmsPasswordless,
+ sendOtp,
+ needsOtp,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInSmsPasswordless()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const askCode = async (e) => {
+ e.preventDefault()
+ await signInSmsPasswordless('+32455555555')
+}
+
+const sendCode = async (e) => {
+ e.preventDefault()
+ await sendOtp('123456')
+}
+```
+
+## Parameters
+
+---
+
+**stateOptions ** optional PasswordlessOptions
+
+---
diff --git a/docs/reference/react/use-sign-out.mdx b/docs/reference/react/use-sign-out.mdx
new file mode 100644
index 0000000000..f28bede9d4
--- /dev/null
+++ b/docs/reference/react/use-sign-out.mdx
@@ -0,0 +1,29 @@
+---
+title: useSignOut()
+sidebarTitle: useSignOut()
+---
+
+Use the hook `useSignOut` to sign out the user.
+
+```tsx
+import { useSignOut, useAuthenticated } from '@nhost/react'
+
+const Component = () => {
+ const { signOut } = useSignOut()
+ const isAuthenticated = useAuthenticated()
+
+ if (isAuthenticated) {
+ return signOut()}>Sign Out
+ }
+
+ return Not authenticated
+}
+```
+
+## Parameters
+
+---
+
+**stateAll ** required boolean
+
+---
diff --git a/docs/reference/react/use-sign-up-email-password.mdx b/docs/reference/react/use-sign-up-email-password.mdx
new file mode 100644
index 0000000000..3323107cf7
--- /dev/null
+++ b/docs/reference/react/use-sign-up-email-password.mdx
@@ -0,0 +1,33 @@
+---
+title: useSignUpEmailPassword()
+sidebarTitle: useSignUpEmailPassword()
+---
+
+Use the hook `useSignUpEmailPassword` to sign up a user using email and password.
+
+```tsx
+const {
+ signUpEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignUpEmailPassword()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signUpEmailPassword('joe@example.com', 'secret-password')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SignUpOptions
+
+---
diff --git a/docs/reference/react/use-sign-up-email-security-key-email.mdx b/docs/reference/react/use-sign-up-email-security-key-email.mdx
new file mode 100644
index 0000000000..0368f218e0
--- /dev/null
+++ b/docs/reference/react/use-sign-up-email-security-key-email.mdx
@@ -0,0 +1,33 @@
+---
+title: useSignUpEmailSecurityKeyEmail()
+sidebarTitle: useSignUpEmailSecurityKeyEmail()
+---
+
+Use the hook `useSignUpEmailSecurityKey` to sign up a user with security key and an email using the WebAuthn API.
+
+```tsx
+const {
+ signUpEmailSecurityKey,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignUpEmailSecurityKey()
+
+console.log({ needsEmailVerification, isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signUpEmailSecurityKey('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional SignUpSecurityKeyOptions
+
+---
diff --git a/docs/reference/react/use-user-avatar-url.mdx b/docs/reference/react/use-user-avatar-url.mdx
new file mode 100644
index 0000000000..bb3f80b05c
--- /dev/null
+++ b/docs/reference/react/use-user-avatar-url.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserAvatarUrl()
+sidebarTitle: useUserAvatarUrl()
+---
+
+Use the hook `useUserAvatarUrl` to get the avatar URL of the user.
+
+```tsx
+const userAvatarUrl = useUserAvatarUrl()
+```
diff --git a/docs/reference/react/use-user-data.mdx b/docs/reference/react/use-user-data.mdx
new file mode 100644
index 0000000000..b0e35fc5bc
--- /dev/null
+++ b/docs/reference/react/use-user-data.mdx
@@ -0,0 +1,36 @@
+---
+title: useUserData()
+sidebarTitle: useUserData()
+---
+
+Use the hook `useUserData` to get the user data of the user.
+
+```tsx
+const userData = useUserData()
+```
+
+## Examples
+
+```tsx
+const userData = useUserData()
+```
+
+Example of user data
+
+```json
+{
+ "avatarUrl": "https://s.gravatar.com/avatar",
+ "createdAt": "2022-04-11T16:33:14.780439+00:00",
+ "defaultRole": "user",
+ "displayName": "John Doe",
+ "email": "john@nhost.io",
+ "id": "05e054c7-a722-42e7-90a6-3f77a2f118c8",
+ "isAnonymous": false,
+ "locale": "en",
+ "metadata": {
+ "lastName": "Doe",
+ "firstName": "John"
+ },
+ "roles": ["user", "me"]
+}
+```
diff --git a/docs/reference/react/use-user-default-role.mdx b/docs/reference/react/use-user-default-role.mdx
new file mode 100644
index 0000000000..9a77ca811f
--- /dev/null
+++ b/docs/reference/react/use-user-default-role.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDefaultRole()
+sidebarTitle: useUserDefaultRole()
+---
+
+Use the hook `useUserDefaultRole` to get the default role of the user.
+
+```tsx
+const userDefaultRole = useUserDefaultRole()
+```
diff --git a/docs/reference/react/use-user-display-name.mdx b/docs/reference/react/use-user-display-name.mdx
new file mode 100644
index 0000000000..c018253b0d
--- /dev/null
+++ b/docs/reference/react/use-user-display-name.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDisplayName()
+sidebarTitle: useUserDisplayName()
+---
+
+Use the hook `useUserDisplayName` to get the display name of the user.
+
+```tsx
+const userDisplayName = useUserDisplayName()
+```
diff --git a/docs/reference/react/use-user-email.mdx b/docs/reference/react/use-user-email.mdx
new file mode 100644
index 0000000000..d97c0704e4
--- /dev/null
+++ b/docs/reference/react/use-user-email.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserEmail()
+sidebarTitle: useUserEmail()
+---
+
+Use the hook `useUserEmail` to get the email of the user.
+
+```tsx
+const userEmail = useUserEmail()
+```
diff --git a/docs/reference/react/use-user-id.mdx b/docs/reference/react/use-user-id.mdx
new file mode 100644
index 0000000000..0ffc52c01b
--- /dev/null
+++ b/docs/reference/react/use-user-id.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserId()
+sidebarTitle: useUserId()
+---
+
+Use the hook `useUserId` to get the id of the user.
+
+```tsx
+const userId = useUserId()
+```
diff --git a/docs/reference/react/use-user-is-anonymous.mdx b/docs/reference/react/use-user-is-anonymous.mdx
new file mode 100644
index 0000000000..e2974bd7b2
--- /dev/null
+++ b/docs/reference/react/use-user-is-anonymous.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserIsAnonymous()
+sidebarTitle: useUserIsAnonymous()
+---
+
+Use the hook `useUserIsAnonymous` to see if the user is anonymous or not.
+
+```tsx
+const userIsAnonymous = useUserIsAnonymous()
+```
diff --git a/docs/reference/react/use-user-locale.mdx b/docs/reference/react/use-user-locale.mdx
new file mode 100644
index 0000000000..5e406f6f2a
--- /dev/null
+++ b/docs/reference/react/use-user-locale.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserLocale()
+sidebarTitle: useUserLocale()
+---
+
+Use the hook `useUserLocale` to get the locale of the user.
+
+```tsx
+const userLocale = useUserLocale()
+```
diff --git a/docs/reference/react/use-user-roles.mdx b/docs/reference/react/use-user-roles.mdx
new file mode 100644
index 0000000000..db0d20bd3d
--- /dev/null
+++ b/docs/reference/react/use-user-roles.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserRoles()
+sidebarTitle: useUserRoles()
+---
+
+Use the hook `useUserRoles` to get all allowed roles of the user.
+
+```tsx
+const userRoles = useUserRoles()
+```
diff --git a/docs/reference/storage/delete-file.mdx b/docs/reference/storage/delete-file.mdx
new file mode 100644
index 0000000000..fb319851bc
--- /dev/null
+++ b/docs/reference/storage/delete-file.mdx
@@ -0,0 +1,3 @@
+---
+openapi: delete /files/{id}
+---
\ No newline at end of file
diff --git a/docs/reference/storage/download-file-metadata.mdx b/docs/reference/storage/download-file-metadata.mdx
new file mode 100644
index 0000000000..ebbe50faae
--- /dev/null
+++ b/docs/reference/storage/download-file-metadata.mdx
@@ -0,0 +1,3 @@
+---
+openapi: head /files/{id}
+---
\ No newline at end of file
diff --git a/docs/reference/storage/download-file.mdx b/docs/reference/storage/download-file.mdx
new file mode 100644
index 0000000000..aea6c95a7f
--- /dev/null
+++ b/docs/reference/storage/download-file.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /files/{id}
+---
\ No newline at end of file
diff --git a/docs/reference/storage/get-file-content.mdx b/docs/reference/storage/get-file-content.mdx
new file mode 100644
index 0000000000..47156223c2
--- /dev/null
+++ b/docs/reference/storage/get-file-content.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /files/{id}/presignedurl/contents
+---
\ No newline at end of file
diff --git a/docs/reference/storage/presigned-url.mdx b/docs/reference/storage/presigned-url.mdx
new file mode 100644
index 0000000000..c012d61334
--- /dev/null
+++ b/docs/reference/storage/presigned-url.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /files/{id}/presignedurl
+---
\ No newline at end of file
diff --git a/docs/reference/storage/replace-file.mdx b/docs/reference/storage/replace-file.mdx
new file mode 100644
index 0000000000..02badd8c76
--- /dev/null
+++ b/docs/reference/storage/replace-file.mdx
@@ -0,0 +1,3 @@
+---
+openapi: put /files/{id}
+---
\ No newline at end of file
diff --git a/docs/reference/storage/upload-file.mdx b/docs/reference/storage/upload-file.mdx
new file mode 100644
index 0000000000..7fb77fe845
--- /dev/null
+++ b/docs/reference/storage/upload-file.mdx
@@ -0,0 +1,180 @@
+---
+openapi: post /files/
+---
+
+
+
+
+```bash Request
+curl --request POST \
+ --url https://local.storage.nhost.run/v1/files/ \
+ --header 'Authorization: ' \
+ --header 'Content-Type: multipart/form-data' \
+ --form 'file[]=@path-to-file'
+```
+
+```python Python
+import requests
+
+url = "https://local.storage.nhost.run/v1/files/"
+
+files = {
+ 'file': ('', open('', 'rb'))
+}
+headers = {
+ "Authorization": "",
+}
+
+response = requests.post(url, files=files, headers=headers)
+
+print(response.text)
+```
+
+```js JavaScript
+const form = new FormData();
+form.append("bucket-id", "");
+
+form.append("file[]", );
+
+form.append("metadata[]", JSON.stringify({
+ "id": "",
+ "metadata": {},
+ "name": ""
+}));
+
+const options = {
+ method: 'POST',
+ headers: {
+ Authorization: ''
+ },
+ body: form
+};
+
+fetch('https://local.storage.nhost.run/v1/files/', options)
+ .then(response => response.json())
+ .then(response => console.log(response))
+ .catch(err => console.error(err));
+```
+
+```php PHP
+';
+
+$postfields = [
+ "bucket-id" => "",
+ "file[]" => new CURLFile($file_path),
+ "metadata[]" => json_encode([
+ "id" => "",
+ "metadata" => new stdClass(),
+ "name" => ""
+ ])
+];
+
+curl_setopt_array($curl, [
+ CURLOPT_URL => "https://local.storage.nhost.run/v1/files/",
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_ENCODING => "",
+ CURLOPT_MAXREDIRS => 10,
+ CURLOPT_TIMEOUT => 30,
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+ CURLOPT_CUSTOMREQUEST => "POST",
+ CURLOPT_POSTFIELDS => $postfields,
+ CURLOPT_HTTPHEADER => [
+ "Authorization: "
+ ],
+]);
+
+$response = curl_exec($curl);
+$err = curl_error($curl);
+
+curl_close($curl);
+
+if ($err) {
+ echo "cURL Error #:" . $err;
+} else {
+ echo $response;
+}
+?>
+```
+
+```go Go
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "mime/multipart"
+ "net/http"
+ "os"
+ "io/ioutil"
+)
+
+func main() {
+ url := "https://local.storage.nhost.run/v1/files/"
+
+ var b bytes.Buffer
+ w := multipart.NewWriter(&b)
+
+ w.WriteField("bucket-id", "")
+
+ fw, _ := w.CreateFormFile("file[]", "")
+
+ file, _ := os.Open("")
+ defer file.Close()
+
+ _, _ = io.Copy(fw, file)
+
+ metadata := `{
+ "id": "",
+ "metadata": {},
+ "name": ""
+ }`
+ w.WriteField("metadata[]", metadata)
+ w.Close()
+
+ req, _ := http.NewRequest("POST", url, &b)
+
+ req.Header.Set("Content-Type", w.FormDataContentType())
+ req.Header.Add("Authorization", "")
+
+ res, _ := http.DefaultClient.Do(req)
+
+ defer res.Body.Close()
+
+ body, _ := ioutil.ReadAll(res.Body)
+
+ fmt.Println(res)
+ fmt.Println(string(body))
+}
+```
+
+```java Java
+import com.mashape.unirest.http.HttpResponse;
+import com.mashape.unirest.http.Unirest;
+import java.io.File;
+
+public class Main {
+ public static void main(String[] args) {
+ try {
+ File file = new File("");
+
+ HttpResponse response = Unirest.post("https://local.storage.nhost.run/v1/files/")
+ .header("Authorization", "")
+ // Removed Content-Type header, Unirest handles it
+ .field("bucket-id", "")
+ .field("file[]", file)
+ .field("metadata[]", "{\"id\": \"\", \"metadata\": {}, \"name\": \"\"}")
+ .asString();
+
+ System.out.println(response.getBody());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+
+
diff --git a/docs/reference/vue/nhost-client.mdx b/docs/reference/vue/nhost-client.mdx
new file mode 100644
index 0000000000..480b34d0b9
--- /dev/null
+++ b/docs/reference/vue/nhost-client.mdx
@@ -0,0 +1,28 @@
+---
+title: NhostClient
+sidebarTitle: NhostClient
+description: No description provided.
+---
+
+# `NhostClient`
+
+## Parameters
+
+---
+
+**params ** required [`NhostVueClientConstructorParams`](/reference/vue/types/nhost-vue-client-constructor-params)
+
+| Property | Type | Required | Notes |
+| :----------------------------------------------------------------------------------------------------- | :----------------------------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------- |
+| params. adminSecret | string
| | When set, the admin secret is sent as a header, `x-hasura-admin-secret`, for all requests to GraphQL, Storage, and Serverless Functions. |
+| params. region | string
| | Project region (e.g. `eu-central-1`) Project region is not required during local development (when `subdomain` is `localhost`) |
+| params. subdomain | string
| | Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`) Use `localhost` during local development |
+| params. backendUrl | string
| | Nhost backend URL Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead. |
+| params. devTools | boolean
| | Activate devTools e.g. the ability to connect to the xstate inspector |
+| params. autoSignIn | boolean
| | When set to true, will parse the url on startup to check if it contains a refresh token to start the session with |
+| params. autoRefreshToken | boolean
| | When set to true, will automatically refresh token before it expires |
+| params. clientStorage | ClientStorage
| | Object where the refresh token will be persisted and read locally. |
+| params. clientStorageType | ClientStorageType
| | Define a way to get information about the refresh token and its exipration date. |
+| params. refreshIntervalTime | number
| | Time interval until token refreshes, in seconds |
+
+---
diff --git a/docs/reference/vue/types/_category_.json b/docs/reference/vue/types/_category_.json
new file mode 100644
index 0000000000..8c8e8f18e6
--- /dev/null
+++ b/docs/reference/vue/types/_category_.json
@@ -0,0 +1,9 @@
+{
+ "label": "Types",
+ "position": 1,
+ "className": "hidden",
+ "link": {
+ "type": "generated-index",
+ "slug": "/reference/vue/types"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/vue/types/backend-url.mdx b/docs/reference/vue/types/backend-url.mdx
new file mode 100644
index 0000000000..9bf8c5a885
--- /dev/null
+++ b/docs/reference/vue/types/backend-url.mdx
@@ -0,0 +1,11 @@
+---
+title: BackendUrl
+sidebarTitle: BackendUrl
+description: No description provided.
+---
+
+# `BackendUrl`
+
+```ts
+type BackendUrl = () => { backendUrl: string }
+```
diff --git a/docs/reference/vue/types/change-email-composable-result.mdx b/docs/reference/vue/types/change-email-composable-result.mdx
new file mode 100644
index 0000000000..28137a8913
--- /dev/null
+++ b/docs/reference/vue/types/change-email-composable-result.mdx
@@ -0,0 +1,49 @@
+---
+title: ChangeEmailComposableResult
+sidebarTitle: ChangeEmailComposableResult
+description: No description provided.
+---
+
+# `ChangeEmailComposableResult`
+
+## Parameters
+
+---
+
+**isError ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required Ref<null | AuthErrorPayload>
+
+Provides details about the error
+
+---
+
+**isLoading ** required Ref<boolean>
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**needsEmailVerification ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an email is required to complete the action, and that a verification email has been sent to complete the action.
+
+---
+
+**changeEmail ** required (email: RefOrValue<string>) => Promise<ChangeEmailHandlerResult>
+
+---
diff --git a/docs/reference/vue/types/change-password-composable-result.mdx b/docs/reference/vue/types/change-password-composable-result.mdx
new file mode 100644
index 0000000000..d774021615
--- /dev/null
+++ b/docs/reference/vue/types/change-password-composable-result.mdx
@@ -0,0 +1,47 @@
+---
+title: ChangePasswordComposableResult
+sidebarTitle: ChangePasswordComposableResult
+description: No description provided.
+---
+
+# `ChangePasswordComposableResult`
+
+## Parameters
+
+---
+
+**isError ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required Ref<null | AuthErrorPayload>
+
+Provides details about the error
+
+---
+
+**isLoading ** required Ref<boolean>
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required Ref<boolean>
+
+Returns `true` if the action is successful.
+
+---
+
+**changePassword ** required (password: RefOrValue<string>) => Promise<ChangePasswordHandlerResult>
+
+---
diff --git a/docs/reference/vue/types/config-mfa-composable-state.mdx b/docs/reference/vue/types/config-mfa-composable-state.mdx
new file mode 100644
index 0000000000..b618120239
--- /dev/null
+++ b/docs/reference/vue/types/config-mfa-composable-state.mdx
@@ -0,0 +1,57 @@
+---
+title: ConfigMfaComposableState
+sidebarTitle: ConfigMfaComposableState
+description: No description provided.
+---
+
+# `ConfigMfaComposableState`
+
+## Parameters
+
+---
+
+**qrCodeDataUrl ** required Ref<string>
+
+---
+
+**isGenerated ** required Ref<boolean>
+
+---
+
+**isGenerating ** required Ref<boolean>
+
+---
+
+**isActivated ** required Ref<boolean>
+
+---
+
+**isActivating ** required Ref<boolean>
+
+---
+
+**isError ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required Ref<null | AuthErrorPayload>
+
+Provides details about the error
+
+---
+
+**generateQrCode ** required () => Promise<GenerateQrCodeHandlerResult>
+
+---
+
+**activateMfa ** required (code: string) => Promise<ActivateMfaHandlerResult>
+
+---
diff --git a/docs/reference/vue/types/error-payload.mdx b/docs/reference/vue/types/error-payload.mdx
new file mode 100644
index 0000000000..a5f00b74cc
--- /dev/null
+++ b/docs/reference/vue/types/error-payload.mdx
@@ -0,0 +1,23 @@
+---
+title: ErrorPayload
+sidebarTitle: ErrorPayload
+description: No description provided.
+---
+
+# `ErrorPayload`
+
+## Parameters
+
+---
+
+**error ** required string
+
+---
+
+**status ** required number
+
+---
+
+**message ** required TMessage
+
+---
diff --git a/docs/reference/vue/types/file-item-ref.mdx b/docs/reference/vue/types/file-item-ref.mdx
new file mode 100644
index 0000000000..fb6f2ca059
--- /dev/null
+++ b/docs/reference/vue/types/file-item-ref.mdx
@@ -0,0 +1,7 @@
+---
+title: FileItemRef
+sidebarTitle: FileItemRef
+description: No description provided.
+---
+
+# `FileItemRef`
diff --git a/docs/reference/vue/types/file-upload-composable-result.mdx b/docs/reference/vue/types/file-upload-composable-result.mdx
new file mode 100644
index 0000000000..ac146ddc90
--- /dev/null
+++ b/docs/reference/vue/types/file-upload-composable-result.mdx
@@ -0,0 +1,77 @@
+---
+title: FileUploadComposableResult
+sidebarTitle: FileUploadComposableResult
+description: No description provided.
+---
+
+# `FileUploadComposableResult`
+
+## Parameters
+
+---
+
+**isUploading ** required Ref<boolean>
+
+Returns `true` when the file is being uploaded.
+
+---
+
+**progress ** required Ref<null | number>
+
+Returns the progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**isUploaded ** required Ref<boolean>
+
+Returns `true` when the file has been successfully uploaded.
+
+---
+
+**id ** optional Ref<undefined | string>
+
+Returns the id of the file.
+
+---
+
+**bucketId ** optional Ref<undefined | string>
+
+Returns the bucket id.
+
+---
+
+**name ** optional Ref<undefined | string>
+
+Returns the name of the file.
+
+---
+
+**isError ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required Ref<null | StorageErrorPayload>
+
+Provides details about the error
+
+---
+
+**add ** required (params: StorageUploadFileParams) => void
+
+---
+
+**upload ** required (params: Partial<StorageUploadFileParams>) => Promise<UploadFileHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
diff --git a/docs/reference/vue/types/multiple-files-upload-composable-result.mdx b/docs/reference/vue/types/multiple-files-upload-composable-result.mdx
new file mode 100644
index 0000000000..49815f2f2e
--- /dev/null
+++ b/docs/reference/vue/types/multiple-files-upload-composable-result.mdx
@@ -0,0 +1,63 @@
+---
+title: MultipleFilesUploadComposableResult
+sidebarTitle: MultipleFilesUploadComposableResult
+description: No description provided.
+---
+
+# `MultipleFilesUploadComposableResult`
+
+## Parameters
+
+---
+
+**isUploading ** required Ref<boolean>
+
+Returns `true` when the files are being uploaded.
+
+---
+
+**progress ** required Ref<null | number>
+
+Returns the overall progress of the upload, from 0 to 100. Returns null if the upload has not started yet.
+
+---
+
+**files ** required Ref<Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>>
+
+The list of file uploads. The properties can be accessed through `item.getSnapshot()` of with the `useFileUploadItem` hook.
+
+---
+
+**isError ** required Ref<boolean>
+
+Returns `true` when all upload request are processed, but at least one of them has failed.
+
+---
+
+**errors ** required Ref<Array<ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>>>
+
+Returns the list of file uploads that have failed
+
+---
+
+**isUploaded ** required Ref<boolean>
+
+Returns `true` when all the files have been successfully uploaded.
+
+---
+
+**add ** required (params: Required<Pick<UploadMultipleFilesActionParams, "files">> & UploadMultipleFilesActionParams) => void
+
+---
+
+**upload ** required (params: UploadMultipleFilesActionParams) => Promise<MultipleFilesHandlerResult>
+
+---
+
+**cancel ** required () => void
+
+---
+
+**clear ** required () => void
+
+---
diff --git a/docs/reference/vue/types/nhost-session.mdx b/docs/reference/vue/types/nhost-session.mdx
new file mode 100644
index 0000000000..d267871676
--- /dev/null
+++ b/docs/reference/vue/types/nhost-session.mdx
@@ -0,0 +1,48 @@
+---
+title: NhostSession
+sidebarTitle: NhostSession
+description: No description provided.
+---
+
+# `NhostSession`
+
+## Parameters
+
+---
+
+**accessToken ** required string
+
+---
+
+**accessTokenExpiresIn ** required number
+
+---
+
+**refreshToken ** required null | string
+
+---
+
+**refreshTokenId ** optional null | string
+
+---
+
+**user ** required [`User`](/reference/vue/types/user)
+
+| Property | Type | Required | Notes |
+| :--------------------------------------------------------------------------------------------------- | :----------------------------------------- | :------: | :------------------------------------------------- |
+| user. activeMfaType | null | "totp"
| ✔️ | |
+| user. phoneNumberVerified | boolean
| ✔️ | |
+| user. phoneNumber | null | string
| ✔️ | |
+| user. emailVerified | boolean
| ✔️ | Is `true` if the user email has not been verified |
+| user. metadata | Record<string, unknown>
| ✔️ | Additional attributes used for user information |
+| user. roles | Array<string>
| ✔️ | The roles assigned to the user |
+| user. defaultRole | string
| ✔️ | The default role of the user |
+| user. isAnonymous | boolean
| ✔️ | Whether or not the user is anonymous |
+| user. locale | string
| ✔️ | The locale of the user, as a two-characters string |
+| user. avatarUrl | string
| ✔️ | The URL to the user's profile picture |
+| user. displayName | string
| ✔️ | User's display name |
+| user. createdAt | string
| ✔️ | The date-time when the user has been created |
+| user. id | string
| ✔️ | User's unique identifier (uuid) |
+| user. email | string
| | User's email address |
+
+---
diff --git a/docs/reference/vue/types/nhost-vue-client-constructor-params.mdx b/docs/reference/vue/types/nhost-vue-client-constructor-params.mdx
new file mode 100644
index 0000000000..e397e64dec
--- /dev/null
+++ b/docs/reference/vue/types/nhost-vue-client-constructor-params.mdx
@@ -0,0 +1,91 @@
+---
+title: NhostVueClientConstructorParams
+sidebarTitle: NhostVueClientConstructorParams
+description: No description provided.
+---
+
+# `NhostVueClientConstructorParams`
+
+## Parameters
+
+---
+
+**adminSecret ** optional string
+
+When set, the admin secret is sent as a header, `x-hasura-admin-secret`,
+for all requests to GraphQL, Storage, and Serverless Functions.
+
+---
+
+**region ** optional string
+
+Project region (e.g. `eu-central-1`)
+Project region is not required during local development (when `subdomain` is `localhost`)
+
+---
+
+**subdomain ** optional string
+
+Project subdomain (e.g. `ieingiwnginwnfnegqwvdqwdwq`)
+Use `localhost` during local development
+
+---
+
+**backendUrl ** optional string
+
+Nhost backend URL
+Will be deprecated in a future release. Please look at 'subdomain' and 'region' instead.
+
+---
+
+**devTools ** optional boolean
+
+Activate devTools e.g. the ability to connect to the xstate inspector
+
+---
+
+**autoSignIn ** optional boolean
+
+When set to true, will parse the url on startup to check if it contains a refresh token to start the session with
+
+---
+
+**autoRefreshToken ** optional boolean
+
+When set to true, will automatically refresh token before it expires
+
+---
+
+**clientStorage ** optional ClientStorage
+
+Object where the refresh token will be persisted and read locally.
+
+Recommended values:
+
+- `'web'` and `'cookies'`: no value is required
+- `'react-native'`: `import Storage from @react-native-async-storage/async-storage`
+- `'cookies'`: `localStorage`
+- `'custom'`: an object that defines the following methods:
+ - `setItem` or `setItemAsync`
+ - `getItem` or `getItemAsync`
+ - `removeItem`
+- `'capacitor'`: `import { Storage } from @capacitor/storage`
+- `'expo-secure-store'`: `import * as SecureStore from 'expo-secure-store'`
+
+---
+
+**clientStorageType ** optional ClientStorageType
+
+Define a way to get information about the refresh token and its exipration date.
+
+**`@default`**
+
+`web`
+
+---
+
+**refreshIntervalTime ** optional number
+
+Time interval until token refreshes, in seconds
+
+---
diff --git a/docs/reference/vue/types/sign-in-sms-passwordless-composable-result.mdx b/docs/reference/vue/types/sign-in-sms-passwordless-composable-result.mdx
new file mode 100644
index 0000000000..030c5cdd4b
--- /dev/null
+++ b/docs/reference/vue/types/sign-in-sms-passwordless-composable-result.mdx
@@ -0,0 +1,59 @@
+---
+title: SignInSmsPasswordlessComposableResult
+sidebarTitle: SignInSmsPasswordlessComposableResult
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessComposableResult`
+
+## Parameters
+
+---
+
+**needsOtp ** required Ref<boolean>
+
+Returns true when the one-time password has been sent over by SMS, and the user needs to send it back to complete sign-in.
+
+---
+
+**isError ** required Ref<boolean>
+
+**`@returns`**
+
+`true` if an error occurred
+
+**`@depreacted`**
+
+use `!isSuccess` or `!!error` instead
+
+---
+
+**error ** required Ref<null | AuthErrorPayload>
+
+Provides details about the error
+
+---
+
+**isLoading ** required Ref<boolean>
+
+**`@returns`**
+
+`true` when the action is executing, `false` when it finished its execution.
+
+---
+
+**isSuccess ** required Ref<boolean>
+
+Returns `true` if the action is successful.
+
+---
+
+**signInSmsPasswordless ** required [`SignInSmsPasswordlessHandler`](/reference/vue/types/sign-in-sms-passwordless-handler)
+
+Sends a one-time code to the given phoneNumber
+
+---
+
+**sendOtp ** required [`SignInSmsPasswordlessOtpHandler`](/reference/vue/types/sign-in-sms-passwordless-otp-handler)
+
+---
diff --git a/docs/reference/vue/types/sign-in-sms-passwordless-handler.mdx b/docs/reference/vue/types/sign-in-sms-passwordless-handler.mdx
new file mode 100644
index 0000000000..bfa3d297d1
--- /dev/null
+++ b/docs/reference/vue/types/sign-in-sms-passwordless-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessHandler
+sidebarTitle: SignInSmsPasswordlessHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessHandler`
diff --git a/docs/reference/vue/types/sign-in-sms-passwordless-otp-handler.mdx b/docs/reference/vue/types/sign-in-sms-passwordless-otp-handler.mdx
new file mode 100644
index 0000000000..75ec218e2f
--- /dev/null
+++ b/docs/reference/vue/types/sign-in-sms-passwordless-otp-handler.mdx
@@ -0,0 +1,7 @@
+---
+title: SignInSmsPasswordlessOtpHandler
+sidebarTitle: SignInSmsPasswordlessOtpHandler
+description: No description provided.
+---
+
+# `SignInSmsPasswordlessOtpHandler`
diff --git a/docs/reference/vue/types/subdomain.mdx b/docs/reference/vue/types/subdomain.mdx
new file mode 100644
index 0000000000..5f734e91ad
--- /dev/null
+++ b/docs/reference/vue/types/subdomain.mdx
@@ -0,0 +1,15 @@
+---
+title: Subdomain
+sidebarTitle: Subdomain
+description: No description provided.
+---
+
+# `Subdomain`
+
+```ts
+type Subdomain = () => {
+ subdomain: string
+ region: string
+ adminSecret: string
+}
+```
diff --git a/docs/reference/vue/types/user.mdx b/docs/reference/vue/types/user.mdx
new file mode 100644
index 0000000000..5033d0e5bb
--- /dev/null
+++ b/docs/reference/vue/types/user.mdx
@@ -0,0 +1,91 @@
+---
+title: User
+sidebarTitle: User
+description: User information
+---
+
+# `User`
+
+User information
+
+## Parameters
+
+---
+
+**id ** required string
+
+User's unique identifier (uuid)
+
+---
+
+**createdAt ** required string
+
+The date-time when the user has been created
+
+---
+
+**displayName ** required string
+
+User's display name
+
+---
+
+**avatarUrl ** required string
+
+The URL to the user's profile picture
+
+---
+
+**locale ** required string
+
+The locale of the user, as a two-characters string
+
+---
+
+**email ** optional string
+
+User's email address
+
+---
+
+**isAnonymous ** required boolean
+
+Whether or not the user is anonymous
+
+---
+
+**defaultRole ** required string
+
+The default role of the user
+
+---
+
+**roles ** required Array<string>
+
+The roles assigned to the user
+
+---
+
+**metadata ** required Record<string, unknown>
+
+Additional attributes used for user information
+
+---
+
+**emailVerified ** required boolean
+
+Is `true` if the user email has not been verified
+
+---
+
+**phoneNumber ** required null | string
+
+---
+
+**phoneNumberVerified ** required boolean
+
+---
+
+**activeMfaType ** required null | "totp"
+
+---
diff --git a/docs/reference/vue/use-access-token.mdx b/docs/reference/vue/use-access-token.mdx
new file mode 100644
index 0000000000..1e56c3f06b
--- /dev/null
+++ b/docs/reference/vue/use-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useAccessToken()
+sidebarTitle: useAccessToken()
+---
+
+Use `useAccessToken` to get the access token of the user.
+
+```ts
+const accessToken = useAccessToken()
+```
diff --git a/docs/reference/vue/use-authenticated.mdx b/docs/reference/vue/use-authenticated.mdx
new file mode 100644
index 0000000000..8d0c2873b5
--- /dev/null
+++ b/docs/reference/vue/use-authenticated.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticated()
+sidebarTitle: useAuthenticated()
+---
+
+Use `useAuthenticated` to get the authentication status of the user.
+
+```ts
+const isAuthenticated = useAuthenticated()
+```
diff --git a/docs/reference/vue/use-authentication-status.mdx b/docs/reference/vue/use-authentication-status.mdx
new file mode 100644
index 0000000000..9b6528a88e
--- /dev/null
+++ b/docs/reference/vue/use-authentication-status.mdx
@@ -0,0 +1,10 @@
+---
+title: useAuthenticationStatus()
+sidebarTitle: useAuthenticationStatus()
+---
+
+Use `useAuthenticationStatus` to get the authentication status for the user.
+
+```tsx
+const { isAuthenticated, isLoading } = useAuthenticationStatus()
+```
diff --git a/docs/reference/vue/use-change-email.mdx b/docs/reference/vue/use-change-email.mdx
new file mode 100644
index 0000000000..d7ca7718a6
--- /dev/null
+++ b/docs/reference/vue/use-change-email.mdx
@@ -0,0 +1,34 @@
+---
+title: useChangeEmail()
+sidebarTitle: useChangeEmail()
+---
+
+Use the composable `useChangeEmail` to change email for the user.
+
+```tsx
+const { changeEmail, isLoading, needsEmailVerification, isError, error } =
+ useChangeEmail()
+
+watchEffect(() => {
+ console.log(
+ isLoading.value,
+ needsEmailVerification.value,
+ isError.value,
+ error.value
+ )
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changeEmail('new@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | ChangeEmailOptions>
+
+---
diff --git a/docs/reference/vue/use-change-password.mdx b/docs/reference/vue/use-change-password.mdx
new file mode 100644
index 0000000000..be766d0fd4
--- /dev/null
+++ b/docs/reference/vue/use-change-password.mdx
@@ -0,0 +1,21 @@
+---
+title: useChangePassword()
+sidebarTitle: useChangePassword()
+---
+
+Use the composable `useChangePassword` to change password for the user.
+
+```tsx
+const { changePassword, isLoading, isSuccess, isError, error } =
+ useChangePassword()
+
+watchEffect(() => {
+ console.log(isLoading.value, isSuccess.value, isError.value, error.value)
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await changePassword('my-new-password')
+}
+```
diff --git a/docs/reference/vue/use-decoded-access-token.mdx b/docs/reference/vue/use-decoded-access-token.mdx
new file mode 100644
index 0000000000..886834453d
--- /dev/null
+++ b/docs/reference/vue/use-decoded-access-token.mdx
@@ -0,0 +1,10 @@
+---
+title: useDecodedAccessToken()
+sidebarTitle: useDecodedAccessToken()
+---
+
+Use the composable `useDecodedAccessToken` to get the decoded access token of the user.
+
+```tsx
+const decodedAccessToken = useDecodedAccessToken()
+```
diff --git a/docs/reference/vue/use-file-upload-item.mdx b/docs/reference/vue/use-file-upload-item.mdx
new file mode 100644
index 0000000000..d9ec7708af
--- /dev/null
+++ b/docs/reference/vue/use-file-upload-item.mdx
@@ -0,0 +1,49 @@
+---
+title: useFileUploadItem()
+sidebarTitle: useFileUploadItem()
+---
+
+Use the composable `useFileUploadItem` to control the file upload of a file in a multiple file upload.
+
+```vue
+
+
+
+
+
+
+ {{ name }}
+
+ {{ progress }}
+
+
+
+```
+
+## Parameters
+
+---
+
+**ref ** required ActorRefWithDeprecatedState<FileUploadContext, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>> | Interpreter<FileUploadContext, any, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, { value: any, context: FileUploadContext }, ResolveTypegenMeta<Typegen0, { type: "ADD", file: File, id: string, bucketId: string, name: string } | { type: "UPLOAD", file: File, id: string, name: string, bucketId: string } & FileUploadConfig | { type: "UPLOAD_PROGRESS", progress: number, loaded: number, additions: number } | { type: "UPLOAD_DONE", id: string, bucketId: string } | { type: "UPLOAD_ERROR", error: StorageErrorPayload } | { type: "CANCEL" } | { type: "DESTROY" }, BaseActionObject, ServiceMap>>
+
+---
diff --git a/docs/reference/vue/use-file-upload.mdx b/docs/reference/vue/use-file-upload.mdx
new file mode 100644
index 0000000000..3aa341dc40
--- /dev/null
+++ b/docs/reference/vue/use-file-upload.mdx
@@ -0,0 +1,27 @@
+---
+title: useFileUpload()
+sidebarTitle: useFileUpload()
+---
+
+Use the composable `useFileUpload` to upload a file.
+
+```ts
+const {
+ add,
+ upload,
+ cancel,
+ isUploaded,
+ isUploading,
+ isError,
+ progress,
+ id,
+ bucketId,
+ name
+} = useFileUpload()
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await upload({ file })
+}
+```
diff --git a/docs/reference/vue/use-hasura-claim.mdx b/docs/reference/vue/use-hasura-claim.mdx
new file mode 100644
index 0000000000..f8f389fca8
--- /dev/null
+++ b/docs/reference/vue/use-hasura-claim.mdx
@@ -0,0 +1,19 @@
+---
+title: useHasuraClaim()
+sidebarTitle: useHasuraClaim()
+---
+
+Use the composable `useHasuraClaim` to get the value of a specific Hasura claim of the user.
+
+```tsx
+// if `x-hasura-company-id` exists as a custom claim
+const companyId = useHasuraClaim('company-id')
+```
+
+## Parameters
+
+---
+
+**name ** required RefOrValue<string>
+
+---
diff --git a/docs/reference/vue/use-hasura-claims.mdx b/docs/reference/vue/use-hasura-claims.mdx
new file mode 100644
index 0000000000..24602841fe
--- /dev/null
+++ b/docs/reference/vue/use-hasura-claims.mdx
@@ -0,0 +1,10 @@
+---
+title: useHasuraClaims()
+sidebarTitle: useHasuraClaims()
+---
+
+Use the composable `useHasuraClaims` to get the Hasura claims of the user.
+
+```tsx
+const hasuraClaims = useHasuraClaims()
+```
diff --git a/docs/reference/vue/use-multiple-files-upload.mdx b/docs/reference/vue/use-multiple-files-upload.mdx
new file mode 100644
index 0000000000..a7c3493f4a
--- /dev/null
+++ b/docs/reference/vue/use-multiple-files-upload.mdx
@@ -0,0 +1,19 @@
+---
+title: useMultipleFilesUpload()
+sidebarTitle: useMultipleFilesUpload()
+---
+
+Use the composable `useMultipleFilesUpload` to upload multiple files.
+
+```ts
+const { add, upload } = useMultipleFilesUpload()
+
+const addFiles = async (files) => {
+ add({ files })
+}
+
+const handleSubmit = async (e) => {
+ e.preventDefault()
+ await upload()
+}
+```
diff --git a/docs/reference/vue/use-nhost-client.mdx b/docs/reference/vue/use-nhost-client.mdx
new file mode 100644
index 0000000000..5daf2405cc
--- /dev/null
+++ b/docs/reference/vue/use-nhost-client.mdx
@@ -0,0 +1,10 @@
+---
+title: useNhostClient()
+sidebarTitle: useNhostClient()
+---
+
+Use the composable `useNhostClient` to get the Nhost JavaScript client (https://docs.nhost.io/reference/javascript).
+
+```tsx
+const { nhost } = useNhostClient()
+```
diff --git a/docs/reference/vue/use-provider-link.mdx b/docs/reference/vue/use-provider-link.mdx
new file mode 100644
index 0000000000..954df4e8ee
--- /dev/null
+++ b/docs/reference/vue/use-provider-link.mdx
@@ -0,0 +1,39 @@
+---
+title: useProviderLink()
+sidebarTitle: useProviderLink()
+---
+
+Use the composable `useProviderLink` to get an OAuth provider URL that can be used to sign in users.
+
+```js
+const providerLink = useProviderLink()
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | ProviderOptions>
+
+---
+
+## Examples
+
+```js
+const providerLink = useProviderLink()
+```
+
+```jsx
+import { useProviderLink } from '@nhost/vue'
+
+const Component = () => {
+ const { facebook, github } = useProviderLink()
+
+ return (
+
+ )
+}
+```
diff --git a/docs/reference/vue/use-reset-password.mdx b/docs/reference/vue/use-reset-password.mdx
new file mode 100644
index 0000000000..9b59157aa9
--- /dev/null
+++ b/docs/reference/vue/use-reset-password.mdx
@@ -0,0 +1,30 @@
+---
+title: useResetPassword()
+sidebarTitle: useResetPassword()
+---
+
+Use the composable `useResetPassword` to reset the password for a user. This will send a reset password link in an email to the user. When the user clicks on the reset-password link the user is automatically signed in and can change their password using the composable `useChangePassword`.
+
+```tsx
+const { resetPassword, isLoading, isSent, isError, error } = useResetPassword({
+ redirectTo: 'http://localhost:3000/settings/change-password'
+})
+
+watchEffect(() => {
+ console.log(isLoading.value, isSent.value, isError.value, error.value)
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await resetPassword('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | ResetPasswordOptions>
+
+---
diff --git a/docs/reference/vue/use-send-verification-email.mdx b/docs/reference/vue/use-send-verification-email.mdx
new file mode 100644
index 0000000000..262563bcbe
--- /dev/null
+++ b/docs/reference/vue/use-send-verification-email.mdx
@@ -0,0 +1,31 @@
+---
+title: useSendVerificationEmail()
+sidebarTitle: useSendVerificationEmail()
+---
+
+Use the composable `useSendVerificationEmail` to send a verification email. The verification email is sent to the user's email address and includes a link to verify the email address.
+
+```tsx
+const { sendEmail, isLoading, isSent, isError, error } =
+ useSendVerificationEmail()
+
+watchEffect(() => {
+ console.log(isLoading.value, isSent.value, isError.value, error.value)
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await sendEmail({
+ email: 'joe@example.com'
+ })
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | SendVerificationEmailOptions>
+
+---
diff --git a/docs/reference/vue/use-sign-in-anonymous.mdx b/docs/reference/vue/use-sign-in-anonymous.mdx
new file mode 100644
index 0000000000..cb649efeb6
--- /dev/null
+++ b/docs/reference/vue/use-sign-in-anonymous.mdx
@@ -0,0 +1,24 @@
+---
+title: useSignInAnonymous()
+sidebarTitle: useSignInAnonymous()
+---
+
+Use the composable `useSignInAnonymous` to sign in a user anonymously.
+
+As a result, the user will have the `anonymous` role and subsequent set of permissions.
+The user can then be converted to a regular user at a later stage using email+password sign-up, passwordless email (magic link), or passwordless SMS.
+
+```tsx
+const { signInAnonymous, isLoading, isSuccess, isError, error } =
+ useSignInAnonymous()
+
+watchEffect(() => {
+ console.log(isLoading.value, isSuccess.value, isError.value, error.value)
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInAnonymous()
+}
+```
diff --git a/docs/reference/vue/use-sign-in-email-password.mdx b/docs/reference/vue/use-sign-in-email-password.mdx
new file mode 100644
index 0000000000..03eb7e8542
--- /dev/null
+++ b/docs/reference/vue/use-sign-in-email-password.mdx
@@ -0,0 +1,33 @@
+---
+title: useSignInEmailPassword()
+sidebarTitle: useSignInEmailPassword()
+---
+
+Use the composable `useSignInEmailPassword` to sign in a user using email and password.
+
+```tsx
+const {
+ signInEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInEmailPassword()
+
+watchEffect(() => {
+ console.log(
+ needsEmailVerification.value,
+ isLoading.value,
+ isSuccess.value,
+ isError.value,
+ error.value
+ )
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPassword('joe@example.com', 'secret-password')
+}
+```
diff --git a/docs/reference/vue/use-sign-in-email-passwordless.mdx b/docs/reference/vue/use-sign-in-email-passwordless.mdx
new file mode 100644
index 0000000000..fbb604adb5
--- /dev/null
+++ b/docs/reference/vue/use-sign-in-email-passwordless.mdx
@@ -0,0 +1,29 @@
+---
+title: useSignInEmailPasswordless()
+sidebarTitle: useSignInEmailPasswordless()
+---
+
+Use the composable `useSignInEmailPasswordless` to sign in a user using passwordless email (Magic Link).
+
+```tsx
+const { signInEmailPasswordless, isLoading, isSuccess, isError, error } =
+ useSignInEmailPasswordless()
+
+watchEffect(() => {
+ console.log(isLoading.value, isSuccess.value, isError.value, error.value)
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInEmailPasswordless('joe@example.com')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | PasswordlessOptions>
+
+---
diff --git a/docs/reference/vue/use-sign-in-pat.mdx b/docs/reference/vue/use-sign-in-pat.mdx
new file mode 100644
index 0000000000..1d3b15ca80
--- /dev/null
+++ b/docs/reference/vue/use-sign-in-pat.mdx
@@ -0,0 +1,18 @@
+---
+title: useSignInPAT()
+sidebarTitle: useSignInPAT()
+---
+
+Use the composable `useSignInPAT` to sign in a user using a personal access token.
+
+```tsx
+const { signInPAT, isLoading, isSuccess, isError, error } = useSignInPAT()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signInPAT('8c5402d1-b05d-4825-a3ae-52d26402b89b')
+}
+```
diff --git a/docs/reference/vue/use-sign-in-sms-passwordless.mdx b/docs/reference/vue/use-sign-in-sms-passwordless.mdx
new file mode 100644
index 0000000000..7369eceb21
--- /dev/null
+++ b/docs/reference/vue/use-sign-in-sms-passwordless.mdx
@@ -0,0 +1,44 @@
+---
+title: useSignInSmsPasswordless()
+sidebarTitle: useSignInSmsPasswordless()
+---
+
+Use the composable `useSignInSmsPasswordless` to sign in a user with a one-time password sent via SMS to a phone.
+
+1. The `signInSmsPasswordless` action sends a one-time password to the given phone number.
+2. The client is then awaiting the OTP. `needsOtp` equals true.
+3. After the code is received by SMS, the client sends the code with `sendOtp`. On success, the client is authenticated, and `isSuccess` equals `true`.
+
+Any error is monitored through `isError` and `error`. While the `signInSmsPasswordless` and `sendOtp` actions are running, `isLoading` equals `true`.
+
+```tsx
+const {
+ signInSmsPasswordless,
+ sendOtp,
+ needsOtp,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignInSmsPasswordless()
+
+console.log({ isLoading, isSuccess, isError, error })
+
+const askCode = async (e) => {
+ e.preventDefault()
+ await signInSmsPasswordless('+32455555555')
+}
+
+const sendCode = async (e) => {
+ e.preventDefault()
+ await sendOtp('123456')
+}
+```
+
+## Parameters
+
+---
+
+**stateOptions ** optional NestedRefOfValue<undefined | PasswordlessOptions>
+
+---
diff --git a/docs/reference/vue/use-sign-out.mdx b/docs/reference/vue/use-sign-out.mdx
new file mode 100644
index 0000000000..f9ed3c4f33
--- /dev/null
+++ b/docs/reference/vue/use-sign-out.mdx
@@ -0,0 +1,17 @@
+---
+title: useSignOut()
+sidebarTitle: useSignOut()
+---
+
+Use the composable `useSignOut` to sign out the user.
+
+```jsx
+import { useSignOut } from '@nhost/vue'
+
+const { signOut, isSuccess } = useSignOut()
+
+const handleSignOut = async (e) => {
+ e.preventDefault()
+ await signOut()
+}
+```
diff --git a/docs/reference/vue/use-sign-up-email-password.mdx b/docs/reference/vue/use-sign-up-email-password.mdx
new file mode 100644
index 0000000000..85d185f39d
--- /dev/null
+++ b/docs/reference/vue/use-sign-up-email-password.mdx
@@ -0,0 +1,41 @@
+---
+title: useSignUpEmailPassword()
+sidebarTitle: useSignUpEmailPassword()
+---
+
+Use the composable `useSignUpEmailPassword` to sign up a user using email and password.
+
+```tsx
+const {
+ signUpEmailPassword,
+ needsEmailVerification,
+ isLoading,
+ isSuccess,
+ isError,
+ error
+} = useSignUpEmailPassword()
+
+watchEffect(() => {
+ console.log(
+ needsEmailVerification.value,
+ isLoading.value,
+ isSuccess.value,
+ isError.value,
+ error.value
+ )
+})
+
+const handleFormSubmit = async (e) => {
+ e.preventDefault()
+
+ await signUpEmailPassword('joe@example.com', 'secret-password')
+}
+```
+
+## Parameters
+
+---
+
+**options ** optional NestedRefOfValue<undefined | SignUpOptions>
+
+---
diff --git a/docs/reference/vue/use-user-avatar-url.mdx b/docs/reference/vue/use-user-avatar-url.mdx
new file mode 100644
index 0000000000..4f192fd0d4
--- /dev/null
+++ b/docs/reference/vue/use-user-avatar-url.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserAvatarUrl()
+sidebarTitle: useUserAvatarUrl()
+---
+
+Use the composable `useUserAvatarUrl` to get the avatar URL of the user.
+
+```tsx
+const userAvatarUrl = useUserAvatarUrl()
+```
diff --git a/docs/reference/vue/use-user-data.mdx b/docs/reference/vue/use-user-data.mdx
new file mode 100644
index 0000000000..b89cf9f722
--- /dev/null
+++ b/docs/reference/vue/use-user-data.mdx
@@ -0,0 +1,36 @@
+---
+title: useUserData()
+sidebarTitle: useUserData()
+---
+
+Use the composable `useUserData` to get the user data of the user.
+
+```tsx
+const userData = useUserData()
+```
+
+## Examples
+
+```tsx
+const userData = useUserData()
+```
+
+Example of user data
+
+```json
+{
+ "avatarUrl": "https://s.gravatar.com/avatar",
+ "createdAt": "2022-04-11T16:33:14.780439+00:00",
+ "defaultRole": "user",
+ "displayName": "John Doe",
+ "email": "john@nhost.io",
+ "id": "05e054c7-a722-42e7-90a6-3f77a2f118c8",
+ "isAnonymous": false,
+ "locale": "en",
+ "metadata": {
+ "lastName": "Doe",
+ "firstName": "John"
+ },
+ "roles": ["user", "me"]
+}
+```
diff --git a/docs/reference/vue/use-user-default-role.mdx b/docs/reference/vue/use-user-default-role.mdx
new file mode 100644
index 0000000000..418bb078cd
--- /dev/null
+++ b/docs/reference/vue/use-user-default-role.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDefaultRole()
+sidebarTitle: useUserDefaultRole()
+---
+
+Use the composable `useUserDefaultRole` to get the default role of the user.
+
+```tsx
+const userDefaultRole = useUserDefaultRole()
+```
diff --git a/docs/reference/vue/use-user-display-name.mdx b/docs/reference/vue/use-user-display-name.mdx
new file mode 100644
index 0000000000..a34e5c8f53
--- /dev/null
+++ b/docs/reference/vue/use-user-display-name.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserDisplayName()
+sidebarTitle: useUserDisplayName()
+---
+
+Use the composable `useUserDisplayName` to get the display name of the user.
+
+```tsx
+const userDisplayName = useUserDisplayName()
+```
diff --git a/docs/reference/vue/use-user-email.mdx b/docs/reference/vue/use-user-email.mdx
new file mode 100644
index 0000000000..58918f817d
--- /dev/null
+++ b/docs/reference/vue/use-user-email.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserEmail()
+sidebarTitle: useUserEmail()
+---
+
+Use the composbale `useUserEmail` to get the email of the user.
+
+```tsx
+const userEmail = useUserEmail()
+```
diff --git a/docs/reference/vue/use-user-id.mdx b/docs/reference/vue/use-user-id.mdx
new file mode 100644
index 0000000000..0262db0080
--- /dev/null
+++ b/docs/reference/vue/use-user-id.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserId()
+sidebarTitle: useUserId()
+---
+
+Use the composable `useUserId` to get the id of the user.
+
+```tsx
+const userId = useUserId()
+```
diff --git a/docs/reference/vue/use-user-is-anonymous.mdx b/docs/reference/vue/use-user-is-anonymous.mdx
new file mode 100644
index 0000000000..b655e2c9fa
--- /dev/null
+++ b/docs/reference/vue/use-user-is-anonymous.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserIsAnonymous()
+sidebarTitle: useUserIsAnonymous()
+---
+
+Use the composable `useUserIsAnonymous` to see if the user is anonymous or not.
+
+```tsx
+const userIsAnonymous = useUserIsAnonymous()
+```
diff --git a/docs/reference/vue/use-user-locale.mdx b/docs/reference/vue/use-user-locale.mdx
new file mode 100644
index 0000000000..280bdfcf58
--- /dev/null
+++ b/docs/reference/vue/use-user-locale.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserLocale()
+sidebarTitle: useUserLocale()
+---
+
+Use the composable `useUserLocale` to get the locale of the user.
+
+```tsx
+const userLocale = useUserLocale()
+```
diff --git a/docs/reference/vue/use-user-roles.mdx b/docs/reference/vue/use-user-roles.mdx
new file mode 100644
index 0000000000..fee9e21a98
--- /dev/null
+++ b/docs/reference/vue/use-user-roles.mdx
@@ -0,0 +1,10 @@
+---
+title: useUserRoles()
+sidebarTitle: useUserRoles()
+---
+
+Use the composable `useUserRoles` to get all allowed roles of the user.
+
+```tsx
+const userRoles = useUserRoles()
+```
diff --git a/examples/vue-quickstart/.eslintrc.js b/examples/vue-quickstart/.eslintrc.js
index 898cd8df6c..d3fcd7b72b 100644
--- a/examples/vue-quickstart/.eslintrc.js
+++ b/examples/vue-quickstart/.eslintrc.js
@@ -7,6 +7,7 @@ module.exports = {
'quote-props': 'off',
'vue/html-self-closing': 'off',
'vue/singleline-html-element-content-newline': 'off',
- 'eol-last': 'off'
+ 'eol-last': 'off',
+ 'eslint-comments/no-unlimited-disable': 'off'
}
}
diff --git a/examples/vue-quickstart/auto-imports.d.ts b/examples/vue-quickstart/auto-imports.d.ts
index e02fa1106b..a97c47d8f9 100644
--- a/examples/vue-quickstart/auto-imports.d.ts
+++ b/examples/vue-quickstart/auto-imports.d.ts
@@ -1,5 +1,9 @@
-// Generated by 'unplugin-auto-import'
-// We suggest you to commit this file into source control
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// noinspection JSUnusedGlobalSymbols
+// Generated by unplugin-auto-import
+export {}
declare global {
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
@@ -23,7 +27,12 @@ declare global {
const extendRef: typeof import('@vueuse/core')['extendRef']
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
const isDefined: typeof import('@vueuse/core')['isDefined']
+ const logicAnd: typeof import('@vueuse/core')['logicAnd']
+ const logicNot: typeof import('@vueuse/core')['logicNot']
+ const logicOr: typeof import('@vueuse/core')['logicOr']
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
+ const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
+ const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
const onLongPress: typeof import('@vueuse/core')['onLongPress']
@@ -79,6 +88,7 @@ declare global {
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
const useCached: typeof import('@vueuse/core')['useCached']
+ const useClamp: typeof import('@vueuse/core')['useClamp']
const useClipboard: typeof import('@vueuse/core')['useClipboard']
const useCloned: typeof import('@vueuse/core')['useCloned']
const useColorMode: typeof import('@vueuse/core')['useColorMode']
@@ -90,8 +100,8 @@ declare global {
const useDark: typeof import('@vueuse/core')['useDark']
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
const useDebounce: typeof import('@vueuse/core')['useDebounce']
- const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
+ const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
@@ -127,6 +137,7 @@ declare global {
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
+ const useLink: typeof import('vue-router')['useLink']
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
@@ -181,28 +192,28 @@ declare global {
const useSupported: typeof import('@vueuse/core')['useSupported']
const useSwipe: typeof import('@vueuse/core')['useSwipe']
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
- const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
+ const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
const useThrottle: typeof import('@vueuse/core')['useThrottle']
- const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
+ const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
const useTimeout: typeof import('@vueuse/core')['useTimeout']
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
const useTitle: typeof import('@vueuse/core')['useTitle']
- const useToggle: typeof import('@vueuse/core')['useToggle']
const useToNumber: typeof import('@vueuse/core')['useToNumber']
const useToString: typeof import('@vueuse/core')['useToString']
+ const useToggle: typeof import('@vueuse/core')['useToggle']
const useTransition: typeof import('@vueuse/core')['useTransition']
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
- const useVibrate: typeof import('@vueuse/core')['useVibrate']
- const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
const useVModel: typeof import('@vueuse/core')['useVModel']
const useVModels: typeof import('@vueuse/core')['useVModels']
+ const useVibrate: typeof import('@vueuse/core')['useVibrate']
+ const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
@@ -224,4 +235,3 @@ declare global {
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
const whenever: typeof import('@vueuse/core')['whenever']
}
-export {}
diff --git a/examples/vue-quickstart/package.json b/examples/vue-quickstart/package.json
index d0912658f0..43217e4332 100644
--- a/examples/vue-quickstart/package.json
+++ b/examples/vue-quickstart/package.json
@@ -33,10 +33,10 @@
"pnpm": "^7.9.1",
"typescript": "^4.8.2",
"unocss": "^0.33.5",
- "unplugin-auto-import": "^0.7.2",
+ "unplugin-auto-import": "^0.17.3",
"unplugin-vue-components": "^0.19.9",
"vite": "^4.0.2",
"vite-plugin-pages": "^0.28.0",
"vue-tsc": "^0.38.9"
}
-}
\ No newline at end of file
+}
diff --git a/flake.nix b/flake.nix
index 204b0d5587..1fffa95e77 100644
--- a/flake.nix
+++ b/flake.nix
@@ -8,88 +8,11 @@
outputs = { self, nixpkgs, flake-utils, nix-filter }:
flake-utils.lib.eachDefaultSystem (system:
let
- version = "v1.5.2";
- dist = {
- aarch64-darwin = rec {
- url = "https://github.com/nhost/cli/releases/download/${version}/cli-${version}-darwin-arm64.tar.gz";
- sha256 = "0rakx9lpbj5m3jfra5r2iw065x800i951843l3mxbwk9m1hzm185";
- };
- x86_64-linux = rec {
- url = "https://github.com/nhost/cli/releases/download/${version}/cli-${version}-linux-amd64.tar.gz";
- sha256 = "19x83fpvazwzpnrxi0qh6mh14wwhlw77qd7vvc3633dxa5hdigc4";
- };
- };
- overlays = [
- (final: prev: rec {
- hasura-cli = prev.hasura-cli.override {
- buildGoModule = args: final.buildGoModule (args // rec {
- version = "2.15.2";
- src = final.fetchFromGitHub {
- owner = "hasura";
- repo = "graphql-engine";
- rev = "v${version}";
- sha256 = "sha256-q5Pk8K6WlkPMsegdKAqXXTFtPlN65Y1luoAsvjoW+20=";
- };
-
- ldflags = [
- "-X github.com/hasura/graphql-engine/cli/v2/version.BuildVersion=${version}"
- "-X github.com/hasura/graphql-engine/cli/v2/plugins.IndexBranchRef=master"
- "-s"
- "-w"
- "-extldflags"
- "\"-static\""
- ];
- vendorSha256 = "sha256-vZKPVQ/FTHnEBsRI5jOT6qm7noGuGukWpmrF8fK0Mgs=";
- });
- };
-
- nhost = final.stdenvNoCC.mkDerivation rec {
- pname = "nhost-cli";
- inherit version;
-
- src = final.fetchurl {
- inherit (dist.${final.stdenvNoCC.hostPlatform.system} or
- (throw "Unsupported system: ${final.stdenvNoCC.hostPlatform.system}")) url sha256;
- };
-
-
- sourceRoot = ".";
-
- nativeBuildInputs = [
- final.makeWrapper
- final.installShellFiles
- ];
-
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/bin
- mv cli $out/bin/nhost
-
- wrapProgram $out/bin/nhost --set HASURACLI ${final.hasura-cli}/bin/hasura
-
- installShellCompletion --cmd nhost \
- --bash <($out/bin/nhost completion bash) \
- --fish <($out/bin/nhost completion fish) \
- --zsh <($out/bin/nhost completion zsh)
-
- runHook postInstall
- '';
-
- meta = with final.lib; {
- description = "Nhost CLI";
- homepage = "https://nhost.io";
- license = licenses.mit;
- maintainers = [ "@nhost" ];
- };
-
-
- };
- }
- )
- ];
pkgs = import nixpkgs {
- inherit system overlays;
+ inherit system;
+ overlays = [
+ (import ./nix/overlay.nix)
+ ];
};
nix-src = nix-filter.lib.filter {
@@ -123,9 +46,11 @@
devShells = flake-utils.lib.flattenTree rec {
default = pkgs.mkShell {
buildInputs = with pkgs; [
- nhost
+ nhost-cli
nodejs_18
nodePackages.pnpm
+ node2nix
+ mintlify
] ++ buildInputs ++ nativeBuildInputs;
};
};
diff --git a/nix/mintlify/default.nix b/nix/mintlify/default.nix
new file mode 100644
index 0000000000..d9c0daef78
--- /dev/null
+++ b/nix/mintlify/default.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.11.1. Do not edit!
+
+{pkgs ? import {
+ inherit system;
+ }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_18"}:
+
+let
+ nodeEnv = import ./node-env.nix {
+ inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
+ inherit pkgs nodejs;
+ libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+ };
+in
+import ./node-packages.nix {
+ inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+ inherit nodeEnv;
+}
diff --git a/nix/mintlify/node-env.nix b/nix/mintlify/node-env.nix
new file mode 100644
index 0000000000..bc1e36628a
--- /dev/null
+++ b/nix/mintlify/node-env.nix
@@ -0,0 +1,689 @@
+# This file originates from node2nix
+
+{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
+
+let
+ # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+ utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
+ python = if nodejs ? python then nodejs.python else python2;
+
+ # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+ tarWrapper = runCommand "tarWrapper" {} ''
+ mkdir -p $out/bin
+
+ cat > $out/bin/tar <> $out/nix-support/hydra-build-products
+ '';
+ };
+
+ # Common shell logic
+ installPackage = writeShellScript "install-package" ''
+ installPackage() {
+ local packageName=$1 src=$2
+
+ local strippedName
+
+ local DIR=$PWD
+ cd $TMPDIR
+
+ unpackFile $src
+
+ # Make the base dir in which the target dependency resides first
+ mkdir -p "$(dirname "$DIR/$packageName")"
+
+ if [ -f "$src" ]
+ then
+ # Figure out what directory has been unpacked
+ packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+ # Restore write permissions to make building work
+ find "$packageDir" -type d -exec chmod u+x {} \;
+ chmod -R u+w "$packageDir"
+
+ # Move the extracted tarball into the output folder
+ mv "$packageDir" "$DIR/$packageName"
+ elif [ -d "$src" ]
+ then
+ # Get a stripped name (without hash) of the source directory.
+ # On old nixpkgs it's already set internally.
+ if [ -z "$strippedName" ]
+ then
+ strippedName="$(stripHash $src)"
+ fi
+
+ # Restore write permissions to make building work
+ chmod -R u+w "$strippedName"
+
+ # Move the extracted directory into the output folder
+ mv "$strippedName" "$DIR/$packageName"
+ fi
+
+ # Change to the package directory to install dependencies
+ cd "$DIR/$packageName"
+ }
+ '';
+
+ # Bundle the dependencies of the package
+ #
+ # Only include dependencies if they don't exist. They may also be bundled in the package.
+ includeDependencies = {dependencies}:
+ lib.optionalString (dependencies != []) (
+ ''
+ mkdir -p node_modules
+ cd node_modules
+ ''
+ + (lib.concatMapStrings (dependency:
+ ''
+ if [ ! -e "${dependency.packageName}" ]; then
+ ${composePackage dependency}
+ fi
+ ''
+ ) dependencies)
+ + ''
+ cd ..
+ ''
+ );
+
+ # Recursively composes the dependencies of a package
+ composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+ builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+ installPackage "${packageName}" "${src}"
+ ${includeDependencies { inherit dependencies; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ '';
+
+ pinpointDependencies = {dependencies, production}:
+ let
+ pinpointDependenciesFromPackageJSON = writeTextFile {
+ name = "pinpointDependencies.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function resolveDependencyVersion(location, name) {
+ if(location == process.env['NIX_STORE']) {
+ return null;
+ } else {
+ var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+ if(fs.existsSync(dependencyPackageJSON)) {
+ var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+ if(dependencyPackageObj.name == name) {
+ return dependencyPackageObj.version;
+ }
+ } else {
+ return resolveDependencyVersion(path.resolve(location, ".."), name);
+ }
+ }
+ }
+
+ function replaceDependencies(dependencies) {
+ if(typeof dependencies == "object" && dependencies !== null) {
+ for(var dependency in dependencies) {
+ var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+ if(resolvedVersion === null) {
+ process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+ } else {
+ dependencies[dependency] = resolvedVersion;
+ }
+ }
+ }
+ }
+
+ /* Read the package.json configuration */
+ var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+ /* Pinpoint all dependencies */
+ replaceDependencies(packageObj.dependencies);
+ if(process.argv[2] == "development") {
+ replaceDependencies(packageObj.devDependencies);
+ }
+ else {
+ packageObj.devDependencies = {};
+ }
+ replaceDependencies(packageObj.optionalDependencies);
+ replaceDependencies(packageObj.peerDependencies);
+
+ /* Write the fixed package.json file */
+ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+ '';
+ };
+ in
+ ''
+ node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+ ${lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+ cd ..
+ fi
+ ''}
+ '';
+
+ # Recursively traverses all dependencies of a package and pinpoints all
+ # dependencies in the package.json file to the versions that are actually
+ # being used.
+
+ pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+ ''
+ if [ -d "${packageName}" ]
+ then
+ cd "${packageName}"
+ ${pinpointDependencies { inherit dependencies production; }}
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+ fi
+ '';
+
+ # Extract the Node.js source code which is used to compile packages with
+ # native bindings
+ nodeSources = runCommand "node-sources" {} ''
+ tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+ mv node-* $out
+ '';
+
+ # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+ addIntegrityFieldsScript = writeTextFile {
+ name = "addintegrityfields.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ function augmentDependencies(baseDir, dependencies) {
+ for(var dependencyName in dependencies) {
+ var dependency = dependencies[dependencyName];
+
+ // Open package.json and augment metadata fields
+ var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+ var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+ if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+ console.log("Adding metadata fields to: "+packageJSONPath);
+ var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+ if(dependency.integrity) {
+ packageObj["_integrity"] = dependency.integrity;
+ } else {
+ packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+ }
+
+ if(dependency.resolved) {
+ packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+ } else {
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ }
+
+ if(dependency.from !== undefined) { // Adopt from property if one has been provided
+ packageObj["_from"] = dependency.from;
+ }
+
+ fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+ }
+
+ // Augment transitive dependencies
+ if(dependency.dependencies !== undefined) {
+ augmentDependencies(packageJSONDir, dependency.dependencies);
+ }
+ }
+ }
+
+ if(fs.existsSync("./package-lock.json")) {
+ var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+ if(![1, 2].includes(packageLock.lockfileVersion)) {
+ process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+ process.exit(1);
+ }
+
+ if(packageLock.dependencies !== undefined) {
+ augmentDependencies(".", packageLock.dependencies);
+ }
+ }
+ '';
+ };
+
+ # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+ reconstructPackageLock = writeTextFile {
+ name = "reconstructpackagelock.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var lockObj = {
+ name: packageObj.name,
+ version: packageObj.version,
+ lockfileVersion: 2,
+ requires: true,
+ packages: {
+ "": {
+ name: packageObj.name,
+ version: packageObj.version,
+ license: packageObj.license,
+ bin: packageObj.bin,
+ dependencies: packageObj.dependencies,
+ engines: packageObj.engines,
+ optionalDependencies: packageObj.optionalDependencies
+ }
+ },
+ dependencies: {}
+ };
+
+ function augmentPackageJSON(filePath, packages, dependencies) {
+ var packageJSON = path.join(filePath, "package.json");
+ if(fs.existsSync(packageJSON)) {
+ var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+ packages[filePath] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: packageObj.dependencies,
+ engines: packageObj.engines,
+ optionalDependencies: packageObj.optionalDependencies
+ };
+ dependencies[packageObj.name] = {
+ version: packageObj.version,
+ integrity: "sha1-000000000000000000000000000=",
+ dependencies: {}
+ };
+ processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies);
+ }
+ }
+
+ function processDependencies(dir, packages, dependencies) {
+ if(fs.existsSync(dir)) {
+ var files = fs.readdirSync(dir);
+
+ files.forEach(function(entry) {
+ var filePath = path.join(dir, entry);
+ var stats = fs.statSync(filePath);
+
+ if(stats.isDirectory()) {
+ if(entry.substr(0, 1) == "@") {
+ // When we encounter a namespace folder, augment all packages belonging to the scope
+ var pkgFiles = fs.readdirSync(filePath);
+
+ pkgFiles.forEach(function(entry) {
+ if(stats.isDirectory()) {
+ var pkgFilePath = path.join(filePath, entry);
+ augmentPackageJSON(pkgFilePath, packages, dependencies);
+ }
+ });
+ } else {
+ augmentPackageJSON(filePath, packages, dependencies);
+ }
+ }
+ });
+ }
+ }
+
+ processDependencies("node_modules", lockObj.packages, lockObj.dependencies);
+
+ fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+ '';
+ };
+
+ # Script that links bins defined in package.json to the node_modules bin directory
+ # NPM does not do this for top-level packages itself anymore as of v7
+ linkBinsScript = writeTextFile {
+ name = "linkbins.js";
+ text = ''
+ var fs = require('fs');
+ var path = require('path');
+
+ var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+ var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep);
+
+ if(packageObj.bin !== undefined) {
+ fs.mkdirSync(path.join(nodeModules, ".bin"))
+
+ if(typeof packageObj.bin == "object") {
+ Object.keys(packageObj.bin).forEach(function(exe) {
+ if(fs.existsSync(packageObj.bin[exe])) {
+ console.log("linking bin '" + exe + "'");
+ fs.symlinkSync(
+ path.join("..", packageObj.name, packageObj.bin[exe]),
+ path.join(nodeModules, ".bin", exe)
+ );
+ }
+ else {
+ console.log("skipping non-existent bin '" + exe + "'");
+ }
+ })
+ }
+ else {
+ if(fs.existsSync(packageObj.bin)) {
+ console.log("linking bin '" + packageObj.bin + "'");
+ fs.symlinkSync(
+ path.join("..", packageObj.name, packageObj.bin),
+ path.join(nodeModules, ".bin", packageObj.name.split("/").pop())
+ );
+ }
+ else {
+ console.log("skipping non-existent bin '" + packageObj.bin + "'");
+ }
+ }
+ }
+ else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) {
+ fs.mkdirSync(path.join(nodeModules, ".bin"))
+
+ fs.readdirSync(packageObj.directories.bin).forEach(function(exe) {
+ if(fs.existsSync(path.join(packageObj.directories.bin, exe))) {
+ console.log("linking bin '" + exe + "'");
+ fs.symlinkSync(
+ path.join("..", packageObj.name, packageObj.directories.bin, exe),
+ path.join(nodeModules, ".bin", exe)
+ );
+ }
+ else {
+ console.log("skipping non-existent bin '" + exe + "'");
+ }
+ })
+ }
+ '';
+ };
+
+ prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ in
+ ''
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ source $pinpointDependenciesScriptPath
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ # Deploy the Node.js package by running npm install. Since the
+ # dependencies have been provided already by ourselves, it should not
+ # attempt to install them again, which is good, because we want to make
+ # it Nix's responsibility. If it needs to install any dependencies
+ # anyway (e.g. because the dependency parameters are
+ # incomplete/incorrect), it fails.
+ #
+ # The other responsibilities of NPM are kept -- version checks, build
+ # steps, postprocessing etc.
+
+ export HOME=$TMPDIR
+ cd "${packageName}"
+ runHook preRebuild
+
+ ${lib.optionalString bypassCache ''
+ ${lib.optionalString reconstructLock ''
+ if [ -f package-lock.json ]
+ then
+ echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+ echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+ rm package-lock.json
+ else
+ echo "No package-lock.json file found, reconstructing..."
+ fi
+
+ node ${reconstructPackageLock}
+ ''}
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
+
+ runHook postRebuild
+
+ if [ "''${dontNpmInstall-}" != "1" ]
+ then
+ # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+ rm -f npm-shrinkwrap.json
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install
+ fi
+
+ # Link executables defined in package.json
+ node ${linkBinsScript}
+ '';
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version ? null
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , meta ? {}
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
+ in
+ stdenv.mkDerivation ({
+ name = "${name}${if version == null then "" else "-${version}"}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit nodejs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+ compositionScript = composePackage args;
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ source ${installPackage}
+
+ # Create and enter a root node_modules/ folder
+ mkdir -p $out/lib/node_modules
+ cd $out/lib/node_modules
+
+ # Compose the package and all its dependencies
+ source $compositionScriptPath
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Create symlink to the deployed executable folder, if applicable
+ if [ -d "$out/lib/node_modules/.bin" ]
+ then
+ ln -s $out/lib/node_modules/.bin $out/bin
+
+ # Fixup all executables
+ ls $out/bin/* | while read i
+ do
+ file="$(readlink -f "$i")"
+ chmod u+rwx "$file"
+ if isScript "$file"
+ then
+ sed -i 's/\r$//' "$file" # convert crlf to lf
+ fi
+ done
+ fi
+
+ # Create symlinks to the deployed manual page folders, if applicable
+ if [ -d "$out/lib/node_modules/${packageName}/man" ]
+ then
+ mkdir -p $out/share
+ for dir in "$out/lib/node_modules/${packageName}/man/"*
+ do
+ mkdir -p $out/share/man/$(basename "$dir")
+ for page in "$dir"/*
+ do
+ ln -s $page $out/share/man/$(basename "$dir")
+ done
+ done
+ fi
+
+ # Run post install hook, if provided
+ runHook postInstall
+ '';
+
+ meta = {
+ # default to Node.js' platforms
+ platforms = nodejs.meta.platforms;
+ } // meta;
+ } // extraArgs);
+
+ # Builds a node environment (a node_modules folder and a set of binaries)
+ buildNodeDependencies =
+ { name
+ , packageName
+ , version ? null
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node-dependencies-${name}${if version == null then "" else "-${version}"}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ lib.optional (stdenv.isLinux) utillinux
+ ++ lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ inherit dontStrip; # Stripping may fail a build for some package deployments
+ inherit dontNpmInstall unpackPhase buildPhase;
+
+ includeScript = includeDependencies { inherit dependencies; };
+ pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+ passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+ installPhase = ''
+ source ${installPackage}
+
+ mkdir -p $out/${packageName}
+ cd $out/${packageName}
+
+ source $includeScriptPath
+
+ # Create fake package.json to make the npm commands work properly
+ cp ${src}/package.json .
+ chmod 644 package.json
+ ${lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ chmod 644 package-lock.json
+ fi
+ ''}
+
+ # Go to the parent folder to make sure that all packages are pinpointed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+ # Expose the executables that were installed
+ cd ..
+ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+
+ # Builds a development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version ? null
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , reconstructLock ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ nodeDependencies = buildNodeDependencies args;
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node-shell-${name}${if version == null then "" else "-${version}"}";
+
+ buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+ buildCommand = ''
+ mkdir -p $out/bin
+ cat > $out/bin/shell <=18.0.0"
+ },
+ "author": "Mintlify, Inc.",
+ "bugs": {
+ "url": "https://github.com/mintlify/docs/issues"
+ },
+ "license": "Elastic-2.0",
+ "keywords": [
+ "mintlify",
+ "mint",
+ "cli"
+ ],
+ "type": "module",
+ "publishConfig": {
+ "access": "public",
+ "registry": "https://registry.npmjs.org/"
+ },
+ "bin": "index.js",
+ "scripts": {
+ "clean:all": "rimraf node_modules"
+ },
+ "dependencies": {
+ "@mintlify/cli": "4.0.63"
+ },
+ "devDependencies": {
+ "rimraf": "^5.0.1"
+ },
+ "gitHead": "c634474da9fb789bb4b3d709a63b49d0ddc6b0cf"
+}
diff --git a/nix/nhost-cli.nix b/nix/nhost-cli.nix
new file mode 100644
index 0000000000..0fd5b9e3b4
--- /dev/null
+++ b/nix/nhost-cli.nix
@@ -0,0 +1,58 @@
+{ final, prev }:
+let
+ version = "v1.8.0";
+ dist = {
+ aarch64-darwin = rec {
+ url = "https://github.com/nhost/cli/releases/download/${version}/cli-${version}-darwin-arm64.tar.gz";
+ sha256 = "0hxzspili4h8d0pmhkpn3g89ms5x8zmdnq8mg3g5fp0fla0a4z0p";
+ };
+ x86_64-linux = rec {
+ url = "https://github.com/nhost/cli/releases/download/${version}/cli-${version}-linux-amd64.tar.gz";
+ sha256 = "1hz8x5pv6c1bqsfvv6wz64dwnrfdwvjnlk47linxa1kb81k1ifq1";
+ };
+ aarch64-linux = rec {
+ url = "https://github.com/nhost/cli/releases/download/${version}/cli-${version}-linux-arm64.tar.gz";
+ sha256 = "1vcv8ajd96f9d4n7x6g4myds9qfw2cfbigg8x2w4gvys9q9zhzf7";
+ };
+ };
+
+in
+final.stdenvNoCC.mkDerivation rec {
+ pname = "nhost-cli";
+ inherit version;
+
+ src = final.fetchurl {
+ inherit (dist.${final.stdenvNoCC.hostPlatform.system} or
+ (throw "Unsupported system: ${final.stdenvNoCC.hostPlatform.system}")) url sha256;
+ };
+
+
+ sourceRoot = ".";
+
+ nativeBuildInputs = [
+ final.makeWrapper
+ final.installShellFiles
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ mv cli $out/bin/nhost
+
+ installShellCompletion --cmd nhost \
+ --bash <($out/bin/nhost completion bash) \
+ --fish <($out/bin/nhost completion fish) \
+ --zsh <($out/bin/nhost completion zsh)
+
+ runHook postInstall
+ '';
+
+ meta = with final.lib; {
+ description = "Nhost CLI";
+ homepage = "https://nhost.io";
+ license = licenses.mit;
+ maintainers = [ "@nhost" ];
+ };
+
+}
diff --git a/nix/overlay.nix b/nix/overlay.nix
new file mode 100644
index 0000000000..48b3a6edde
--- /dev/null
+++ b/nix/overlay.nix
@@ -0,0 +1,10 @@
+(final: prev: rec {
+ nhost-cli = import ./nhost-cli.nix { inherit final prev; };
+
+ mintlify = (final.callPackage ./mintlify/default.nix { }).package.overrideAttrs (old: {
+ postInstall = ''
+ find $out
+ ln -sf $out/lib/node_modules/mintlify/node_modules/.bin/mintlify $out/bin/mintlify
+ '';
+ });
+})
diff --git a/packages/docgen/src/fragments/FunctionFragment.ts b/packages/docgen/src/fragments/FunctionFragment.ts
index 87103c1aa4..9d6270c8fa 100644
--- a/packages/docgen/src/fragments/FunctionFragment.ts
+++ b/packages/docgen/src/fragments/FunctionFragment.ts
@@ -6,7 +6,6 @@ import {
import { Signature } from '../types'
import CommentFragment from './CommentFragment'
import CommentTagFragment from './CommentTagFragment'
-import DeprecationNoteFragment from './DeprecationNoteFragment'
import ParameterFragment from './ParameterFragment'
import ParameterTableFragment from './ParameterTableFragment'
@@ -48,7 +47,6 @@ export const FunctionFragment = (
getNestedParametersFromParameter(parameter, originalDocument)
)
: []
- const deprecationTag = signature.comment?.tags?.find(({ tag }) => tag === 'deprecated')
const firstExample = examples.length
? {
@@ -58,7 +56,6 @@ export const FunctionFragment = (
: undefined
return `
-${numberOfOverloads === 1 && !isConstructor ? `# \`${signature.name}()\`` : ``}
${
numberOfOverloads > 1 && index !== undefined
@@ -70,19 +67,6 @@ ${
${signature.comment ? CommentFragment(signature.comment) : ''}
-${
- deprecationTag
- ? DeprecationNoteFragment(
- deprecationTag,
- isConstructor
- ? 'This constructor is deprecated.'
- : numberOfOverloads > 1
- ? 'This overload is deprecated.'
- : 'This function is deprecated.'
- )
- : ``
-}
-
${firstExample ? CommentTagFragment(firstExample) : ``}
${
diff --git a/packages/docgen/src/generators/generateClasses.ts b/packages/docgen/src/generators/generateClasses.ts
index 8c460945e9..12d5a800b0 100644
--- a/packages/docgen/src/generators/generateClasses.ts
+++ b/packages/docgen/src/generators/generateClasses.ts
@@ -15,7 +15,6 @@ import generateFunctions from './generateFunctions'
* @returns Results of the generation.
*/
export async function generateClasses(parsedContent: Array, outputPath: string) {
- const finalOutputPath = `${outputPath}/content`
const { ClassTemplate } = await import('../templates')
const { baseSlug, verbose } = snapshot(appState)
@@ -38,7 +37,7 @@ export async function generateClasses(parsedContent: Array, outp
return {
name: props.name,
- index: ClassTemplate(props, parsedContent as Array, slug),
+ index: ClassTemplate(props, parsedContent as Array),
subPages: props.children || [],
slug
}
@@ -46,11 +45,11 @@ export async function generateClasses(parsedContent: Array, outp
const results = await Promise.allSettled(
classesAndSubpages.map(async ({ name, index, subPages, slug }) => {
- const outputDirectory = `${finalOutputPath}/${kebabCase(name)}`
+ //const outputDirectory = `${outputPath}/${kebabCase(name)}`
// we are creating the folder for the class
try {
- await fs.mkdir(outputDirectory, { recursive: true })
+ await fs.mkdir(outputPath, { recursive: true })
} catch {
if (verbose) {
console.info(chalk.blue`⏭️ Skipping: Class folder already exists.\n`)
@@ -58,15 +57,14 @@ export async function generateClasses(parsedContent: Array, outp
}
// create index.mdx for the class
- await fs.writeFile(`${outputDirectory}/index.mdx`, index, 'utf-8')
+ await fs.writeFile(`${outputPath}/${kebabCase(name)}.mdx`, index, 'utf-8')
- await generateFunctions(subPages, outputDirectory, {
+ await generateFunctions(subPages, outputPath, {
originalDocument: parsedContent,
- keepOriginalOrder: true,
classSlug: slug
})
- return { name, fileOutput: outputDirectory }
+ return { name, fileOutput: outputPath }
})
)
diff --git a/packages/docgen/src/generators/generateFunctions.ts b/packages/docgen/src/generators/generateFunctions.ts
index 9a0766ab54..5ace9dfdcc 100644
--- a/packages/docgen/src/generators/generateFunctions.ts
+++ b/packages/docgen/src/generators/generateFunctions.ts
@@ -30,11 +30,11 @@ export type GenerateFunctionsOptions = GeneratorOptions & {
export async function generateFunctions(
parsedContent: Array,
outputPath: string,
- { originalDocument = null, keepOriginalOrder = false, classSlug }: GenerateFunctionsOptions = {}
+ { originalDocument = null, classSlug }: GenerateFunctionsOptions = {}
) {
- const finalOutputPath = `${outputPath}/content`
const { baseSlug, verbose } = snapshot(appState)
const { FunctionTemplate } = await import('../templates')
+
const functions: Array<{ name: string; content: string }> = (parsedContent || [])
.filter((document) => ['Function', 'Method'].includes(document.kindString))
.map((props: Signature) => ({
@@ -47,15 +47,13 @@ export async function generateFunctions(
}))
const results = await Promise.allSettled(
- functions.map(async ({ name, content }, index) => {
- const fileName = keepOriginalOrder
- ? `${(index + 1).toString().padStart(2, '0')}-${kebabCase(name)}.mdx`
- : `${kebabCase(name)}.mdx`
- const fileOutput = `${finalOutputPath}/${fileName}`
+ functions.map(async ({ name, content }) => {
+ const fileName = `${kebabCase(name)}.mdx`
+ const fileOutput = `${outputPath}/${fileName}`
// we are creating the folder for functions
try {
- await fs.mkdir(finalOutputPath)
+ await fs.mkdir(outputPath)
} catch {
if (verbose) {
console.info(chalk.blue`⏭️ Skipping: Functions folder already exists.\n`)
diff --git a/packages/docgen/src/helpers/codifyValue.ts b/packages/docgen/src/helpers/codifyValue.ts
index 4032d4e3ad..345e0799ae 100644
--- a/packages/docgen/src/helpers/codifyValue.ts
+++ b/packages/docgen/src/helpers/codifyValue.ts
@@ -18,6 +18,8 @@ function codifyValue(value: string | number, wrap: boolean = true) {
.replace(/&/gi, '&')
.replace(//gi, '>')
+ .replace(/{/gi, '{')
+ .replace(/}/gi, '}')
.replace(/\|/gi, '|')}`
}
diff --git a/packages/docgen/src/helpers/getLabelForType.test.ts b/packages/docgen/src/helpers/getLabelForType.test.ts
index b0468bae99..4e3cda2e57 100644
--- a/packages/docgen/src/helpers/getLabelForType.test.ts
+++ b/packages/docgen/src/helpers/getLabelForType.test.ts
@@ -167,7 +167,7 @@ test('should create an object signature for reflections', () => {
]
}
})
- ).toBe('{ firstAttribute: string, secondAttribute: number, thirdAttribute: null }
')
+ ).toBe('{ firstAttribute: string, secondAttribute: number, thirdAttribute: null }
')
})
test('should return "null" or "undefined" for falsy literal values', () => {
diff --git a/packages/docgen/src/index.ts b/packages/docgen/src/index.ts
index 9649e355ae..f8de1d9df8 100644
--- a/packages/docgen/src/index.ts
+++ b/packages/docgen/src/index.ts
@@ -145,25 +145,12 @@ async function parser() {
await fs.mkdir(output, { recursive: true })
}
- if (title) {
- await fs.writeFile(
- `${output}/_category_.json`,
- JSON.stringify(
- {
- label: title
- },
- null,
- 2
- ),
- 'utf-8'
- )
- }
-
if (verbose) {
console.info(chalk.blue`\n📝 Generating ${title || name} docs...`)
}
if (parsedContent?.every(({ kindString }: Signature) => kindString === 'Module')) {
+ console.log(chalk.blue`\n📝 Module`)
await Promise.all(
parsedContent.map(({ name, children, groups }: Signature) => {
if (groups) {
@@ -174,9 +161,11 @@ async function parser() {
})
)
} else {
+ console.log(chalk.blue`\n📝 not Module`)
if (groups) {
appState.contentReferences = getModuleContentMap(groups)
}
+ console.log(appState.contentReferences)
await generateModuleDocumentation(parsedContent, output)
}
diff --git a/packages/docgen/src/templates/ClassTemplate.test.ts b/packages/docgen/src/templates/ClassTemplate.test.ts
index 16e3a357ea..4cd230561b 100644
--- a/packages/docgen/src/templates/ClassTemplate.test.ts
+++ b/packages/docgen/src/templates/ClassTemplate.test.ts
@@ -28,20 +28,6 @@ test('should contain title and a placeholder description in front matter', () =>
}
})
).toContain(`title: TestClass
-sidebar_label: TestClass
-description: No description provided.`)
-})
-
-test('should contain alias as a sidebar label in front matter if available', () => {
- expect(
- ClassTemplate({
- ...classSignatureBase,
- comment: {
- tags: [{ tag: 'alias', text: 'TestClassAlias' }]
- }
- })
- ).toContain(`title: TestClass
-sidebar_label: TestClassAlias
description: No description provided.`)
})
@@ -54,7 +40,6 @@ test('should contain description in front matter if available', () => {
}
})
).toContain(`title: TestClass
-sidebar_label: TestClass
description: Test Description`)
})
diff --git a/packages/docgen/src/templates/ClassTemplate.ts b/packages/docgen/src/templates/ClassTemplate.ts
index 1d55ccc005..da2da1fab0 100644
--- a/packages/docgen/src/templates/ClassTemplate.ts
+++ b/packages/docgen/src/templates/ClassTemplate.ts
@@ -1,9 +1,7 @@
import { format } from 'prettier'
-import { snapshot } from 'valtio'
import { CommentFragment, DeprecationNoteFragment, FunctionFragment } from '../fragments'
-import { mergeUrls, removeLinksFromText } from '../helpers'
-import { appState } from '../state'
+import { removeLinksFromText } from '../helpers'
import { ClassSignature, Signature } from '../types'
/**
@@ -15,29 +13,16 @@ import { ClassSignature, Signature } from '../types'
* @returns Prettified class page template
*/
export const ClassTemplate = (
- { name, comment, children, sources }: ClassSignature,
- originalDocument?: Array,
- slug?: string
+ { name, comment, children }: ClassSignature,
+ originalDocument?: Array
) => {
- const { baseEditUrl } = snapshot(appState)
- const source = sources?.[0]
- const alias = comment?.tags?.find(({ tag }) => tag === 'alias')?.text.replace(/\n/g, '')
const deprecationTag = comment?.tags?.find(({ tag }) => tag === 'deprecated')
const header = `---
-# ⚠️ AUTO-GENERATED CONTENT. DO NOT EDIT THIS FILE DIRECTLY! ⚠️
title: ${name}
-sidebar_label: ${alias || name}
description: ${
removeLinksFromText(comment?.shortText?.replace(/\n/gi, ' ')) || 'No description provided.'
}
-${deprecationTag ? 'sidebar_class_name: deprecated' : ``}
-${slug ? `slug: ${slug}` : ``}
-${
- baseEditUrl && source
- ? `custom_edit_url: ${mergeUrls(baseEditUrl, `${source.fileName}#L${source.line}`)}`
- : ''
-}
---`.replace(/\n\n/gi, '\n')
return format(
@@ -69,7 +54,7 @@ ${
.join(`\n\n`)
: ''
}`,
- { parser: 'markdown', semi: false, singleQuote: true, trailingComma: 'none' }
+ { parser: 'mdx', semi: false, singleQuote: true, trailingComma: 'none' }
)
}
diff --git a/packages/docgen/src/templates/FunctionTemplate.ts b/packages/docgen/src/templates/FunctionTemplate.ts
index 07167931a5..7a49e82258 100644
--- a/packages/docgen/src/templates/FunctionTemplate.ts
+++ b/packages/docgen/src/templates/FunctionTemplate.ts
@@ -2,7 +2,6 @@ import { format } from 'prettier'
import { snapshot } from 'valtio'
import { FunctionFragment, FunctionFragmentOptions } from '../fragments'
-import { mergeUrls, removeLinksFromText } from '../helpers'
import { appState } from '../state'
import { Signature } from '../types'
@@ -16,38 +15,17 @@ import { Signature } from '../types'
* @returns Prettified function page template
*/
export const FunctionTemplate = (
- { id, name, comment, signatures, sources }: Signature,
+ { id, name, comment, signatures }: Signature,
originalDocument?: Array,
- slug?: string,
functionFragmentOptions?: FunctionFragmentOptions
) => {
const alias = comment?.tags?.find(({ tag }) => tag === 'alias')?.text.replace(/\n/g, '')
- const allChildrenDeprecated = signatures?.every((signature) =>
- signature.comment?.tags?.some(({ tag }) => tag === 'deprecated')
- )
- const { baseEditUrl, contentReferences } = snapshot(appState)
+ const { contentReferences } = snapshot(appState)
const isComponent = contentReferences.get(id) === 'Component'
- const source = sources?.[0]
const header = `---
-# ⚠️ AUTO-GENERATED CONTENT. DO NOT EDIT THIS FILE DIRECTLY! ⚠️
title: ${isComponent ? `<${name} />` : `${name}()`}
-sidebar_label: ${isComponent ? `<${alias || name} />` : `${alias || name}()`}
-${slug ? `slug: ${slug}` : ``}
-${allChildrenDeprecated ? 'sidebar_class_name: deprecated' : ''}
-${
- signatures && signatures.length > 0
- ? `description: ${
- removeLinksFromText(signatures[0].comment?.shortText?.replace(/\n/gi, ' ')) ||
- 'No description provided.'
- }`
- : 'description: No description provided.'
-}
-${
- baseEditUrl && source
- ? `custom_edit_url: ${mergeUrls(baseEditUrl, `${source.fileName}#L${source.line}`)}`
- : ''
-}
+sidebarTitle: ${isComponent ? `<${alias || name} />` : `${alias || name}()`}
---`.replace(/\n\n/gi, '\n')
return format(
diff --git a/packages/docgen/src/templates/TypeTemplate.ts b/packages/docgen/src/templates/TypeTemplate.ts
index 88fd756c00..b7b5e8bdda 100644
--- a/packages/docgen/src/templates/TypeTemplate.ts
+++ b/packages/docgen/src/templates/TypeTemplate.ts
@@ -1,5 +1,4 @@
import { format } from 'prettier'
-import { snapshot } from 'valtio/vanilla'
import {
CommentFragment,
@@ -10,7 +9,6 @@ import {
UnionOrIntersectionTypeFragment
} from '../fragments'
import { findNestedParametersByReferenceId, mergeUrls } from '../helpers'
-import { appState } from '../state'
import { Parameter, Signature } from '../types'
/**
@@ -21,9 +19,7 @@ import { Parameter, Signature } from '../types'
* @returns Prettified type alias or interface page template
*/
export const TypeTemplate = (parameter: Parameter, originalDocument?: Array) => {
- const { sidebarConfig, baseEditUrl } = snapshot(appState)
- const { name, comment, sources } = parameter
- const source = sources?.[0]
+ const { name, comment } = parameter
const alias = comment?.tags?.find(({ tag }) => tag === 'alias')?.text.replace(/\n/g, '')
const deprecationTag = comment?.tags?.find(({ tag }) => tag === 'deprecated')
@@ -37,21 +33,13 @@ export const TypeTemplate = (parameter: Parameter, originalDocument?: Array=10'}
@@ -2087,10 +1919,14 @@ packages:
resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}
dev: true
+ /@antfu/utils@0.7.7:
+ resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==}
+ dev: true
+
/@apollo/client@3.6.9(graphql@16.7.1)(react@18.2.0):
resolution: {integrity: sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
subscriptions-transport-ws: ^0.9.0 || ^0.11.0
@@ -2121,7 +1957,7 @@ packages:
/@apollo/client@3.7.1(graphql@16.7.1):
resolution: {integrity: sha512-xu5M/l7p9gT9Fx7nF3AQivp0XukjB7TM7tOd5wifIpI8RskYveL4I+rpTijzWrnqCPZabkbzJKH7WEAKdctt9w==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -2155,7 +1991,7 @@ packages:
/@apollo/client@3.7.10(graphql-ws@5.11.2)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-/k1MfrqPKYiPNdHcOzdxg9cEx96vhAGxAcSorzfBvV29XtFQcYW2cPNQOTjK/fpSMtqVo8UNmu5vwQAWD1gfCg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -2191,7 +2027,7 @@ packages:
/@apollo/client@3.7.14(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-BRvdkwq5PAXBkjXjboO12uksDm3nrZEqDi4xF97Fk3Mnaa0zDOEfJa7hoKTY9b9KA1EkeWv9BL3i7hSd4SfGBg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -2227,7 +2063,7 @@ packages:
/@apollo/client@3.7.3(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-nzZ6d6a4flLpm3pZOGpuAUxLlp9heob7QcCkyIqZlCLvciUibgufRfYTwfkWCc4NaGHGSZyodzvfr79H6oUwGQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -2263,7 +2099,7 @@ packages:
/@apollo/client@3.8.6(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-FnHg3vhQP8tQzgBs6oTJCFFIbovelDGYujj6MK7CJneiHf62TJstCIO0Ot4A1h7XrgFEtgl8a/OgajQWqrTuYw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-ws: ^5.5.5
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -2300,7 +2136,7 @@ packages:
resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: '*'
dependencies:
'@babel/core': 7.21.4
'@babel/generator': 7.21.4
@@ -2329,7 +2165,7 @@ packages:
resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==}
engines: {node: '>=14'}
dependencies:
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
transitivePeerDependencies:
- encoding
dev: true
@@ -2376,6 +2212,7 @@ packages:
source-map: 0.5.7
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/core@7.19.6:
resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==}
@@ -2465,6 +2302,7 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/core@7.21.8:
resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==}
@@ -2550,6 +2388,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-builder-binary-assignment-operator-visitor@7.18.9:
resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==}
@@ -2557,6 +2396,7 @@ packages:
dependencies:
'@babel/helper-explode-assignable-expression': 7.18.6
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-compilation-targets@7.19.3(@babel/core@7.19.6):
resolution: {integrity: sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==}
@@ -2622,6 +2462,7 @@ packages:
browserslist: 4.21.10
lru-cache: 5.1.1
semver: 6.3.0
+ dev: true
/@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.8):
resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==}
@@ -2670,6 +2511,7 @@ packages:
'@babel/helper-split-export-declaration': 7.18.6
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.20.2):
resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==}
@@ -2691,6 +2533,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-annotate-as-pure': 7.18.6
regexpu-core: 5.2.1
+ dev: true
/@babel/helper-define-polyfill-provider@0.1.5(@babel/core@7.21.4):
resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==}
@@ -2740,6 +2583,7 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helper-environment-visitor@7.18.9:
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
@@ -2754,6 +2598,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-function-name@7.21.0:
resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
@@ -2773,6 +2618,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-module-imports@7.18.6:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
@@ -2830,6 +2676,7 @@ packages:
'@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helper-module-transforms@7.21.5:
resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==}
@@ -2851,13 +2698,16 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-plugin-utils@7.10.4:
resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==}
+ dev: true
/@babel/helper-plugin-utils@7.19.0:
resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
engines: {node: '>=6.9.0'}
+ dev: true
/@babel/helper-plugin-utils@7.20.2:
resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
@@ -2891,6 +2741,7 @@ packages:
'@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helper-replace-supers@7.19.1:
resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==}
@@ -2903,6 +2754,7 @@ packages:
'@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helper-simple-access@7.20.2:
resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
@@ -2921,6 +2773,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.21.5
+ dev: true
/@babel/helper-split-export-declaration@7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
@@ -2955,6 +2808,7 @@ packages:
'@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helpers@7.19.4:
resolution: {integrity: sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==}
@@ -2985,6 +2839,7 @@ packages:
'@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/helpers@7.21.5:
resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==}
@@ -3050,6 +2905,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==}
@@ -3073,6 +2929,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.18.9
'@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-async-generator-functions@7.19.1(@babel/core@7.20.2):
resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==}
@@ -3102,6 +2959,7 @@ packages:
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
@@ -3127,6 +2985,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==}
@@ -3154,6 +3013,7 @@ packages:
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-proposal-decorators@7.19.3(@babel/core@7.21.4):
resolution: {integrity: sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg==}
@@ -3191,6 +3051,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-export-default-from@7.18.10(@babel/core@7.21.4):
resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==}
@@ -3223,6 +3084,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
@@ -3244,6 +3106,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==}
@@ -3265,6 +3128,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
@@ -3286,6 +3150,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
@@ -3307,6 +3172,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9):
resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==}
@@ -3317,6 +3183,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9)
'@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.12.9)
+ dev: true
/@babel/plugin-proposal-object-rest-spread@7.19.4(@babel/core@7.20.2):
resolution: {integrity: sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==}
@@ -3344,6 +3211,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.4)
'@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
@@ -3365,6 +3233,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==}
@@ -3388,6 +3257,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.18.9
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
@@ -3413,6 +3283,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==}
@@ -3442,6 +3313,7 @@ packages:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
@@ -3463,6 +3335,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.21.4)
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.20.2):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
@@ -3480,6 +3353,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.20.2):
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
@@ -3497,6 +3371,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.20.2):
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
@@ -3516,6 +3391,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-decorators@7.19.0(@babel/core@7.21.4):
resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==}
@@ -3543,6 +3419,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-export-default-from@7.18.6(@babel/core@7.21.4):
resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==}
@@ -3570,6 +3447,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-flow@7.18.6(@babel/core@7.19.6):
resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
@@ -3619,6 +3497,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.8):
resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
@@ -3646,6 +3525,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9):
resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==}
@@ -3654,6 +3534,7 @@ packages:
dependencies:
'@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.19.6):
resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
@@ -3682,6 +3563,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.20.2):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -3699,6 +3581,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.20.2):
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
@@ -3716,6 +3599,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.20.2):
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
@@ -3733,6 +3617,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
@@ -3741,6 +3626,7 @@ packages:
dependencies:
'@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.20.2):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
@@ -3758,6 +3644,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.20.2):
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
@@ -3775,6 +3662,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.20.2):
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
@@ -3792,6 +3680,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.20.2):
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
@@ -3811,6 +3700,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.20.2):
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
@@ -3830,6 +3720,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.21.4):
resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
@@ -3839,6 +3730,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
@@ -3858,6 +3750,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
@@ -3885,6 +3778,7 @@ packages:
'@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
@@ -3904,6 +3798,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-block-scoping@7.19.4(@babel/core@7.20.2):
resolution: {integrity: sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==}
@@ -3923,6 +3818,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-classes@7.19.0(@babel/core@7.20.2):
resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==}
@@ -3962,6 +3858,7 @@ packages:
globals: 11.12.0
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==}
@@ -3981,6 +3878,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-destructuring@7.19.4(@babel/core@7.20.2):
resolution: {integrity: sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==}
@@ -4000,6 +3898,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
@@ -4021,6 +3920,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.21.4)
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==}
@@ -4040,6 +3940,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
@@ -4061,6 +3962,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-flow-strip-types@7.19.0(@babel/core@7.20.2):
resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==}
@@ -4102,6 +4004,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-function-name@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==}
@@ -4125,6 +4028,7 @@ packages:
'@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.4)
'@babel/helper-function-name': 7.21.0
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-literals@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==}
@@ -4144,6 +4048,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
@@ -4163,6 +4068,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-modules-amd@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==}
@@ -4190,6 +4096,7 @@ packages:
babel-plugin-dynamic-import-node: 2.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
@@ -4219,6 +4126,7 @@ packages:
babel-plugin-dynamic-import-node: 2.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-modules-systemjs@7.19.0(@babel/core@7.20.2):
resolution: {integrity: sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==}
@@ -4250,6 +4158,7 @@ packages:
babel-plugin-dynamic-import-node: 2.3.3
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
@@ -4275,6 +4184,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-named-capturing-groups-regex@7.19.1(@babel/core@7.20.2):
resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==}
@@ -4296,6 +4206,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.21.4)
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-new-target@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
@@ -4315,6 +4226,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-object-super@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
@@ -4340,6 +4252,7 @@ packages:
'@babel/helper-replace-supers': 7.19.1
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-parameters@7.18.8(@babel/core@7.12.9):
resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
@@ -4349,6 +4262,7 @@ packages:
dependencies:
'@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-parameters@7.18.8(@babel/core@7.20.2):
resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
@@ -4368,6 +4282,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
@@ -4387,16 +4302,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
-
- /@babel/plugin-transform-react-constant-elements@7.17.6(@babel/core@7.21.4):
- resolution: {integrity: sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- '@babel/helper-plugin-utils': 7.20.2
- dev: false
+ dev: true
/@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==}
@@ -4416,6 +4322,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==}
@@ -4435,6 +4342,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.21.4)
+ dev: true
/@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.20.5):
resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
@@ -4516,6 +4424,7 @@ packages:
'@babel/helper-plugin-utils': 7.19.0
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.4)
'@babel/types': 7.19.4
+ dev: true
/@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==}
@@ -4537,6 +4446,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==}
@@ -4558,6 +4468,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
regenerator-transform: 0.15.0
+ dev: true
/@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
@@ -4577,6 +4488,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-runtime@7.19.1(@babel/core@7.21.4):
resolution: {integrity: sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==}
@@ -4593,6 +4505,7 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
@@ -4612,6 +4525,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-spread@7.19.0(@babel/core@7.20.2):
resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==}
@@ -4633,6 +4547,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-skip-transparent-expression-wrappers': 7.18.9
+ dev: true
/@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
@@ -4652,6 +4567,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==}
@@ -4671,6 +4587,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.20.2):
resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==}
@@ -4690,6 +4607,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-typescript@7.19.3(@babel/core@7.21.4):
resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
@@ -4703,6 +4621,7 @@ packages:
'@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.20.2):
resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==}
@@ -4722,6 +4641,7 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
@@ -4743,6 +4663,7 @@ packages:
'@babel/core': 7.21.4
'@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.21.4)
'@babel/helper-plugin-utils': 7.20.2
+ dev: true
/@babel/preset-env@7.19.4(@babel/core@7.20.2):
resolution: {integrity: sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==}
@@ -4914,6 +4835,7 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/preset-flow@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==}
@@ -4951,6 +4873,7 @@ packages:
'@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.4)
'@babel/types': 7.21.5
esutils: 2.0.3
+ dev: true
/@babel/preset-react@7.18.6(@babel/core@7.20.2):
resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==}
@@ -4980,6 +4903,7 @@ packages:
'@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.21.4)
'@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.21.4)
'@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.21.4)
+ dev: true
/@babel/preset-typescript@7.18.6(@babel/core@7.21.4):
resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==}
@@ -4993,6 +4917,7 @@ packages:
'@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/@babel/register@7.18.9(@babel/core@7.21.4):
resolution: {integrity: sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==}
@@ -5161,10 +5086,6 @@ packages:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
- /@braintree/sanitize-url@6.0.2:
- resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==}
- dev: false
-
/@changesets/apply-release-plan@6.1.2:
resolution: {integrity: sha512-H8TV9E/WtJsDfoDVbrDGPXmkZFSv7W2KLqp4xX4MKZXshb0hsQZUNowUa8pnus9qb/5OZrFFRVsUsDCVHNW/AQ==}
dependencies:
@@ -5445,6 +5366,7 @@ packages:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
requiresBuild: true
+ dev: true
optional: true
/@cspotcode/source-map-support@0.8.1:
@@ -5573,818 +5495,6 @@ packages:
engines: {node: '>=10.0.0'}
dev: true
- /@docsearch/css@3.2.2:
- resolution: {integrity: sha512-VB0Evx4ikS1ZlW1YVUw+vI9b3H/UXMCo4W/ZWy+n56Sho4KOqyCHcINVays91TJt7HTV/CKO3FCbm2VJg5Wipw==}
- dev: false
-
- /@docsearch/react@3.2.2(@algolia/client-search@4.14.2)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-1Hn2SNQUFVPrzqvaj+vxXZfsfn3rnW8CoyGAJ1LqXMY9py8GbxK8VfmJ5Z6z4LwG9849tGru/N6dp0cQO6r9Ag==}
- peerDependencies:
- '@types/react': '>= 16.8.0 < 19.0.0'
- react: '>= 16.8.0 < 19.0.0'
- react-dom: '>= 16.8.0 < 19.0.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- dependencies:
- '@algolia/autocomplete-core': 1.7.1
- '@algolia/autocomplete-preset-algolia': 1.7.1(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
- '@docsearch/css': 3.2.2
- algoliasearch: 4.14.2
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- transitivePeerDependencies:
- - '@algolia/client-search'
- dev: false
-
- /@docusaurus/core@2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==}
- engines: {node: '>=16.14'}
- hasBin: true
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@babel/core': 7.21.4
- '@babel/generator': 7.21.4
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.21.4)
- '@babel/plugin-transform-runtime': 7.19.1(@babel/core@7.21.4)
- '@babel/preset-env': 7.19.4(@babel/core@7.21.4)
- '@babel/preset-react': 7.18.6(@babel/core@7.21.4)
- '@babel/preset-typescript': 7.18.6(@babel/core@7.21.4)
- '@babel/runtime': 7.21.0
- '@babel/runtime-corejs3': 7.19.4
- '@babel/traverse': 7.21.4
- '@docusaurus/cssnano-preset': 2.4.1
- '@docusaurus/logger': 2.4.1
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- '@slorber/static-site-generator-webpack-plugin': 4.0.7
- '@svgr/webpack': 6.2.1
- autoprefixer: 10.4.15(postcss@8.4.29)
- babel-loader: 8.3.0(@babel/core@7.21.4)(webpack@5.75.0)
- babel-plugin-dynamic-import-node: 2.3.3
- boxen: 6.2.1
- chalk: 4.1.2
- chokidar: 3.5.3
- clean-css: 5.3.0
- cli-table3: 0.6.2
- combine-promises: 1.1.0
- commander: 5.1.0
- copy-webpack-plugin: 11.0.0(webpack@5.75.0)
- core-js: 3.25.5
- css-loader: 6.7.1(webpack@5.75.0)
- css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.0)(webpack@5.75.0)
- cssnano: 5.1.13(postcss@8.4.29)
- del: 6.1.1
- detect-port: 1.3.0
- escape-html: 1.0.3
- eta: 2.0.0
- file-loader: 6.2.0(webpack@5.75.0)
- fs-extra: 10.1.0
- html-minifier-terser: 6.1.0
- html-tags: 3.2.0
- html-webpack-plugin: 5.5.0(webpack@5.75.0)
- import-fresh: 3.3.0
- leven: 3.1.0
- lodash: 4.17.21
- mini-css-extract-plugin: 2.6.1(webpack@5.75.0)
- postcss: 8.4.29
- postcss-loader: 7.0.1(postcss@8.4.29)(webpack@5.75.0)
- prompts: 2.4.2
- react: 18.2.0
- react-dev-utils: 12.0.1(eslint@8.26.0)(typescript@4.8.4)(webpack@5.75.0)
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
- react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.75.0)
- react-router: 5.3.4(react@18.2.0)
- react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0)
- react-router-dom: 5.3.4(react@18.2.0)
- rtl-detect: 1.0.4
- semver: 7.5.0
- serve-handler: 6.1.3
- shelljs: 0.8.5
- terser-webpack-plugin: 5.3.6(webpack@5.75.0)
- tslib: 2.5.0
- update-notifier: 5.1.0
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.75.0)
- wait-on: 6.0.1
- webpack: 5.75.0
- webpack-bundle-analyzer: 4.5.0
- webpack-dev-server: 4.11.1(webpack@5.75.0)
- webpack-merge: 5.8.0
- webpackbar: 5.0.2(webpack@5.75.0)
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/cssnano-preset@2.4.1:
- resolution: {integrity: sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==}
- engines: {node: '>=16.14'}
- dependencies:
- cssnano-preset-advanced: 5.3.8(postcss@8.4.29)
- postcss: 8.4.29
- postcss-sort-media-queries: 4.2.1(postcss@8.4.29)
- tslib: 2.5.2
- dev: false
-
- /@docusaurus/logger@2.4.1:
- resolution: {integrity: sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==}
- engines: {node: '>=16.14'}
- dependencies:
- chalk: 4.1.2
- tslib: 2.5.2
- dev: false
-
- /@docusaurus/mdx-loader@2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@babel/parser': 7.21.8
- '@babel/traverse': 7.21.4
- '@docusaurus/logger': 2.4.1
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@mdx-js/mdx': 1.6.22
- escape-html: 1.0.3
- file-loader: 6.2.0(webpack@5.83.1)
- fs-extra: 10.1.0
- image-size: 1.0.1
- mdast-util-to-string: 2.0.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- remark-emoji: 2.2.0
- stringify-object: 3.3.0
- tslib: 2.5.2
- unified: 9.2.2
- unist-util-visit: 2.0.3
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.83.1)
- webpack: 5.83.1
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
- - webpack-cli
- dev: false
-
- /@docusaurus/module-type-aliases@2.4.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==}
- peerDependencies:
- react: '*'
- react-dom: '*'
- dependencies:
- '@docusaurus/react-loadable': 5.5.2(react@18.2.0)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@types/history': 4.7.11
- '@types/react': 18.2.14
- '@types/react-router-config': 5.0.6
- '@types/react-router-dom': 5.3.3
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
- - webpack-cli
-
- /@docusaurus/plugin-content-blog@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/logger': 2.4.1
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- cheerio: 1.0.0-rc.12
- feed: 4.2.2
- fs-extra: 10.1.0
- lodash: 4.17.21
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- reading-time: 1.5.0
- tslib: 2.5.2
- unist-util-visit: 2.0.3
- utility-types: 3.10.0
- webpack: 5.75.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-content-docs@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/logger': 2.4.1
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- '@types/react-router-config': 5.0.6
- combine-promises: 1.1.0
- fs-extra: 10.1.0
- import-fresh: 3.3.0
- js-yaml: 4.1.0
- lodash: 4.17.21
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- utility-types: 3.10.0
- webpack: 5.75.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-content-pages@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- fs-extra: 10.1.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- webpack: 5.75.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-debug@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- fs-extra: 10.1.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-json-view: 1.21.3(react-dom@18.2.0)(react@18.2.0)
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - '@types/react'
- - bufferutil
- - csso
- - debug
- - encoding
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-google-analytics@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-google-gtag@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-google-tag-manager@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/plugin-sitemap@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/logger': 2.4.1
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- fs-extra: 10.1.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- sitemap: 7.1.1
- tslib: 2.5.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/preset-classic@2.4.1(@algolia/client-search@4.14.2)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-blog': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-docs': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-pages': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-debug': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-google-analytics': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-google-gtag': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-google-tag-manager': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-sitemap': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-classic': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-search-algolia': 2.4.1(@algolia/client-search@4.14.2)(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - '@types/react'
- - bufferutil
- - csso
- - debug
- - encoding
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/react-loadable@5.5.2(react@18.2.0):
- resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==}
- peerDependencies:
- react: '*'
- dependencies:
- '@types/react': 18.2.21
- prop-types: 15.8.1
- react: 18.2.0
-
- /@docusaurus/theme-classic@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/plugin-content-blog': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-docs': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-pages': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-translations': 2.4.1
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- '@mdx-js/react': 1.6.22(react@18.2.0)
- clsx: 1.2.1
- copy-text-to-clipboard: 3.0.1
- infima: 0.2.0-alpha.43
- lodash: 4.17.21
- nprogress: 0.2.0
- postcss: 8.4.29
- prism-react-renderer: 1.3.5(react@18.2.0)
- prismjs: 1.29.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-router-dom: 5.3.4(react@18.2.0)
- rtlcss: 3.5.0
- tslib: 2.5.2
- utility-types: 3.10.0
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-common@2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/plugin-content-blog': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-docs': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/plugin-content-pages': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
- '@types/history': 4.7.11
- '@types/react': 18.2.21
- '@types/react-router-config': 5.0.6
- clsx: 1.2.1
- parse-numeric-range: 1.3.0
- prism-react-renderer: 1.3.5(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- use-sync-external-store: 1.2.0(react@18.2.0)
- utility-types: 3.10.0
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-mermaid@2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-cM0ImKIqZfjmlaC+uAjep39kNBvb1bjz429QBHGs32maob4+UnRzVPPpCUCltyPVb4xjG5h1Tyq4pHzhtIikqA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- '@mdx-js/react': 1.6.22(react@18.2.0)
- mermaid: 9.3.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-search-algolia@2.4.1(@algolia/client-search@4.14.2)(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4):
- resolution: {integrity: sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==}
- engines: {node: '>=16.14'}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@docsearch/react': 3.2.2(@algolia/client-search@4.14.2)(react-dom@18.2.0)(react@18.2.0)
- '@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/logger': 2.4.1
- '@docusaurus/plugin-content-docs': 2.4.1(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.26.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.8.4)
- '@docusaurus/theme-translations': 2.4.1
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- '@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
- algoliasearch: 4.14.2
- algoliasearch-helper: 3.11.1(algoliasearch@4.14.2)
- clsx: 1.2.1
- eta: 2.0.0
- fs-extra: 10.1.0
- lodash: 4.17.21
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tslib: 2.5.2
- utility-types: 3.10.0
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@docusaurus/types'
- - '@parcel/css'
- - '@swc/core'
- - '@swc/css'
- - '@types/react'
- - bufferutil
- - csso
- - debug
- - esbuild
- - eslint
- - lightningcss
- - supports-color
- - typescript
- - uglify-js
- - utf-8-validate
- - vue-template-compiler
- - webpack-cli
- dev: false
-
- /@docusaurus/theme-translations@2.4.1:
- resolution: {integrity: sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==}
- engines: {node: '>=16.14'}
- dependencies:
- fs-extra: 10.1.0
- tslib: 2.5.2
- dev: false
-
- /@docusaurus/types@2.4.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- react-dom: ^16.8.4 || ^17.0.0
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.21
- commander: 5.1.0
- joi: 17.7.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
- utility-types: 3.10.0
- webpack: 5.83.1
- webpack-merge: 5.8.0
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
- - webpack-cli
-
- /@docusaurus/utils-common@2.4.1(@docusaurus/types@2.4.1):
- resolution: {integrity: sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==}
- engines: {node: '>=16.14'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
- dependencies:
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- tslib: 2.5.2
- dev: false
-
- /@docusaurus/utils-validation@2.4.1(@docusaurus/types@2.4.1):
- resolution: {integrity: sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==}
- engines: {node: '>=16.14'}
- dependencies:
- '@docusaurus/logger': 2.4.1
- '@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
- joi: 17.7.0
- js-yaml: 4.1.0
- tslib: 2.5.2
- transitivePeerDependencies:
- - '@docusaurus/types'
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
- - webpack-cli
- dev: false
-
- /@docusaurus/utils@2.4.1(@docusaurus/types@2.4.1):
- resolution: {integrity: sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==}
- engines: {node: '>=16.14'}
- peerDependencies:
- '@docusaurus/types': '*'
- peerDependenciesMeta:
- '@docusaurus/types':
- optional: true
- dependencies:
- '@docusaurus/logger': 2.4.1
- '@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
- '@svgr/webpack': 6.2.1
- escape-string-regexp: 4.0.0
- file-loader: 6.2.0(webpack@5.83.1)
- fs-extra: 10.1.0
- github-slugger: 1.4.0
- globby: 11.1.0
- gray-matter: 4.0.3
- js-yaml: 4.1.0
- lodash: 4.17.21
- micromatch: 4.0.5
- resolve-pathname: 3.0.0
- shelljs: 0.8.5
- tslib: 2.5.2
- url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.83.1)
- webpack: 5.83.1
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - supports-color
- - uglify-js
- - webpack-cli
- dev: false
-
/@emotion/babel-plugin@11.10.5(@babel/core@7.20.2):
resolution: {integrity: sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==}
peerDependencies:
@@ -6683,7 +5793,7 @@ packages:
/@envelop/core@2.6.0(graphql@16.7.1):
resolution: {integrity: sha512-yTptKinJN//i6m1kXUbnLBl/FobzddI4ehURAMS08eRUOQwAuXqJU9r8VdTav8nIZLb4t6cuDWFb3n331LiwLw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@envelop/types': 2.4.0(graphql@16.7.1)
graphql: 16.7.1
@@ -6701,7 +5811,7 @@ packages:
resolution: {integrity: sha512-63NfXDcW/vGn4U6NFxaZ0JbYWAcJb9A6jhTvghsSz1ZS+Dny/ci8bVSgVmM1q+N56hPyGsVPuyI+rIc71mPU5g==}
peerDependencies:
'@envelop/core': ^2.6.0
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@envelop/core': 2.6.0(graphql@16.7.1)
graphql: 16.7.1
@@ -6713,7 +5823,7 @@ packages:
resolution: {integrity: sha512-+kp6nzCVLYI2WQExQcE3FSy6n9ZGB5GYi+ntyjYdxaXU41U1f8RVwiLdyh0Ewn5D/s/zaLin09xkFKITVSAKDw==}
peerDependencies:
'@envelop/core': ^3.0.4
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@envelop/core': 3.0.4
graphql: 16.7.1
@@ -6724,7 +5834,7 @@ packages:
/@envelop/types@2.4.0(graphql@16.7.1):
resolution: {integrity: sha512-pjxS98cDQBS84X29VcwzH3aJ/KiLCGwyMxuj7/5FkdiaCXAD1JEvKEj9LARWlFYj1bY43uII4+UptFebrhiIaw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -6740,7 +5850,7 @@ packages:
resolution: {integrity: sha512-PzL+GfWJRT+JjsJqZAIxHKEkvkM3hxkeytS5O0QLXT8kURNBV28r+Kdnn2RCF5+6ILhyGpiDb60vaquBi7g4lw==}
peerDependencies:
'@envelop/core': ^2.6.0
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@envelop/core': 2.6.0(graphql@16.7.1)
graphql: 16.7.1
@@ -6752,7 +5862,7 @@ packages:
resolution: {integrity: sha512-69sq5H7hvxE+7VV60i0bgnOiV1PX9GEJHKrBrVvyEZAXqYojKO3DP9jnLGryiPgVaBjN5yw12ge0l0s2gXbolQ==}
peerDependencies:
'@envelop/core': ^3.0.4
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@envelop/core': 3.0.4
graphql: 16.7.1
@@ -7663,7 +6773,7 @@ packages:
engines: {node: ^12.20.0 || >=14.13.0}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: '*'
peerDependenciesMeta:
graphql:
optional: true
@@ -7678,7 +6788,7 @@ packages:
engines: {node: ^12.20.0 || >=14.13.0}
peerDependencies:
gqty: ^2.0.4
- graphql: 16.7.1
+ graphql: '*'
react: '>=16.8'
dependencies:
gqty: 2.3.0(graphql@16.7.1)
@@ -7693,7 +6803,7 @@ packages:
/@graphiql/react@0.18.0(@codemirror/language@6.0.0)(@types/node@16.18.11)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql-ws@5.11.2)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-OIzUjnxBM4k9DY0DXBMRfU+fTak2tbnmY2o6J5t/vKvqGaa4opRUhgIZEvrerjnktjCxj2dJY706gCwnUZQsNg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
react: ^16.8.0 || ^17 || ^18
react-dom: ^16.8.0 || ^17 || ^18
dependencies:
@@ -7726,7 +6836,7 @@ packages:
/@graphiql/toolkit@0.8.2(@types/node@16.18.11)(graphql-ws@5.11.2)(graphql@16.7.1):
resolution: {integrity: sha512-FGtXBYTzcPuwfpaC+0BGeriLD6kwTdcF5xugGvjutk5J93Dgy2vw+SkBdbi1QGzz/jooETi1kEtFeDuWTzIG7Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
graphql-ws: '>= 4.5.0'
peerDependenciesMeta:
graphql-ws:
@@ -7743,7 +6853,7 @@ packages:
/@graphiql/toolkit@0.8.4(@types/node@16.18.11)(graphql-ws@5.11.2)(graphql@16.7.1):
resolution: {integrity: sha512-cFUGqh3Dau+SD3Vq9EFlZrhzYfaHKyOJveFtaCR+U5Cn/S68p7oy+vQBIdwtO6J2J58FncnwBbVRfr+IvVfZqQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
graphql-ws: '>= 4.5.0'
peerDependenciesMeta:
graphql-ws:
@@ -7760,7 +6870,7 @@ packages:
/@graphql-codegen/add@3.2.1(graphql@16.7.1):
resolution: {integrity: sha512-w82H/evh8SSGoD3K6K/Oh3kqSdbuU+TgHqMYmmHFxtH692v2xhN/cu1s/TotBQ7r4mO7OQutze7dde2tZEXGEQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
graphql: 16.7.1
@@ -7771,7 +6881,7 @@ packages:
resolution: {integrity: sha512-Z9EiX8yJ5xtNdw/1ApV8uKx6UjCNl/D28zTHU8Fa7BcCdi3ilGOKSiWCNZaH1mpwKr5EfX18kme2bIqKmohv/w==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/generator': 7.20.5
'@babel/template': 7.18.10
@@ -7827,7 +6937,7 @@ packages:
resolution: {integrity: sha512-Z9EiX8yJ5xtNdw/1ApV8uKx6UjCNl/D28zTHU8Fa7BcCdi3ilGOKSiWCNZaH1mpwKr5EfX18kme2bIqKmohv/w==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/generator': 7.20.5
'@babel/template': 7.18.10
@@ -7883,7 +6993,7 @@ packages:
resolution: {integrity: sha512-Z9EiX8yJ5xtNdw/1ApV8uKx6UjCNl/D28zTHU8Fa7BcCdi3ilGOKSiWCNZaH1mpwKr5EfX18kme2bIqKmohv/w==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/generator': 7.20.5
'@babel/template': 7.18.10
@@ -7939,7 +7049,7 @@ packages:
resolution: {integrity: sha512-XYPIp+q7fB0xAGSAoRykiTe4oY80VU+z+dw5nuv4mLY0+pv7+pa2C6Nwhdw7a65lXOhFviBApWCCZeqd54SMnA==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/generator': 7.21.4
'@babel/template': 7.20.7
@@ -7995,7 +7105,7 @@ packages:
resolution: {integrity: sha512-o+oTOIMlBF4PE+JDo3m37W/xQNYUIASFOc5K9DHkWh4zW/qVHVkGyyu2fEgI8PbscODALyNYWG/ArGXoIAy2/A==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/generator': 7.20.5
'@babel/template': 7.18.10
@@ -8050,7 +7160,7 @@ packages:
/@graphql-codegen/client-preset@1.1.5(graphql@16.7.1):
resolution: {integrity: sha512-Cggd0tfgXFOlWPZntKwf0P1v48iPH7gOadPd1TpnEJ0Nh1hSt+lRlN6jfNP2PxBWLfz8SvecshAdT9iIr0AAEA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@babel/helper-plugin-utils': 7.20.2
'@babel/template': 7.18.10
@@ -8073,7 +7183,7 @@ packages:
/@graphql-codegen/core@2.6.6(graphql@16.7.1):
resolution: {integrity: sha512-gU2FUxoLGw2GfcPWfBVXuiN3aDODbZ6Z9I+IGxa2u1Rzxlacw4TMmcwr4/IjC6mkiYJEKTvdVspHaby+brhuAg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-tools/schema': 9.0.16(graphql@16.7.1)
@@ -8085,7 +7195,7 @@ packages:
/@graphql-codegen/core@2.6.8(graphql@16.7.1):
resolution: {integrity: sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 3.1.2(graphql@16.7.1)
'@graphql-tools/schema': 9.0.16(graphql@16.7.1)
@@ -8097,7 +7207,7 @@ packages:
/@graphql-codegen/core@3.1.0(graphql@16.7.1):
resolution: {integrity: sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 4.1.0(graphql@16.7.1)
'@graphql-tools/schema': 9.0.16(graphql@16.7.1)
@@ -8109,7 +7219,7 @@ packages:
/@graphql-codegen/gql-tag-operations@1.5.8(graphql@16.7.1):
resolution: {integrity: sha512-CP6sSWWumTZDMscyh+NvmdvcktO1Jz5d657PDMpVS96FCf5sidJtloEVJMIuMezFD6q460nrQKWwPeXdDMyVKQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-codegen/visitor-plugin-common': 2.13.2(graphql@16.7.1)
@@ -8125,7 +7235,7 @@ packages:
/@graphql-codegen/plugin-helpers@2.7.1(graphql@16.7.1):
resolution: {integrity: sha512-wpEShhwbQp8pqXolnSCNaj0pU91LbuBvYHpYqm96TUqyeKQYAYRVmw3JIt0g8UQpKYhg8lYIDwWdcINOYqkGLg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
change-case-all: 1.0.14
@@ -8139,7 +7249,7 @@ packages:
/@graphql-codegen/plugin-helpers@2.7.2(graphql@16.7.1):
resolution: {integrity: sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
change-case-all: 1.0.14
@@ -8153,7 +7263,7 @@ packages:
/@graphql-codegen/plugin-helpers@3.1.2(graphql@16.7.1):
resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
change-case-all: 1.0.15
@@ -8167,7 +7277,7 @@ packages:
/@graphql-codegen/plugin-helpers@4.1.0(graphql@16.7.1):
resolution: {integrity: sha512-xvSHJb9OGb5CODIls0AI1rCenLz+FuiaNPCsfHMCNsLDjOZK2u0jAQ9zUBdc/Wb+21YXZujBCc0Vm1QX+Zz0nw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
change-case-all: 1.0.15
@@ -8181,7 +7291,7 @@ packages:
/@graphql-codegen/schema-ast@2.5.1(graphql@16.7.1):
resolution: {integrity: sha512-tewa5DEKbglWn7kYyVBkh3J8YQ5ALqAMVmZwiVFIGOao5u66nd+e4HuFqp0u+Jpz4SJGGi0ap/oFrEvlqLjd2A==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
@@ -8192,7 +7302,7 @@ packages:
/@graphql-codegen/schema-ast@3.0.1(graphql@16.7.1):
resolution: {integrity: sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 4.1.0(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8203,7 +7313,7 @@ packages:
/@graphql-codegen/typed-document-node@2.3.7(graphql@16.7.1):
resolution: {integrity: sha512-9raCw2n2gGfdK4gFZaY/fbrUH/ADpZOhlNZ/l6iEzdEEGJbAIAIsovnt9LBnpJ+VCmUBfmjhpn1QQBEwyceVlw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-codegen/visitor-plugin-common': 2.13.2(graphql@16.7.1)
@@ -8219,7 +7329,7 @@ packages:
/@graphql-codegen/typescript-operations@2.5.7(graphql@16.7.1):
resolution: {integrity: sha512-4TRyQy/GizcjkZsvN176C5O5bULyGB/lMXDWqg58A9AGf/P0n5n4QjgrMd2EG6tA3Xzg1tiBWhxYEFSmlPVETQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-codegen/typescript': 2.8.2(graphql@16.7.1)
@@ -8235,7 +7345,7 @@ packages:
/@graphql-codegen/typescript-operations@3.0.1(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-Td1d483cQr7XJj/zXrbqVUEi2QK56DT7EToFheZrBFArIQCUEGK+Xgw6GhEmZaTwWYODxavzy1jmTTJC2fEuTw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 4.1.0(graphql@16.7.1)
'@graphql-codegen/typescript': 3.0.1(encoding@0.1.13)(graphql@16.7.1)
@@ -8251,7 +7361,7 @@ packages:
/@graphql-codegen/typescript-react-apollo@3.3.4(encoding@0.1.13)(graphql-tag@2.12.6)(graphql@16.7.1):
resolution: {integrity: sha512-ATmrj5SJAGqH2bqaYIkHYeHb3Qkvnk8fwFeD5fr8EZqp87pu86xqr5gbjVpS23e01DRRfrHO4vT++j5m/wbdEA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
graphql-tag: ^2.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.1(graphql@16.7.1)
@@ -8269,7 +7379,7 @@ packages:
/@graphql-codegen/typescript@2.8.2(graphql@16.7.1):
resolution: {integrity: sha512-FWyEcJTHSxkImNgDRfsg4yBMJ11qPA6sPJ7v8Kviv5MaOFybclVSZ8WWfp7D8Dc6ix4zWfMd4dIl9ZIL/AJu8A==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-codegen/schema-ast': 2.5.1(graphql@16.7.1)
@@ -8285,7 +7395,7 @@ packages:
/@graphql-codegen/typescript@3.0.1(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-HvozJg7eHqywmYvXa7+nmjw+v3+f8ilFv9VbRvmjhj/zBw3VKGT2n/85ZhVyuWjY2KrDLzl6BqeXttWsW5Wo4w==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 4.1.0(graphql@16.7.1)
'@graphql-codegen/schema-ast': 3.0.1(graphql@16.7.1)
@@ -8301,7 +7411,7 @@ packages:
/@graphql-codegen/visitor-plugin-common@2.12.2(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-UZJxY3mWwaM7yii7mSbl6Rxb6sJlpwGZc3QAs2Yd8MnYjXFPTBR0OO6aBTr9xuftl0pYwHu/pVK7vTPNnVmPww==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-tools/optimize': 1.3.0(graphql@16.7.1)
@@ -8322,7 +7432,7 @@ packages:
/@graphql-codegen/visitor-plugin-common@2.13.2(graphql@16.7.1):
resolution: {integrity: sha512-qCZ4nfI1YjDuPz4lqGi0s4/5lOqHxdiQPFSwrXDENjHW+Z0oAiNYj6CFqob9ai2tLtXXKSUzMh/eeZDPmTrfhQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 2.7.2(graphql@16.7.1)
'@graphql-tools/optimize': 1.3.0(graphql@16.7.1)
@@ -8343,7 +7453,7 @@ packages:
/@graphql-codegen/visitor-plugin-common@3.0.1(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-Qek+Ywy094Km7Vc1TzKBN9ICvtYwPdqZUliPO77urMSveP+2+G2O9Tjx546dW4A1O6rhEfexbenc2DqTAe7iLQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-codegen/plugin-helpers': 4.1.0(graphql@16.7.1)
'@graphql-tools/optimize': 1.3.0(graphql@16.7.1)
@@ -8364,7 +7474,7 @@ packages:
/@graphql-tools/apollo-engine-loader@7.3.6(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-r7YU1X9Ce/sr+tPzSuZqVqlK7knGDpiRfB9HB2uVmbm+kPrlISQ0LuamFoT1g1nkfDZUNZn2p18ag512P1aVVw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
@@ -8378,7 +7488,7 @@ packages:
/@graphql-tools/batch-execute@8.5.1(graphql@16.7.1):
resolution: {integrity: sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
dataloader: 2.1.0
@@ -8390,7 +7500,7 @@ packages:
/@graphql-tools/batch-execute@8.5.18(graphql@16.7.1):
resolution: {integrity: sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
dataloader: 2.2.2
@@ -8402,7 +7512,7 @@ packages:
/@graphql-tools/code-file-loader@7.3.13(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-6anNQJ/VqseqBGcrZexGsiW40cBWF8Uko9AgvGSuZx2uJl1O8H9a3XMZnkmuI17yoGRCzXkwf52AS0+O5UYFUA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/graphql-tag-pluck': 7.4.0(@babel/core@7.21.8)(graphql@16.7.1)
'@graphql-tools/utils': 9.1.1(graphql@16.7.1)
@@ -8418,7 +7528,7 @@ packages:
/@graphql-tools/code-file-loader@7.3.21(@babel/core@7.20.2)(graphql@16.7.1):
resolution: {integrity: sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/graphql-tag-pluck': 7.5.0(@babel/core@7.20.2)(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8434,7 +7544,7 @@ packages:
/@graphql-tools/code-file-loader@7.3.21(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/graphql-tag-pluck': 7.5.0(@babel/core@7.21.8)(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8450,7 +7560,7 @@ packages:
/@graphql-tools/delegate@8.8.1(graphql@16.7.1):
resolution: {integrity: sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/batch-execute': 8.5.1(graphql@16.7.1)
'@graphql-tools/schema': 8.5.1(graphql@16.7.1)
@@ -8464,7 +7574,7 @@ packages:
/@graphql-tools/delegate@9.0.27(graphql@16.7.1):
resolution: {integrity: sha512-goYewiPls/RDXiRTl1S2tRPlsyDQCxlDWqd0uEIzQZ6aWSyiutfwQnTzdbZPXK0qOblEVMIqFhSGrB6fp0OkBA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/batch-execute': 8.5.18(graphql@16.7.1)
'@graphql-tools/executor': 0.0.14(graphql@16.7.1)
@@ -8479,7 +7589,7 @@ packages:
/@graphql-tools/executor-graphql-ws@0.0.11(graphql@16.7.1):
resolution: {integrity: sha512-muRj6j897ks2iKqe3HchWFFzd+jFInSRuLPvHJ7e4WPrejFvaZx3BQ9gndfJvVkfYUZIFm13stCGXaJJTbVM0Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@repeaterjs/repeater': 3.0.4
@@ -8497,7 +7607,7 @@ packages:
/@graphql-tools/executor-http@0.1.9(@types/node@16.18.11)(graphql@16.7.1):
resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@repeaterjs/repeater': 3.0.4
@@ -8515,7 +7625,7 @@ packages:
/@graphql-tools/executor-http@0.1.9(@types/node@18.11.17)(graphql@16.7.1):
resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@repeaterjs/repeater': 3.0.4
@@ -8533,7 +7643,7 @@ packages:
/@graphql-tools/executor-http@0.1.9(@types/node@18.16.14)(graphql@16.7.1):
resolution: {integrity: sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@repeaterjs/repeater': 3.0.4
@@ -8551,7 +7661,7 @@ packages:
/@graphql-tools/executor-legacy-ws@0.0.9(graphql@16.7.1):
resolution: {integrity: sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@types/ws': 8.5.3
@@ -8567,7 +7677,7 @@ packages:
/@graphql-tools/executor@0.0.12(graphql@16.7.1):
resolution: {integrity: sha512-bWpZcYRo81jDoTVONTnxS9dDHhEkNVjxzvFCH4CRpuyzD3uL+5w3MhtxIh24QyWm4LvQ4f+Bz3eMV2xU2I5+FA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.1.4(graphql@16.7.1)
'@graphql-typed-document-node/core': 3.1.1(graphql@16.7.1)
@@ -8580,7 +7690,7 @@ packages:
/@graphql-tools/executor@0.0.14(graphql@16.7.1):
resolution: {integrity: sha512-YiBbN9NT0FgqPJ35+Eg0ty1s5scOZTgiPf+6hLVJBd5zHEURwojEMCTKJ9e0RNZHETp2lN+YaTFGTSoRk0t4Sw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
'@graphql-typed-document-node/core': 3.1.1(graphql@16.7.1)
@@ -8593,7 +7703,7 @@ packages:
/@graphql-tools/git-loader@7.2.13(@babel/core@7.20.2)(graphql@16.7.1):
resolution: {integrity: sha512-PBAzZWXzKUL+VvlUQOjF++246G1O6TTMzvIlxaecgxvTSlnljEXJcDQlxqXhfFPITc5MP7He0N1UcZPBU/DE7Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/graphql-tag-pluck': 7.4.0(@babel/core@7.20.2)(graphql@16.7.1)
'@graphql-tools/utils': 9.1.1(graphql@16.7.1)
@@ -8610,7 +7720,7 @@ packages:
/@graphql-tools/git-loader@7.2.13(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-PBAzZWXzKUL+VvlUQOjF++246G1O6TTMzvIlxaecgxvTSlnljEXJcDQlxqXhfFPITc5MP7He0N1UcZPBU/DE7Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/graphql-tag-pluck': 7.4.0(@babel/core@7.21.8)(graphql@16.7.1)
'@graphql-tools/utils': 9.1.1(graphql@16.7.1)
@@ -8627,7 +7737,7 @@ packages:
/@graphql-tools/github-loader@7.3.20(@babel/core@7.20.2)(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-kIgloHb+yJJYR6K47HNBv7vI7IF73eoGsQy77H+2WDA+zwE5PuRXGUTAlJXRQdwiY71/Nvbw44P3l4WWbMRv0Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/graphql-tag-pluck': 7.4.0(@babel/core@7.20.2)(graphql@16.7.1)
@@ -8644,7 +7754,7 @@ packages:
/@graphql-tools/github-loader@7.3.20(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-kIgloHb+yJJYR6K47HNBv7vI7IF73eoGsQy77H+2WDA+zwE5PuRXGUTAlJXRQdwiY71/Nvbw44P3l4WWbMRv0Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/graphql-tag-pluck': 7.4.0(@babel/core@7.21.8)(graphql@16.7.1)
@@ -8661,7 +7771,7 @@ packages:
/@graphql-tools/graphql-file-loader@7.5.0(graphql@16.7.1):
resolution: {integrity: sha512-X3wcC+ZljbXTwdTTSp3oUHJd66mFLDKI750uhB0HidBxE6+wyw7fhmJVJiYROXPswaGliuabpo0JEyLj7hhWKA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/import': 6.7.1(graphql@16.7.1)
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
@@ -8674,7 +7784,7 @@ packages:
/@graphql-tools/graphql-tag-pluck@7.4.0(@babel/core@7.20.2)(graphql@16.7.1):
resolution: {integrity: sha512-f966Z8cMDiPxWuN3ksuHpNgGE8euZtrL/Gcwz9rRarAb13al4CGHKmw2Cb/ZNdt7GbyhdiLT4wbaddrF0xCpdw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@babel/parser': 7.21.8
'@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.20.2)
@@ -8691,7 +7801,7 @@ packages:
/@graphql-tools/graphql-tag-pluck@7.4.0(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-f966Z8cMDiPxWuN3ksuHpNgGE8euZtrL/Gcwz9rRarAb13al4CGHKmw2Cb/ZNdt7GbyhdiLT4wbaddrF0xCpdw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@babel/parser': 7.21.8
'@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8)
@@ -8708,7 +7818,7 @@ packages:
/@graphql-tools/graphql-tag-pluck@7.5.0(@babel/core@7.20.2)(graphql@16.7.1):
resolution: {integrity: sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@babel/parser': 7.21.8
'@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.20.2)
@@ -8725,7 +7835,7 @@ packages:
/@graphql-tools/graphql-tag-pluck@7.5.0(@babel/core@7.21.8)(graphql@16.7.1):
resolution: {integrity: sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@babel/parser': 7.21.8
'@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.21.8)
@@ -8742,7 +7852,7 @@ packages:
/@graphql-tools/import@6.7.1(graphql@16.7.1):
resolution: {integrity: sha512-StLosFVhdw+eZkL+v9dBabszxCAZtEYW4Oy1+750fDkH39GrmzOB8mWiYna7rm9+GMisC9atJtXuAfMF02Aoag==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
graphql: 16.7.1
@@ -8753,7 +7863,7 @@ packages:
/@graphql-tools/json-file-loader@7.4.1(graphql@16.7.1):
resolution: {integrity: sha512-+QaeRyJcvUXUNEoIaecYrABunqk8/opFbpdHPAijJyVHvlsYfqXR12/501g+/QZzGHKYnyi+Q3lsZbBboj5LBg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
globby: 11.1.0
@@ -8765,7 +7875,7 @@ packages:
/@graphql-tools/load@7.8.0(graphql@16.7.1):
resolution: {integrity: sha512-l4FGgqMW0VOqo+NMYizwV8Zh+KtvVqOf93uaLo9wJ3sS3y/egPCgxPMDJJ/ufQZG3oZ/0oWeKt68qop3jY0yZg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/schema': 9.0.4(graphql@16.7.1)
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
@@ -8777,7 +7887,7 @@ packages:
/@graphql-tools/merge@8.3.1(graphql@16.7.1):
resolution: {integrity: sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
graphql: 16.7.1
@@ -8787,7 +7897,7 @@ packages:
/@graphql-tools/merge@8.3.18(graphql@16.7.1):
resolution: {integrity: sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
graphql: 16.7.1
@@ -8796,7 +7906,7 @@ packages:
/@graphql-tools/merge@8.3.6(graphql@16.7.1):
resolution: {integrity: sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
graphql: 16.7.1
@@ -8805,7 +7915,7 @@ packages:
/@graphql-tools/optimize@1.3.0(graphql@16.7.1):
resolution: {integrity: sha512-30QOWJoMJEt1De7tAFtWJ6VPrP6SLq+tSQrA3x+WMvCW3q2exq5wPDpvAXOakVKu0y8L2E+YkipC0hcQPBQdLg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -8814,7 +7924,7 @@ packages:
/@graphql-tools/prisma-loader@7.2.64(@types/node@16.18.11)(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-W8GfzfBKiBSIEgw+/nJk6zUlF6k/jterlNoFhM27mBsbeMtWxKnm1+gEU6KA0N1PNEdq2RIa2W4AfVfVBl2GgQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/url-loader': 7.17.13(@types/node@16.18.11)(encoding@0.1.13)(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8847,7 +7957,7 @@ packages:
/@graphql-tools/prisma-loader@7.2.64(@types/node@18.16.14)(graphql@16.7.1):
resolution: {integrity: sha512-W8GfzfBKiBSIEgw+/nJk6zUlF6k/jterlNoFhM27mBsbeMtWxKnm1+gEU6KA0N1PNEdq2RIa2W4AfVfVBl2GgQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/url-loader': 7.17.13(@types/node@18.16.14)(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8880,7 +7990,7 @@ packages:
/@graphql-tools/prisma-loader@7.2.8(@types/node@16.18.11)(graphql@16.7.1):
resolution: {integrity: sha512-GeMZe3QHdLlsTmRn4dE/yB2lSR4RF9kmyeNGLMKmTQLzHxT5kjjDTmX00T5F1RO5fh+5jPwIVCMw+MQxB7nXpA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/url-loader': 7.13.3(@types/node@16.18.11)(encoding@0.1.13)(graphql@16.7.1)
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
@@ -8913,7 +8023,7 @@ packages:
/@graphql-tools/prisma-loader@7.2.8(@types/node@18.11.17)(graphql@16.7.1):
resolution: {integrity: sha512-GeMZe3QHdLlsTmRn4dE/yB2lSR4RF9kmyeNGLMKmTQLzHxT5kjjDTmX00T5F1RO5fh+5jPwIVCMw+MQxB7nXpA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/url-loader': 7.13.3(@types/node@18.11.17)(graphql@16.7.1)
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
@@ -8946,7 +8056,7 @@ packages:
/@graphql-tools/relay-operation-optimizer@6.5.0(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-snqmdPiM2eBex6pijRFx4H9MPumVd8ZWM3y+aaRwzc73VUNnjHE4NyVZEEIdlbmJ2HoQ9Zrm9aFlHVMK7B59zg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/relay-compiler': 12.0.0(encoding@0.1.13)(graphql@16.7.1)
'@graphql-tools/utils': 8.8.0(graphql@16.7.1)
@@ -8960,7 +8070,7 @@ packages:
/@graphql-tools/schema@8.5.1(graphql@16.7.1):
resolution: {integrity: sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/merge': 8.3.1(graphql@16.7.1)
'@graphql-tools/utils': 8.9.0(graphql@16.7.1)
@@ -8972,7 +8082,7 @@ packages:
/@graphql-tools/schema@9.0.16(graphql@16.7.1):
resolution: {integrity: sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/merge': 8.3.18(graphql@16.7.1)
'@graphql-tools/utils': 9.2.1(graphql@16.7.1)
@@ -8983,7 +8093,7 @@ packages:
/@graphql-tools/schema@9.0.4(graphql@16.7.1):
resolution: {integrity: sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/merge': 8.3.6(graphql@16.7.1)
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
@@ -8994,7 +8104,7 @@ packages:
/@graphql-tools/url-loader@7.13.3(@types/node@16.18.11)(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-92z2HJd+Ae2wlZH0kFb20aSxX8CkJDcYyUtbtBNSadu5rKzkiYQPlihfRJFJs4zmDdV+DSmmGvQtDuAKLV+iNg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/delegate': 8.8.1(graphql@16.7.1)
@@ -9022,7 +8132,7 @@ packages:
/@graphql-tools/url-loader@7.13.3(@types/node@18.11.17)(graphql@16.7.1):
resolution: {integrity: sha512-92z2HJd+Ae2wlZH0kFb20aSxX8CkJDcYyUtbtBNSadu5rKzkiYQPlihfRJFJs4zmDdV+DSmmGvQtDuAKLV+iNg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/delegate': 8.8.1(graphql@16.7.1)
@@ -9050,7 +8160,7 @@ packages:
/@graphql-tools/url-loader@7.17.13(@types/node@16.18.11)(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/delegate': 9.0.27(graphql@16.7.1)
@@ -9076,7 +8186,7 @@ packages:
/@graphql-tools/url-loader@7.17.13(@types/node@18.11.17)(graphql@16.7.1):
resolution: {integrity: sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/delegate': 9.0.27(graphql@16.7.1)
@@ -9102,7 +8212,7 @@ packages:
/@graphql-tools/url-loader@7.17.13(@types/node@18.16.14)(graphql@16.7.1):
resolution: {integrity: sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@ardatan/sync-fetch': 0.0.1(encoding@0.1.13)
'@graphql-tools/delegate': 9.0.27(graphql@16.7.1)
@@ -9128,7 +8238,7 @@ packages:
/@graphql-tools/utils@8.12.0(graphql@16.7.1):
resolution: {integrity: sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -9136,7 +8246,7 @@ packages:
/@graphql-tools/utils@8.8.0(graphql@16.7.1):
resolution: {integrity: sha512-KJrtx05uSM/cPYFdTnGAS1doL5bftJLAiFCDMZ8Vkifztz3BFn3gpFiy/o4wDtM8s39G46mxmt2Km/RmeltfGw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -9145,7 +8255,7 @@ packages:
/@graphql-tools/utils@8.9.0(graphql@16.7.1):
resolution: {integrity: sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -9154,7 +8264,7 @@ packages:
/@graphql-tools/utils@9.1.1(graphql@16.7.1):
resolution: {integrity: sha512-DXKLIEDbihK24fktR2hwp/BNIVwULIHaSTNTNhXS+19vgT50eX9wndx1bPxGwHnVBOONcwjXy0roQac49vdt/w==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -9162,7 +8272,7 @@ packages:
/@graphql-tools/utils@9.1.4(graphql@16.7.1):
resolution: {integrity: sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -9170,7 +8280,7 @@ packages:
/@graphql-tools/utils@9.2.1(graphql@16.7.1):
resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1)
graphql: 16.7.1
@@ -9179,7 +8289,7 @@ packages:
/@graphql-tools/wrap@8.5.1(graphql@16.7.1):
resolution: {integrity: sha512-KpVVfha2wLSpE08YLX0jeo5nXPfDLASlxOqMlvfa/B4X8SOVmuLyN1L5YZ132tPLDF93uflwlHFnUO5ahpRNlA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/delegate': 8.8.1(graphql@16.7.1)
'@graphql-tools/schema': 8.5.1(graphql@16.7.1)
@@ -9192,7 +8302,7 @@ packages:
/@graphql-tools/wrap@9.3.6(graphql@16.7.1):
resolution: {integrity: sha512-HtQIYoPz48bzpMYZzoeMmzIIYuVxcaUuLD7dH7GtIhwe2f4hpPDE+JLUPxpYiaXdY10l7kP9wycK+FtRfCsFlw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
'@graphql-tools/delegate': 9.0.27(graphql@16.7.1)
'@graphql-tools/schema': 9.0.16(graphql@16.7.1)
@@ -9205,21 +8315,21 @@ packages:
/@graphql-typed-document-node/core@3.1.1(graphql@16.7.1):
resolution: {integrity: sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 16.7.1
/@graphql-typed-document-node/core@3.2.0(graphql@16.7.1):
resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
dependencies:
graphql: 16.7.1
/@graphql-yoga/common@2.12.12(graphql@16.7.1):
resolution: {integrity: sha512-La2ygIw2qlIJZrRGT4nW70Nam7gQ2xZkOn0FDCnKWSJhQ4nHw4aFAkeHIJdZGK0u2TqtXRrNSAj5cb/TZoqUiQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.2.0 || ^16.0.0
dependencies:
'@envelop/core': 2.6.0(graphql@16.7.1)
'@envelop/parser-cache': 4.7.0(@envelop/core@2.6.0)(graphql@16.7.1)
@@ -9239,7 +8349,7 @@ packages:
/@graphql-yoga/node@2.13.13(graphql@16.7.1):
resolution: {integrity: sha512-3NmdEq3BkuVLRbo5yUi401sBiwowSKgY8O1DN1RwYdHRr0nu2dXzlYEETf4XLymyP6mKsVfQgsy7HQjwsc1oNw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.2.0 || ^16.0.0
dependencies:
'@envelop/core': 2.6.0(graphql@16.7.1)
'@graphql-tools/utils': 8.12.0(graphql@16.7.1)
@@ -9303,14 +8413,6 @@ packages:
yargs: 16.2.0
dev: false
- /@hapi/hoek@9.3.0:
- resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
-
- /@hapi/topo@5.1.0:
- resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- dependencies:
- '@hapi/hoek': 9.3.0
-
/@headlessui/react@1.7.15(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw==}
engines: {node: '>=10'}
@@ -9455,6 +8557,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@sinclair/typebox': 0.24.47
+ dev: true
/@jest/transform@26.6.2:
resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==}
@@ -9511,6 +8614,7 @@ packages:
'@types/node': 18.16.14
'@types/yargs': 17.0.13
chalk: 4.1.2
+ dev: true
/@jridgewell/gen-mapping@0.1.1:
resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
@@ -9540,12 +8644,14 @@ packages:
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.18
+ dev: true
/@jridgewell/source-map@0.3.3:
resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==}
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.18
+ dev: true
/@jridgewell/sourcemap-codec@1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
@@ -9565,10 +8671,6 @@ packages:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.15
- /@leichtgewicht/ip-codec@2.0.3:
- resolution: {integrity: sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==}
- dev: false
-
/@lezer/common@1.1.1:
resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==}
dev: false
@@ -9803,6 +8905,7 @@ packages:
unist-util-visit: 2.0.3
transitivePeerDependencies:
- supports-color
+ dev: true
/@mdx-js/react@1.6.22(react@18.2.0):
resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==}
@@ -9810,9 +8913,11 @@ packages:
react: ^16.13.1 || ^17.0.0
dependencies:
react: 18.2.0
+ dev: true
/@mdx-js/util@1.6.22:
resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==}
+ dev: true
/@microsoft/api-extractor-model@7.27.4(@types/node@16.18.11):
resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==}
@@ -10160,7 +9265,7 @@ packages:
/@n1ru4l/graphql-live-query@0.10.0(graphql@16.7.1):
resolution: {integrity: sha512-qZ7OHH/NB0NcG/Xa7irzgjE63UH0CkofZT0Bw4Ko6iRFagPRHBM8RgFXwTt/6JbFGIEUS4STRtaFoc/Eq/ZtzQ==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.4.0 || ^16.0.0
dependencies:
graphql: 16.7.1
dev: true
@@ -10628,7 +9733,7 @@ packages:
/@nhost/graphql-js@0.1.4(graphql@16.7.1):
resolution: {integrity: sha512-IPHuGOf4iQrFsxG7Rh5jCCZzPCN9JkvldFww4Fz1lCVi9ZQNEaGaawIP5gBuBHeYIuALeaK1wVYKPc7vJ/euCA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1)
graphql: 16.7.1
@@ -10662,7 +9767,7 @@ packages:
/@nhost/nhost-js@2.2.18(graphql@16.7.1):
resolution: {integrity: sha512-aHn6p75fuG7SEUyB/yfX5TXtVTqwCT88zdN9Mmgo/8hnFOGV1XM7B4fxuGpNQCz18tG6kjM24tWx8EGXAEZ1sw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@nhost/graphql-js': 0.1.4(graphql@16.7.1)
'@nhost/hasura-auth-js': 2.1.9
@@ -10834,6 +9939,7 @@ packages:
/@polka/url@1.0.0-next.21:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
+ dev: true
/@popperjs/core@2.11.5:
resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==}
@@ -10846,7 +9952,7 @@ packages:
/@pothos/core@3.21.0(graphql@16.7.1):
resolution: {integrity: sha512-ZyXtLAzYnMplmeGiUYvHV991fCKof9zVtWdXUS6k6eQEjeBkeW/oCYhKZGBYKZhMExn/TRj48tR54bT1DpPMzA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: '>=15.1.0'
dependencies:
graphql: 16.7.1
dev: false
@@ -10854,7 +9960,7 @@ packages:
/@pothos/core@3.22.9(graphql@16.7.1):
resolution: {integrity: sha512-yIgmJBL1L2JRrZTZ3d+9JzCzfpMXZV8aHy5oK5KhonO7dFruBtzbJlsgx4T4zQieKigBh8MSo9fbjCq1Z9Oklg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: '>=15.1.0'
dependencies:
graphql: 16.7.1
dev: false
@@ -11606,6 +10712,20 @@ packages:
rollup: 3.29.4
dev: true
+ /@rollup/pluginutils@5.1.0:
+ resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.1
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
/@rushstack/eslint-patch@1.1.3:
resolution: {integrity: sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==}
dev: true
@@ -11660,17 +10780,6 @@ packages:
'@ndhoule/map': 2.0.1
dev: false
- /@sideway/address@4.1.4:
- resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
- dependencies:
- '@hapi/hoek': 9.3.0
-
- /@sideway/formula@3.0.1:
- resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
-
- /@sideway/pinpoint@2.0.0:
- resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
-
/@simplewebauthn/browser@6.0.0:
resolution: {integrity: sha512-gaXZmNfBPFawVZLhDPHkArCt0ttUbNSQSq24muyFmUi/QfJIhvQfQH7kfqIwlAXKqs79qpJ4RCYsRUjVj0Yl6w==}
@@ -11680,20 +10789,7 @@ packages:
/@sinclair/typebox@0.24.47:
resolution: {integrity: sha512-J4Xw0xYK4h7eC34MNOPQi6IkNxGRck6n4VJpWDzXIFVTW8I/D43Gf+NfWz/v/7NHlzWOPd3+T4PJ4OqklQ2u7A==}
-
- /@sindresorhus/is@0.14.0:
- resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==}
- engines: {node: '>=6'}
- dev: false
-
- /@slorber/static-site-generator-webpack-plugin@4.0.7:
- resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==}
- engines: {node: '>=14'}
- dependencies:
- eval: 0.1.8
- p-map: 4.0.0
- webpack-sources: 3.2.3
- dev: false
+ dev: true
/@storybook/addon-actions@6.5.14(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-fZt8bn+oCsVDv9yuZfKL4lq77V5EqW60khHpOxLRRK69hMsE+gaylK0O5l/pelVf3Jf3+TablUG+2xWTaJHGlQ==}
@@ -12682,7 +11778,7 @@ packages:
globby: 11.1.0
ip: 2.0.0
lodash: 4.17.21
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
open: 8.4.0
pretty-hrtime: 1.0.3
prompts: 2.4.2
@@ -13413,157 +12509,6 @@ packages:
- supports-color
dev: true
- /@svgr/babel-plugin-add-jsx-attribute@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-remove-jsx-attribute@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-remove-jsx-empty-expression@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-replace-jsx-attribute-value@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-svg-dynamic-title@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-svg-em-dimensions@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-transform-react-native-svg@6.0.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-plugin-transform-svg-component@6.2.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==}
- engines: {node: '>=12'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- dev: false
-
- /@svgr/babel-preset@6.2.0(@babel/core@7.21.4):
- resolution: {integrity: sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.21.4
- '@svgr/babel-plugin-add-jsx-attribute': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-remove-jsx-attribute': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-remove-jsx-empty-expression': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-replace-jsx-attribute-value': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-svg-dynamic-title': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-svg-em-dimensions': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-transform-react-native-svg': 6.0.0(@babel/core@7.21.4)
- '@svgr/babel-plugin-transform-svg-component': 6.2.0(@babel/core@7.21.4)
- dev: false
-
- /@svgr/core@6.2.1:
- resolution: {integrity: sha512-NWufjGI2WUyrg46mKuySfviEJ6IxHUOm/8a3Ph38VCWSp+83HBraCQrpEM3F3dB6LBs5x8OElS8h3C0oOJaJAA==}
- engines: {node: '>=10'}
- dependencies:
- '@svgr/plugin-jsx': 6.2.1(@svgr/core@6.2.1)
- camelcase: 6.3.0
- cosmiconfig: 7.0.1
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@svgr/hast-util-to-babel-ast@6.2.1:
- resolution: {integrity: sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ==}
- engines: {node: '>=10'}
- dependencies:
- '@babel/types': 7.21.5
- entities: 3.0.1
- dev: false
-
- /@svgr/plugin-jsx@6.2.1(@svgr/core@6.2.1):
- resolution: {integrity: sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@svgr/core': ^6.0.0
- dependencies:
- '@babel/core': 7.21.4
- '@svgr/babel-preset': 6.2.0(@babel/core@7.21.4)
- '@svgr/core': 6.2.1
- '@svgr/hast-util-to-babel-ast': 6.2.1
- svg-parser: 2.0.4
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@svgr/plugin-svgo@6.2.0(@svgr/core@6.2.1):
- resolution: {integrity: sha512-oDdMQONKOJEbuKwuy4Np6VdV6qoaLLvoY86hjvQEgU82Vx1MSWRyYms6Sl0f+NtqxLI/rDVufATbP/ev996k3Q==}
- engines: {node: '>=10'}
- peerDependencies:
- '@svgr/core': ^6.0.0
- dependencies:
- '@svgr/core': 6.2.1
- cosmiconfig: 7.0.1
- deepmerge: 4.2.2
- svgo: 2.8.0
- dev: false
-
- /@svgr/webpack@6.2.1:
- resolution: {integrity: sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw==}
- engines: {node: '>=10'}
- dependencies:
- '@babel/core': 7.21.4
- '@babel/plugin-transform-react-constant-elements': 7.17.6(@babel/core@7.21.4)
- '@babel/preset-env': 7.19.4(@babel/core@7.21.4)
- '@babel/preset-react': 7.18.6(@babel/core@7.21.4)
- '@babel/preset-typescript': 7.18.6(@babel/core@7.21.4)
- '@svgr/core': 6.2.1
- '@svgr/plugin-jsx': 6.2.1(@svgr/core@6.2.1)
- '@svgr/plugin-svgo': 6.2.0(@svgr/core@6.2.1)
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/@swc-node/core@1.9.1(@swc/core@1.3.11):
resolution: {integrity: sha512-Mh4T/PmQOpPtqw1BNvU38uWzsXbd5RJji17YBXnj7JDDE5KlTR9sSo2RKxWKDVtHbdcD1S+CtyZXA93aEWlfGQ==}
engines: {node: '>= 10'}
@@ -13771,13 +12716,6 @@ packages:
dev: true
optional: true
- /@szmarczak/http-timer@1.1.2:
- resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
- engines: {node: '>=6'}
- dependencies:
- defer-to-connect: 1.1.3
- dev: false
-
/@tailwindcss/forms@0.5.3(tailwindcss@3.2.1):
resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==}
peerDependencies:
@@ -13961,15 +12899,6 @@ packages:
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
- /@trysound/sax@0.2.0:
- resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
- engines: {node: '>=10.13.0'}
- dev: false
-
- /@tsconfig/docusaurus@2.0.0:
- resolution: {integrity: sha512-X5wptT7pXA/46/IRFTW76oR5GNjoy9qjNM/1JGhFV4QAsmLh3YUpJJA+Vpx7Ds6eEBxSxz1QrgoNEBy6rLVs8w==}
- dev: true
-
/@tsconfig/node10@1.0.8:
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
@@ -14003,12 +12932,7 @@ packages:
dependencies:
'@types/connect': 3.4.35
'@types/node': 18.16.14
-
- /@types/bonjour@3.5.10:
- resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
+ dev: true
/@types/chai-subset@1.3.3:
resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
@@ -14026,17 +12950,11 @@ packages:
'@types/tern': 0.23.4
dev: false
- /@types/connect-history-api-fallback@1.3.5:
- resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==}
- dependencies:
- '@types/express-serve-static-core': 4.17.28
- '@types/node': 18.16.14
- dev: false
-
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
'@types/node': 18.16.14
+ dev: true
/@types/cookie@0.4.1:
resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
@@ -14055,24 +12973,28 @@ packages:
dependencies:
'@types/eslint': 8.4.1
'@types/estree': 1.0.1
+ dev: true
/@types/eslint-scope@3.7.4:
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
dependencies:
'@types/eslint': 8.37.0
'@types/estree': 1.0.1
+ dev: true
/@types/eslint@8.37.0:
resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==}
dependencies:
'@types/estree': 1.0.1
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
+ dev: true
/@types/eslint@8.4.1:
resolution: {integrity: sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==}
dependencies:
'@types/estree': 1.0.1
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
+ dev: true
/@types/estree-jsx@1.0.3:
resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==}
@@ -14082,6 +13004,7 @@ packages:
/@types/estree@0.0.51:
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
+ dev: true
/@types/estree@1.0.1:
resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
@@ -14092,6 +13015,7 @@ packages:
'@types/node': 18.16.14
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
+ dev: true
/@types/express@4.17.13:
resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==}
@@ -14102,15 +13026,6 @@ packages:
'@types/serve-static': 1.13.10
dev: true
- /@types/express@4.17.14:
- resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==}
- dependencies:
- '@types/body-parser': 1.19.2
- '@types/express-serve-static-core': 4.17.28
- '@types/qs': 6.9.7
- '@types/serve-static': 1.13.10
- dev: false
-
/@types/glob@7.2.0:
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
dependencies:
@@ -14135,6 +13050,7 @@ packages:
resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==}
dependencies:
'@types/unist': 3.0.2
+ dev: true
/@types/hast@3.0.3:
resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==}
@@ -14142,21 +13058,13 @@ packages:
'@types/unist': 2.0.6
dev: false
- /@types/history@4.7.11:
- resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==}
-
/@types/html-minifier-terser@5.1.2:
resolution: {integrity: sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==}
dev: true
/@types/html-minifier-terser@6.1.0:
resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
-
- /@types/http-proxy@1.17.8:
- resolution: {integrity: sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
+ dev: true
/@types/is-ci@3.0.0:
resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==}
@@ -14170,16 +13078,19 @@ packages:
/@types/istanbul-lib-coverage@2.0.4:
resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+ dev: true
/@types/istanbul-lib-report@3.0.0:
resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
dependencies:
'@types/istanbul-lib-coverage': 2.0.4
+ dev: true
/@types/istanbul-reports@3.0.1:
resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
dependencies:
'@types/istanbul-lib-report': 3.0.0
+ dev: true
/@types/jest@29.5.3:
resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==}
@@ -14202,6 +13113,7 @@ packages:
/@types/json-schema@7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
+ dev: true
/@types/json-schema@7.0.15:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -14226,12 +13138,6 @@ packages:
'@types/node': 18.16.14
dev: true
- /@types/keyv@3.1.4:
- resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
-
/@types/linkify-it@3.0.2:
resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==}
dev: false
@@ -14261,11 +13167,12 @@ packages:
resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
dependencies:
'@types/unist': 3.0.2
+ dev: true
/@types/mdast@4.0.3:
resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==}
dependencies:
- '@types/unist': 3.0.2
+ '@types/unist': 2.0.6
dev: false
/@types/mdurl@1.0.2:
@@ -14274,6 +13181,7 @@ packages:
/@types/mime@1.3.2:
resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==}
+ dev: true
/@types/minimatch@5.1.2:
resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
@@ -14300,10 +13208,6 @@ packages:
/@types/node@16.18.11:
resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==}
- /@types/node@17.0.45:
- resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- dev: false
-
/@types/node@18.11.17:
resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==}
@@ -14334,6 +13238,7 @@ packages:
/@types/parse5@5.0.3:
resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==}
+ dev: true
/@types/pluralize@0.0.30:
resolution: {integrity: sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==}
@@ -14362,9 +13267,11 @@ packages:
/@types/qs@6.9.7:
resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
+ dev: true
/@types/range-parser@1.2.4:
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
+ dev: true
/@types/react-dom@18.2.6:
resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==}
@@ -14383,26 +13290,6 @@ packages:
'@types/react': 18.2.21
dev: false
- /@types/react-router-config@5.0.6:
- resolution: {integrity: sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==}
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.21
- '@types/react-router': 5.1.18
-
- /@types/react-router-dom@5.3.3:
- resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.21
- '@types/react-router': 5.1.18
-
- /@types/react-router@5.1.18:
- resolution: {integrity: sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==}
- dependencies:
- '@types/history': 4.7.11
- '@types/react': 18.2.21
-
/@types/react-table@7.7.12:
resolution: {integrity: sha512-bRUent+NR/WwtDGwI/BqhZ8XnHghwHw0HUKeohzB5xN3K2qKWYE5w19e7GCuOkL1CXD9Gi1HFy7TIm2AvgWUHg==}
dependencies:
@@ -14429,26 +13316,10 @@ packages:
'@types/scheduler': 0.16.2
csstype: 3.1.1
- /@types/responselike@1.0.0:
- resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
-
/@types/retry@0.12.0:
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
dev: false
- /@types/retry@0.12.1:
- resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==}
- dev: false
-
- /@types/sax@1.2.4:
- resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
-
/@types/scheduler@0.16.2:
resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
@@ -14464,17 +13335,12 @@ packages:
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
dev: true
- /@types/serve-index@1.9.1:
- resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==}
- dependencies:
- '@types/express': 4.17.14
- dev: false
-
/@types/serve-static@1.13.10:
resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==}
dependencies:
'@types/mime': 1.3.2
'@types/node': 18.16.14
+ dev: true
/@types/set-cookie-parser@2.4.2:
resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==}
@@ -14486,12 +13352,6 @@ packages:
resolution: {integrity: sha512-SWZ2Nom1pkyXCDohRSrkSKvDh8QOG9RfAsrt5/NsPQC4UQJ55eG0qClA40I+Gkez4KTQ0uDUT8ELRXThf3J5jw==}
dev: true
- /@types/sockjs@0.3.33:
- resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==}
- dependencies:
- '@types/node': 18.16.14
- dev: false
-
/@types/source-list-map@0.1.2:
resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==}
dev: true
@@ -14586,9 +13446,11 @@ packages:
resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==}
dependencies:
'@types/node': 18.16.14
+ dev: true
/@types/yargs-parser@21.0.0:
resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
+ dev: true
/@types/yargs@15.0.14:
resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==}
@@ -14606,6 +13468,7 @@ packages:
resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==}
dependencies:
'@types/yargs-parser': 21.0.0
+ dev: true
/@typescript-eslint/eslint-plugin@5.43.0(@typescript-eslint/parser@5.43.0)(eslint@8.25.0)(typescript@4.8.3):
resolution: {integrity: sha512-wNPzG+eDR6+hhW4yobEmpR36jrqqQv1vxBq5LJO3fBAktjkvekfr4BRl+3Fn1CM/A+s8/EiGUbOMDoYqWdbtXA==}
@@ -14627,7 +13490,7 @@ packages:
ignore: 5.2.4
natural-compare-lite: 1.4.0
regexpp: 3.2.0
- semver: 7.5.4
+ semver: 7.5.1
tsutils: 3.21.0(typescript@4.8.3)
typescript: 4.8.3
transitivePeerDependencies:
@@ -14683,11 +13546,8 @@ packages:
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
- natural-compare-lite: 1.4.0
- regexpp: 3.2.0
semver: 7.5.4
ts-api-utils: 1.0.3(typescript@4.9.5)
- tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
@@ -15054,7 +13914,7 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
'@typescript-eslint/scope-manager': 5.40.0
'@typescript-eslint/types': 5.40.0
'@typescript-eslint/typescript-estree': 5.40.0(typescript@4.9.5)
@@ -15081,7 +13941,7 @@ packages:
eslint: 8.25.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.25.0)
- semver: 7.5.4
+ semver: 7.5.1
transitivePeerDependencies:
- supports-color
- typescript
@@ -15101,7 +13961,7 @@ packages:
eslint: 8.26.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.26.0)
- semver: 7.5.4
+ semver: 7.5.1
transitivePeerDependencies:
- supports-color
- typescript
@@ -15234,7 +14094,7 @@ packages:
chokidar: 3.5.3
colorette: 2.0.19
consola: 2.15.3
- fast-glob: 3.3.1
+ fast-glob: 3.3.2
pathe: 0.3.0
perfect-debounce: 0.1.3
dev: true
@@ -15353,7 +14213,7 @@ packages:
/@urql/core@3.0.5(graphql@16.7.1):
resolution: {integrity: sha512-6/1HG+WEAcPs+hXSFnxWBTWkNUwa8dj2cHysWokMaFIbAioGtUaSdxp2q9FDMtWAIGdc640NFSt2B8itGLdoAA==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1)
graphql: 16.7.1
@@ -15382,7 +14242,7 @@ packages:
resolution: {integrity: sha512-TktPLiBS9LcBPHD6qcnb8wqOVcg3Bx0iCtvQ80uPpfofwwBGJmqnQTjUdEFU6kwaLOFZULQ9+Uo4831G823mQw==}
peerDependencies:
'@urql/core': '>= 1.14.0'
- graphql: 16.7.1
+ graphql: '>= 0.11.0'
dependencies:
'@urql/core': 4.0.7(graphql@16.7.1)
graphql: 16.7.1
@@ -15392,7 +14252,7 @@ packages:
/@urql/exchange-refocus@1.0.0(graphql@16.7.1):
resolution: {integrity: sha512-m2ZrY1ekn9IS+7hhvbVUFSG0Bb9b6s2uJvxx0uFrxscZ3r+Wc5M7wzzxdaImqXca4siSOPxjwME/NCy4/r/zuw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@urql/core': 3.0.5(graphql@16.7.1)
graphql: 16.7.1
@@ -15545,14 +14405,14 @@ packages:
'@vitest/utils': 0.32.0
concordance: 5.0.4
p-limit: 4.0.0
- pathe: 1.1.0
+ pathe: 1.1.1
dev: true
/@vitest/snapshot@0.32.0:
resolution: {integrity: sha512-yCKorPWjEnzpUxQpGlxulujTcSPgkblwGzAUEL+z01FTUg/YuCDZ8dxr9sHA08oO2EwxzHXNLjQKWJ2zc2a19Q==}
dependencies:
- magic-string: 0.30.0
- pathe: 1.1.0
+ magic-string: 0.30.5
+ pathe: 1.1.1
pretty-format: 27.5.1
dev: true
@@ -15623,7 +14483,7 @@ packages:
peerDependencies:
'@apollo/client': ^3.4.13
'@vue/composition-api': ^1.0.0
- graphql: 16.7.1
+ graphql: '>=15'
vue: ^2.6.0 || ^3.1.0
peerDependenciesMeta:
'@vue/composition-api':
@@ -15644,7 +14504,7 @@ packages:
peerDependencies:
'@apollo/client': ^3.4.13
'@vue/composition-api': ^1.0.0
- graphql: 16.7.1
+ graphql: '>=15'
vue: ^2.6.0 || ^3.1.0
peerDependenciesMeta:
'@vue/composition-api':
@@ -15764,7 +14624,7 @@ packages:
'@vue/compiler-dom': 3.3.4
'@vue/reactivity': 3.3.4
'@vue/shared': 3.3.4
- minimatch: 9.0.0
+ minimatch: 9.0.3
muggle-string: 0.3.1
typescript: 4.9.5
vue-template-compiler: 2.7.14
@@ -15951,12 +14811,14 @@ packages:
dependencies:
'@webassemblyjs/helper-numbers': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
+ dev: true
/@webassemblyjs/ast@1.11.6:
resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
dependencies:
'@webassemblyjs/helper-numbers': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
+ dev: true
/@webassemblyjs/ast@1.9.0:
resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==}
@@ -15968,9 +14830,11 @@ packages:
/@webassemblyjs/floating-point-hex-parser@1.11.1:
resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
+ dev: true
/@webassemblyjs/floating-point-hex-parser@1.11.6:
resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
+ dev: true
/@webassemblyjs/floating-point-hex-parser@1.9.0:
resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==}
@@ -15978,9 +14842,11 @@ packages:
/@webassemblyjs/helper-api-error@1.11.1:
resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
+ dev: true
/@webassemblyjs/helper-api-error@1.11.6:
resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
+ dev: true
/@webassemblyjs/helper-api-error@1.9.0:
resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==}
@@ -15988,9 +14854,11 @@ packages:
/@webassemblyjs/helper-buffer@1.11.1:
resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
+ dev: true
/@webassemblyjs/helper-buffer@1.11.6:
resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
+ dev: true
/@webassemblyjs/helper-buffer@1.9.0:
resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==}
@@ -16018,6 +14886,7 @@ packages:
'@webassemblyjs/floating-point-hex-parser': 1.11.1
'@webassemblyjs/helper-api-error': 1.11.1
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/helper-numbers@1.11.6:
resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
@@ -16025,12 +14894,15 @@ packages:
'@webassemblyjs/floating-point-hex-parser': 1.11.6
'@webassemblyjs/helper-api-error': 1.11.6
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/helper-wasm-bytecode@1.11.1:
resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
+ dev: true
/@webassemblyjs/helper-wasm-bytecode@1.11.6:
resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
+ dev: true
/@webassemblyjs/helper-wasm-bytecode@1.9.0:
resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==}
@@ -16043,6 +14915,7 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
+ dev: true
/@webassemblyjs/helper-wasm-section@1.11.6:
resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
@@ -16051,6 +14924,7 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
'@webassemblyjs/wasm-gen': 1.11.6
+ dev: true
/@webassemblyjs/helper-wasm-section@1.9.0:
resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==}
@@ -16065,11 +14939,13 @@ packages:
resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
dependencies:
'@xtuc/ieee754': 1.2.0
+ dev: true
/@webassemblyjs/ieee754@1.11.6:
resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
dependencies:
'@xtuc/ieee754': 1.2.0
+ dev: true
/@webassemblyjs/ieee754@1.9.0:
resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==}
@@ -16081,11 +14957,13 @@ packages:
resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
dependencies:
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/leb128@1.11.6:
resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
dependencies:
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/leb128@1.9.0:
resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==}
@@ -16095,9 +14973,11 @@ packages:
/@webassemblyjs/utf8@1.11.1:
resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
+ dev: true
/@webassemblyjs/utf8@1.11.6:
resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
+ dev: true
/@webassemblyjs/utf8@1.9.0:
resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==}
@@ -16114,6 +14994,7 @@ packages:
'@webassemblyjs/wasm-opt': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
'@webassemblyjs/wast-printer': 1.11.1
+ dev: true
/@webassemblyjs/wasm-edit@1.11.6:
resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
@@ -16126,6 +15007,7 @@ packages:
'@webassemblyjs/wasm-opt': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
'@webassemblyjs/wast-printer': 1.11.6
+ dev: true
/@webassemblyjs/wasm-edit@1.9.0:
resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==}
@@ -16148,6 +15030,7 @@ packages:
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
+ dev: true
/@webassemblyjs/wasm-gen@1.11.6:
resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
@@ -16157,6 +15040,7 @@ packages:
'@webassemblyjs/ieee754': 1.11.6
'@webassemblyjs/leb128': 1.11.6
'@webassemblyjs/utf8': 1.11.6
+ dev: true
/@webassemblyjs/wasm-gen@1.9.0:
resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==}
@@ -16175,6 +15059,7 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
+ dev: true
/@webassemblyjs/wasm-opt@1.11.6:
resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
@@ -16183,6 +15068,7 @@ packages:
'@webassemblyjs/helper-buffer': 1.11.6
'@webassemblyjs/wasm-gen': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
+ dev: true
/@webassemblyjs/wasm-opt@1.9.0:
resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==}
@@ -16202,6 +15088,7 @@ packages:
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
+ dev: true
/@webassemblyjs/wasm-parser@1.11.6:
resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
@@ -16212,6 +15099,7 @@ packages:
'@webassemblyjs/ieee754': 1.11.6
'@webassemblyjs/leb128': 1.11.6
'@webassemblyjs/utf8': 1.11.6
+ dev: true
/@webassemblyjs/wasm-parser@1.9.0:
resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==}
@@ -16240,12 +15128,14 @@ packages:
dependencies:
'@webassemblyjs/ast': 1.11.1
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/wast-printer@1.11.6:
resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
dependencies:
'@webassemblyjs/ast': 1.11.6
'@xtuc/long': 4.2.2
+ dev: true
/@webassemblyjs/wast-printer@1.9.0:
resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==}
@@ -16267,7 +15157,7 @@ packages:
event-target-polyfill: 0.0.3
form-data-encoder: 1.7.2
formdata-node: 4.3.2
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
undici: 5.22.1
web-streams-polyfill: 3.2.1
transitivePeerDependencies:
@@ -16297,7 +15187,7 @@ packages:
busboy: 1.6.0
form-data-encoder: 1.7.2
formdata-node: 4.3.2
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
undici: 5.22.1
web-streams-polyfill: 3.2.1
transitivePeerDependencies:
@@ -16554,9 +15444,11 @@ packages:
/@xtuc/ieee754@1.2.0:
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+ dev: true
/@xtuc/long@4.2.2:
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+ dev: true
/@zxing/text-encoding@0.9.0:
resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
@@ -16580,6 +15472,7 @@ packages:
dependencies:
mime-types: 2.1.35
negotiator: 0.6.3
+ dev: true
/acorn-globals@6.0.0:
resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==}
@@ -16588,19 +15481,21 @@ packages:
acorn-walk: 7.2.0
dev: true
- /acorn-import-assertions@1.8.0(acorn@8.10.0):
+ /acorn-import-assertions@1.8.0(acorn@8.11.3):
resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==}
peerDependencies:
acorn: ^8
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
+ dev: true
- /acorn-import-assertions@1.9.0(acorn@8.10.0):
+ /acorn-import-assertions@1.9.0(acorn@8.11.3):
resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
peerDependencies:
acorn: ^8
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
+ dev: true
/acorn-jsx@5.3.2(acorn@7.4.1):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -16617,6 +15512,13 @@ packages:
dependencies:
acorn: 8.10.0
+ /acorn-jsx@5.3.2(acorn@8.11.3):
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.11.3
+
/acorn-jsx@5.3.2(acorn@8.8.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -16655,6 +15557,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ /acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
/acorn@8.7.1:
resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
engines: {node: '>=0.4.0'}
@@ -16669,6 +15576,7 @@ packages:
/address@1.1.2:
resolution: {integrity: sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==}
engines: {node: '>= 0.12.0'}
+ dev: true
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
@@ -16684,6 +15592,7 @@ packages:
dependencies:
clean-stack: 2.2.0
indent-string: 4.0.0
+ dev: true
/airbnb-js-shims@2.2.1:
resolution: {integrity: sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==}
@@ -16715,32 +15624,13 @@ packages:
ajv: 6.12.6
dev: true
- /ajv-formats@2.1.1(ajv@8.11.0):
- resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
- peerDependencies:
- ajv: ^8.0.0
- peerDependenciesMeta:
- ajv:
- optional: true
- dependencies:
- ajv: 8.11.0
- dev: false
-
/ajv-keywords@3.5.2(ajv@6.12.6):
resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
peerDependencies:
ajv: ^6.9.1
dependencies:
ajv: 6.12.6
-
- /ajv-keywords@5.1.0(ajv@8.11.0):
- resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
- peerDependencies:
- ajv: ^8.8.2
- dependencies:
- ajv: 8.11.0
- fast-deep-equal: 3.1.3
- dev: false
+ dev: true
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -16750,43 +15640,6 @@ packages:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- /ajv@8.11.0:
- resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==}
- dependencies:
- fast-deep-equal: 3.1.3
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
- uri-js: 4.4.1
- dev: false
-
- /algoliasearch-helper@3.11.1(algoliasearch@4.14.2):
- resolution: {integrity: sha512-mvsPN3eK4E0bZG0/WlWJjeqe/bUD2KOEVOl0GyL/TGXn6wcpZU8NOuztGHCUKXkyg5gq6YzUakVTmnmSSO5Yiw==}
- peerDependencies:
- algoliasearch: '>= 3.1 < 6'
- dependencies:
- '@algolia/events': 4.0.1
- algoliasearch: 4.14.2
- dev: false
-
- /algoliasearch@4.14.2:
- resolution: {integrity: sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==}
- dependencies:
- '@algolia/cache-browser-local-storage': 4.14.2
- '@algolia/cache-common': 4.14.2
- '@algolia/cache-in-memory': 4.14.2
- '@algolia/client-account': 4.14.2
- '@algolia/client-analytics': 4.14.2
- '@algolia/client-common': 4.14.2
- '@algolia/client-personalization': 4.14.2
- '@algolia/client-search': 4.14.2
- '@algolia/logger-common': 4.14.2
- '@algolia/logger-console': 4.14.2
- '@algolia/requester-browser-xhr': 4.14.2
- '@algolia/requester-common': 4.14.2
- '@algolia/requester-node-http': 4.14.2
- '@algolia/transporter': 4.14.2
- dev: false
-
/analytics-node@6.2.0:
resolution: {integrity: sha512-NLU4tCHlWt0tzEaFQL7NIoWhq2KmQSmz0JvyS2lYn6fc4fEjTMSabhJUx8H1r5995FX8fE3rZ15uIHU6u+ovlQ==}
engines: {node: '>=4'}
@@ -16807,6 +15660,7 @@ packages:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
dependencies:
string-width: 4.2.3
+ dev: true
/ansi-colors@3.2.4:
resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==}
@@ -16829,6 +15683,7 @@ packages:
resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
engines: {'0': node >= 0.8.0}
hasBin: true
+ dev: true
/ansi-regex@2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
@@ -16842,6 +15697,7 @@ packages:
/ansi-regex@6.0.1:
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
engines: {node: '>=12'}
+ dev: true
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
@@ -16863,6 +15719,7 @@ packages:
/ansi-styles@6.1.0:
resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==}
engines: {node: '>=12'}
+ dev: true
/ansi-to-html@0.6.15:
resolution: {integrity: sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==}
@@ -16921,6 +15778,7 @@ packages:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
dependencies:
sprintf-js: 1.0.3
+ dev: true
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -16968,10 +15826,7 @@ packages:
/array-flatten@1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
-
- /array-flatten@2.1.2:
- resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==}
- dev: false
+ dev: true
/array-includes@3.1.5:
resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==}
@@ -17085,6 +15940,7 @@ packages:
/asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+ dev: true
/asn1.js@5.4.1:
resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==}
@@ -17146,6 +16002,7 @@ packages:
/at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
+ dev: true
/atob@2.1.2:
resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
@@ -17259,14 +16116,6 @@ packages:
is-retry-allowed: 1.2.0
dev: false
- /axios@0.25.0:
- resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
- dependencies:
- follow-redirects: 1.15.2
- transitivePeerDependencies:
- - debug
- dev: false
-
/axios@0.27.2:
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
dependencies:
@@ -17324,21 +16173,6 @@ packages:
webpack: 4.46.0
dev: true
- /babel-loader@8.3.0(@babel/core@7.21.4)(webpack@5.75.0):
- resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
- engines: {node: '>= 8.9'}
- peerDependencies:
- '@babel/core': ^7.0.0
- webpack: '>=2'
- dependencies:
- '@babel/core': 7.21.4
- find-cache-dir: 3.3.2
- loader-utils: 2.0.2
- make-dir: 3.1.0
- schema-utils: 2.7.1
- webpack: 5.75.0
- dev: false
-
/babel-plugin-add-react-displayname@0.0.5:
resolution: {integrity: sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==}
dev: true
@@ -17351,11 +16185,13 @@ packages:
'@babel/core': 7.12.9
'@babel/helper-plugin-utils': 7.10.4
'@mdx-js/util': 1.6.22
+ dev: true
/babel-plugin-dynamic-import-node@2.3.3:
resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
dependencies:
object.assign: 4.1.4
+ dev: true
/babel-plugin-emotion@10.2.2:
resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==}
@@ -17376,6 +16212,7 @@ packages:
resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==}
dependencies:
'@babel/helper-plugin-utils': 7.10.4
+ dev: true
/babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
@@ -17434,6 +16271,7 @@ packages:
semver: 6.3.0
transitivePeerDependencies:
- supports-color
+ dev: true
/babel-plugin-polyfill-corejs3@0.1.7(@babel/core@7.21.4):
resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==}
@@ -17469,6 +16307,7 @@ packages:
core-js-compat: 3.25.5
transitivePeerDependencies:
- supports-color
+ dev: true
/babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.20.2):
resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==}
@@ -17490,6 +16329,7 @@ packages:
'@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.21.4)
transitivePeerDependencies:
- supports-color
+ dev: true
/babel-plugin-react-docgen@4.2.1:
resolution: {integrity: sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==}
@@ -17580,6 +16420,7 @@ packages:
/bail@1.0.5:
resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==}
+ dev: true
/bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
@@ -17588,10 +16429,6 @@ packages:
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- /base16@1.0.0:
- resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==}
- dev: false
-
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -17608,10 +16445,6 @@ packages:
pascalcase: 0.1.1
dev: true
- /batch@0.6.1:
- resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==}
- dev: false
-
/bcryptjs@2.4.3:
resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==}
dev: false
@@ -17639,6 +16472,7 @@ packages:
/big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+ dev: true
/bignumber.js@9.1.0:
resolution: {integrity: sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==}
@@ -17704,18 +16538,11 @@ packages:
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
-
- /bonjour-service@1.0.11:
- resolution: {integrity: sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==}
- dependencies:
- array-flatten: 2.1.2
- dns-equal: 1.0.0
- fast-deep-equal: 3.1.3
- multicast-dns: 7.2.4
- dev: false
+ dev: true
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: true
/boxen@5.1.2:
resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==}
@@ -17729,20 +16556,7 @@ packages:
type-fest: 0.20.2
widest-line: 3.1.0
wrap-ansi: 7.0.0
-
- /boxen@6.2.1:
- resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- ansi-align: 3.0.1
- camelcase: 6.3.0
- chalk: 4.1.2
- cli-boxes: 3.0.0
- string-width: 5.1.2
- type-fest: 2.19.0
- widest-line: 4.0.1
- wrap-ansi: 8.0.1
- dev: false
+ dev: true
/bplist-parser@0.1.1:
resolution: {integrity: sha512-2AEM0FXy8ZxVLBuqX0hqt1gDwcnz2zygEkQ6zaD5Wko/sB9paUNwlpawrFtKeHUAQUOzjVy9AO4oeonqIHKA9Q==}
@@ -17911,6 +16725,7 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: true
/buffer-xor@1.0.3:
resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==}
@@ -17962,10 +16777,12 @@ packages:
/bytes@3.0.0:
resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
engines: {node: '>= 0.8'}
+ dev: true
/bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
+ dev: true
/c8@7.13.0:
resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==}
@@ -18051,19 +16868,6 @@ packages:
unset-value: 1.0.0
dev: true
- /cacheable-request@6.1.0:
- resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
- engines: {node: '>=8'}
- dependencies:
- clone-response: 1.0.2
- get-stream: 5.2.0
- http-cache-semantics: 4.1.0
- keyv: 3.1.0
- lowercase-keys: 2.0.0
- normalize-url: 4.5.1
- responselike: 1.0.2
- dev: false
-
/call-bind@1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
@@ -18083,6 +16887,7 @@ packages:
dependencies:
pascal-case: 3.1.2
tslib: 2.5.2
+ dev: true
/camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
@@ -18122,15 +16927,7 @@ packages:
/camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
-
- /caniuse-api@3.0.0:
- resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
- dependencies:
- browserslist: 4.21.10
- caniuse-lite: 1.0.30001521
- lodash.memoize: 4.1.2
- lodash.uniq: 4.5.0
- dev: false
+ dev: true
/caniuse-lite@1.0.30001418:
resolution: {integrity: sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==}
@@ -18175,6 +16972,7 @@ packages:
/ccount@1.1.0:
resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==}
+ dev: true
/ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -18277,6 +17075,7 @@ packages:
/character-entities-legacy@1.1.4:
resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
+ dev: true
/character-entities-legacy@3.0.0:
resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
@@ -18284,6 +17083,7 @@ packages:
/character-entities@1.2.4:
resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
+ dev: true
/character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
@@ -18291,6 +17091,7 @@ packages:
/character-reference-invalid@1.1.4:
resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
+ dev: true
/character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
@@ -18317,6 +17118,7 @@ packages:
domelementtype: 2.3.0
domhandler: 5.0.3
domutils: 3.0.1
+ dev: true
/cheerio@1.0.0-rc.12:
resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
@@ -18329,6 +17131,7 @@ packages:
htmlparser2: 8.0.1
parse5: 7.1.1
parse5-htmlparser2-tree-adapter: 7.0.0
+ dev: true
/chokidar@2.1.8:
resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}
@@ -18379,12 +17182,15 @@ packages:
/chrome-trace-event@1.0.3:
resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
engines: {node: '>=6.0'}
+ dev: true
/ci-info@2.0.0:
resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
+ dev: true
/ci-info@3.5.0:
resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==}
+ dev: true
/cipher-base@1.0.4:
resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==}
@@ -18415,6 +17221,7 @@ packages:
engines: {node: '>= 10.0'}
dependencies:
source-map: 0.6.1
+ dev: true
/clean-regexp@1.0.0:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
@@ -18426,15 +17233,12 @@ packages:
/clean-stack@2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
+ dev: true
/cli-boxes@2.2.1:
resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==}
engines: {node: '>=6'}
-
- /cli-boxes@3.0.0:
- resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
- engines: {node: '>=10'}
- dev: false
+ dev: true
/cli-cursor@3.1.0:
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
@@ -18455,6 +17259,7 @@ packages:
string-width: 4.2.3
optionalDependencies:
'@colors/colors': 1.5.0
+ dev: true
/cli-truncate@2.1.0:
resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
@@ -18512,12 +17317,7 @@ packages:
is-plain-object: 2.0.4
kind-of: 6.0.3
shallow-clone: 3.0.1
-
- /clone-response@1.0.2:
- resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==}
- dependencies:
- mimic-response: 1.0.1
- dev: false
+ dev: true
/clone@1.0.4:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
@@ -18538,7 +17338,7 @@ packages:
peerDependencies:
'@codemirror/language': 6.0.0
codemirror: ^5.65.3
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
dependencies:
'@codemirror/language': 6.0.0
codemirror: 5.65.9
@@ -18566,6 +17366,7 @@ packages:
/collapse-white-space@1.0.6:
resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==}
+ dev: true
/collection-visit@1.0.0:
resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
@@ -18597,27 +17398,19 @@ packages:
hasBin: true
dev: true
- /colord@2.9.2:
- resolution: {integrity: sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==}
- dev: false
-
/colorette@1.4.0:
resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==}
dev: true
/colorette@2.0.19:
resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
+ dev: true
/colors@1.2.5:
resolution: {integrity: sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==}
engines: {node: '>=0.1.90'}
dev: true
- /combine-promises@1.1.0:
- resolution: {integrity: sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==}
- engines: {node: '>=10'}
- dev: false
-
/combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -18626,6 +17419,7 @@ packages:
/comma-separated-tokens@1.0.8:
resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==}
+ dev: true
/comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -18644,28 +17438,21 @@ packages:
/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
requiresBuild: true
+ dev: true
/commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
- /commander@5.1.0:
- resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
- engines: {node: '>= 6'}
-
/commander@6.2.1:
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
engines: {node: '>= 6'}
dev: true
- /commander@7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- engines: {node: '>= 10'}
- dev: false
-
/commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
+ dev: true
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
@@ -18698,6 +17485,7 @@ packages:
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
+ dev: true
/compression@1.7.4:
resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
@@ -18712,6 +17500,7 @@ packages:
vary: 1.1.2
transitivePeerDependencies:
- supports-color
+ dev: true
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -18740,29 +17529,13 @@ packages:
well-known-symbols: 2.0.0
dev: true
- /configstore@5.0.1:
- resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
- engines: {node: '>=8'}
- dependencies:
- dot-prop: 5.3.0
- graceful-fs: 4.2.11
- make-dir: 3.1.0
- unique-string: 2.0.0
- write-file-atomic: 3.0.3
- xdg-basedir: 4.0.0
- dev: false
-
/confusing-browser-globals@1.0.11:
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
dev: true
- /connect-history-api-fallback@2.0.0:
- resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
- engines: {node: '>=0.8'}
- dev: false
-
/consola@2.15.3:
resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
+ dev: true
/console-browserify@1.2.0:
resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
@@ -18784,26 +17557,24 @@ packages:
resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
dev: true
- /content-disposition@0.5.2:
- resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==}
- engines: {node: '>= 0.6'}
- dev: false
-
/content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
dependencies:
safe-buffer: 5.2.1
+ dev: true
/content-type@1.0.4:
resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
engines: {node: '>= 0.6'}
+ dev: true
/convert-source-map@1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
/cookie-signature@1.0.6:
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
+ dev: true
/cookie@0.4.2:
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
@@ -18812,6 +17583,7 @@ packages:
/cookie@0.5.0:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
+ dev: true
/cookies-next@3.0.0:
resolution: {integrity: sha512-VaSrsjQJ8yHnGAGulV9zJxBr7hrKJ/O2mo87evsGIMF7XvJI3AJNguevotx0Gek1MMMBkZvZNWu2JueSNoSKEQ==}
@@ -18844,36 +17616,17 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /copy-text-to-clipboard@3.0.1:
- resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==}
- engines: {node: '>=12'}
- dev: false
-
/copy-to-clipboard@3.3.3:
resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
dependencies:
toggle-selection: 1.0.6
dev: false
- /copy-webpack-plugin@11.0.0(webpack@5.75.0):
- resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- webpack: ^5.1.0
- dependencies:
- fast-glob: 3.3.1
- glob-parent: 6.0.2
- globby: 13.1.2
- normalize-path: 3.0.0
- schema-utils: 4.0.0
- serialize-javascript: 6.0.0
- webpack: 5.75.0
- dev: false
-
/core-js-compat@3.25.5:
resolution: {integrity: sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==}
dependencies:
browserslist: 4.21.10
+ dev: true
/core-js-pure@3.25.5:
resolution: {integrity: sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==}
@@ -18882,6 +17635,7 @@ packages:
/core-js@3.25.5:
resolution: {integrity: sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==}
requiresBuild: true
+ dev: true
/core-js@3.30.2:
resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==}
@@ -19170,20 +17924,6 @@ packages:
randomfill: 1.0.4
dev: true
- /crypto-random-string@2.0.0:
- resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
- engines: {node: '>=8'}
- dev: false
-
- /css-declaration-sorter@6.3.1(postcss@8.4.29):
- resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==}
- engines: {node: ^10 || ^12 || >=14}
- peerDependencies:
- postcss: ^8.0.9
- dependencies:
- postcss: 8.4.29
- dev: false
-
/css-loader@3.6.0(webpack@4.46.0):
resolution: {integrity: sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==}
engines: {node: '>= 8.9.0'}
@@ -19243,62 +17983,10 @@ packages:
postcss-modules-values: 4.0.0(postcss@8.4.29)
postcss-value-parser: 4.2.0
schema-utils: 3.1.1
- semver: 7.5.1
+ semver: 7.5.4
webpack: 5.75.0
dev: true
- /css-loader@6.7.1(webpack@5.75.0):
- resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==}
- engines: {node: '>= 12.13.0'}
- peerDependencies:
- webpack: ^5.0.0
- dependencies:
- icss-utils: 5.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.29)
- postcss-modules-local-by-default: 4.0.0(postcss@8.4.29)
- postcss-modules-scope: 3.0.0(postcss@8.4.29)
- postcss-modules-values: 4.0.0(postcss@8.4.29)
- postcss-value-parser: 4.2.0
- semver: 7.5.1
- webpack: 5.75.0
- dev: false
-
- /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.0)(webpack@5.75.0):
- resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- '@parcel/css': '*'
- '@swc/css': '*'
- clean-css: '*'
- csso: '*'
- esbuild: '*'
- lightningcss: '*'
- webpack: ^5.0.0
- peerDependenciesMeta:
- '@parcel/css':
- optional: true
- '@swc/css':
- optional: true
- clean-css:
- optional: true
- csso:
- optional: true
- esbuild:
- optional: true
- lightningcss:
- optional: true
- dependencies:
- clean-css: 5.3.0
- cssnano: 5.1.13(postcss@8.4.29)
- jest-worker: 29.2.1
- postcss: 8.4.29
- schema-utils: 4.0.0
- serialize-javascript: 6.0.0
- source-map: 0.6.1
- webpack: 5.75.0
- dev: false
-
/css-select@4.3.0:
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
dependencies:
@@ -19307,6 +17995,7 @@ packages:
domhandler: 4.3.1
domutils: 2.8.0
nth-check: 2.1.1
+ dev: true
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
@@ -19316,14 +18005,7 @@ packages:
domhandler: 5.0.3
domutils: 3.0.1
nth-check: 2.1.1
-
- /css-tree@1.1.3:
- resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
- engines: {node: '>=8.0.0'}
- dependencies:
- mdn-data: 2.0.14
- source-map: 0.6.1
- dev: false
+ dev: true
/css-tree@2.1.0:
resolution: {integrity: sha512-PcysZRzToBbrpoUrZ9qfblRIRf8zbEAkU0AIpQFtgkFK0vSbzOmBCvdSAx2Zg7Xx5wiYJKUKk0NMP7kxevie/A==}
@@ -19336,6 +18018,7 @@ packages:
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
+ dev: true
/css.escape@1.5.1:
resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
@@ -19346,87 +18029,6 @@ packages:
engines: {node: '>=4'}
hasBin: true
- /cssnano-preset-advanced@5.3.8(postcss@8.4.29):
- resolution: {integrity: sha512-xUlLLnEB1LjpEik+zgRNlk8Y/koBPPtONZjp7JKbXigeAmCrFvq9H0pXW5jJV45bQWAlmJ0sKy+IMr0XxLYQZg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- autoprefixer: 10.4.15(postcss@8.4.29)
- cssnano-preset-default: 5.2.12(postcss@8.4.29)
- postcss: 8.4.29
- postcss-discard-unused: 5.1.0(postcss@8.4.29)
- postcss-merge-idents: 5.1.1(postcss@8.4.29)
- postcss-reduce-idents: 5.2.0(postcss@8.4.29)
- postcss-zindex: 5.1.0(postcss@8.4.29)
- dev: false
-
- /cssnano-preset-default@5.2.12(postcss@8.4.29):
- resolution: {integrity: sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- css-declaration-sorter: 6.3.1(postcss@8.4.29)
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-calc: 8.2.4(postcss@8.4.29)
- postcss-colormin: 5.3.0(postcss@8.4.29)
- postcss-convert-values: 5.1.2(postcss@8.4.29)
- postcss-discard-comments: 5.1.2(postcss@8.4.29)
- postcss-discard-duplicates: 5.1.0(postcss@8.4.29)
- postcss-discard-empty: 5.1.1(postcss@8.4.29)
- postcss-discard-overridden: 5.1.0(postcss@8.4.29)
- postcss-merge-longhand: 5.1.6(postcss@8.4.29)
- postcss-merge-rules: 5.1.2(postcss@8.4.29)
- postcss-minify-font-values: 5.1.0(postcss@8.4.29)
- postcss-minify-gradients: 5.1.1(postcss@8.4.29)
- postcss-minify-params: 5.1.3(postcss@8.4.29)
- postcss-minify-selectors: 5.2.1(postcss@8.4.29)
- postcss-normalize-charset: 5.1.0(postcss@8.4.29)
- postcss-normalize-display-values: 5.1.0(postcss@8.4.29)
- postcss-normalize-positions: 5.1.1(postcss@8.4.29)
- postcss-normalize-repeat-style: 5.1.1(postcss@8.4.29)
- postcss-normalize-string: 5.1.0(postcss@8.4.29)
- postcss-normalize-timing-functions: 5.1.0(postcss@8.4.29)
- postcss-normalize-unicode: 5.1.0(postcss@8.4.29)
- postcss-normalize-url: 5.1.0(postcss@8.4.29)
- postcss-normalize-whitespace: 5.1.1(postcss@8.4.29)
- postcss-ordered-values: 5.1.3(postcss@8.4.29)
- postcss-reduce-initial: 5.1.0(postcss@8.4.29)
- postcss-reduce-transforms: 5.1.0(postcss@8.4.29)
- postcss-svgo: 5.1.0(postcss@8.4.29)
- postcss-unique-selectors: 5.1.1(postcss@8.4.29)
- dev: false
-
- /cssnano-utils@3.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /cssnano@5.1.13(postcss@8.4.29):
- resolution: {integrity: sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- cssnano-preset-default: 5.2.12(postcss@8.4.29)
- lilconfig: 2.1.0
- postcss: 8.4.29
- yaml: 1.10.2
- dev: false
-
- /csso@4.2.0:
- resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
- engines: {node: '>=8.0.0'}
- dependencies:
- css-tree: 1.1.3
- dev: false
-
/cssom@0.3.8:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
dev: true
@@ -19497,311 +18099,6 @@ packages:
resolution: {integrity: sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==}
dev: true
- /d3-array@3.1.6:
- resolution: {integrity: sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==}
- engines: {node: '>=12'}
- dependencies:
- internmap: 2.0.3
- dev: false
-
- /d3-array@3.2.1:
- resolution: {integrity: sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ==}
- engines: {node: '>=12'}
- dependencies:
- internmap: 2.0.3
- dev: false
-
- /d3-axis@3.0.0:
- resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-brush@3.0.0:
- resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
- dev: false
-
- /d3-chord@3.0.1:
- resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
- engines: {node: '>=12'}
- dependencies:
- d3-path: 3.0.1
- dev: false
-
- /d3-color@3.1.0:
- resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-contour@3.0.1:
- resolution: {integrity: sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- dev: false
-
- /d3-contour@4.0.0:
- resolution: {integrity: sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.2.1
- dev: false
-
- /d3-delaunay@6.0.2:
- resolution: {integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==}
- engines: {node: '>=12'}
- dependencies:
- delaunator: 5.0.0
- dev: false
-
- /d3-dispatch@3.0.1:
- resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-drag@3.0.0:
- resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
- engines: {node: '>=12'}
- dependencies:
- d3-dispatch: 3.0.1
- d3-selection: 3.0.0
- dev: false
-
- /d3-dsv@3.0.1:
- resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
- engines: {node: '>=12'}
- hasBin: true
- dependencies:
- commander: 7.2.0
- iconv-lite: 0.6.3
- rw: 1.3.3
- dev: false
-
- /d3-ease@3.0.1:
- resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-fetch@3.0.1:
- resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
- engines: {node: '>=12'}
- dependencies:
- d3-dsv: 3.0.1
- dev: false
-
- /d3-force@3.0.0:
- resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
- engines: {node: '>=12'}
- dependencies:
- d3-dispatch: 3.0.1
- d3-quadtree: 3.0.1
- d3-timer: 3.0.1
- dev: false
-
- /d3-format@3.1.0:
- resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-geo@3.0.1:
- resolution: {integrity: sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- dev: false
-
- /d3-hierarchy@3.1.2:
- resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-interpolate@3.0.1:
- resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
- engines: {node: '>=12'}
- dependencies:
- d3-color: 3.1.0
- dev: false
-
- /d3-path@3.0.1:
- resolution: {integrity: sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-polygon@3.0.1:
- resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-quadtree@3.0.1:
- resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-random@3.0.1:
- resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-scale-chromatic@3.0.0:
- resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==}
- engines: {node: '>=12'}
- dependencies:
- d3-color: 3.1.0
- d3-interpolate: 3.0.1
- dev: false
-
- /d3-scale@4.0.2:
- resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- d3-format: 3.1.0
- d3-interpolate: 3.0.1
- d3-time: 3.0.0
- d3-time-format: 4.1.0
- dev: false
-
- /d3-selection@3.0.0:
- resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-shape@3.1.0:
- resolution: {integrity: sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-path: 3.0.1
- dev: false
-
- /d3-time-format@4.1.0:
- resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
- engines: {node: '>=12'}
- dependencies:
- d3-time: 3.0.0
- dev: false
-
- /d3-time@3.0.0:
- resolution: {integrity: sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- dev: false
-
- /d3-timer@3.0.1:
- resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
- engines: {node: '>=12'}
- dev: false
-
- /d3-transition@3.0.1(d3-selection@3.0.0):
- resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
- engines: {node: '>=12'}
- peerDependencies:
- d3-selection: 2 - 3
- dependencies:
- d3-color: 3.1.0
- d3-dispatch: 3.0.1
- d3-ease: 3.0.1
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-timer: 3.0.1
- dev: false
-
- /d3-zoom@3.0.0:
- resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
- engines: {node: '>=12'}
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
- dev: false
-
- /d3@7.4.4:
- resolution: {integrity: sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- d3-axis: 3.0.0
- d3-brush: 3.0.0
- d3-chord: 3.0.1
- d3-color: 3.1.0
- d3-contour: 3.0.1
- d3-delaunay: 6.0.2
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-dsv: 3.0.1
- d3-ease: 3.0.1
- d3-fetch: 3.0.1
- d3-force: 3.0.0
- d3-format: 3.1.0
- d3-geo: 3.0.1
- d3-hierarchy: 3.1.2
- d3-interpolate: 3.0.1
- d3-path: 3.0.1
- d3-polygon: 3.0.1
- d3-quadtree: 3.0.1
- d3-random: 3.0.1
- d3-scale: 4.0.2
- d3-scale-chromatic: 3.0.0
- d3-selection: 3.0.0
- d3-shape: 3.1.0
- d3-time: 3.0.0
- d3-time-format: 4.1.0
- d3-timer: 3.0.1
- d3-transition: 3.0.1(d3-selection@3.0.0)
- d3-zoom: 3.0.0
- dev: false
-
- /d3@7.8.0:
- resolution: {integrity: sha512-a5rNemRadWkEfqnY5NsD4RdCP9vn8EIJ4I5Rl14U0uKH1SXqcNmk/h9aGaAF1O98lz6L9M0IeUcuPa9GUYbI5A==}
- engines: {node: '>=12'}
- dependencies:
- d3-array: 3.1.6
- d3-axis: 3.0.0
- d3-brush: 3.0.0
- d3-chord: 3.0.1
- d3-color: 3.1.0
- d3-contour: 4.0.0
- d3-delaunay: 6.0.2
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-dsv: 3.0.1
- d3-ease: 3.0.1
- d3-fetch: 3.0.1
- d3-force: 3.0.0
- d3-format: 3.1.0
- d3-geo: 3.0.1
- d3-hierarchy: 3.1.2
- d3-interpolate: 3.0.1
- d3-path: 3.0.1
- d3-polygon: 3.0.1
- d3-quadtree: 3.0.1
- d3-random: 3.0.1
- d3-scale: 4.0.2
- d3-scale-chromatic: 3.0.0
- d3-selection: 3.0.0
- d3-shape: 3.1.0
- d3-time: 3.0.0
- d3-time-format: 4.1.0
- d3-timer: 3.0.1
- d3-transition: 3.0.1(d3-selection@3.0.0)
- d3-zoom: 3.0.0
- dev: false
-
- /dagre-d3-es@7.0.6:
- resolution: {integrity: sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==}
- dependencies:
- d3: 7.8.0
- lodash-es: 4.17.21
- dev: false
-
/damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@@ -19917,13 +18214,6 @@ packages:
engines: {node: '>=0.10'}
dev: true
- /decompress-response@3.3.0:
- resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==}
- engines: {node: '>=4'}
- dependencies:
- mimic-response: 1.0.1
- dev: false
-
/dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
dev: true
@@ -19955,17 +18245,13 @@ packages:
which-typed-array: 1.1.9
dev: true
- /deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
- dev: false
-
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
/deepmerge@4.2.2:
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
engines: {node: '>=0.10.0'}
+ dev: true
/deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
@@ -19984,26 +18270,16 @@ packages:
dev: true
optional: true
- /default-gateway@6.0.3:
- resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
- engines: {node: '>= 10'}
- dependencies:
- execa: 5.1.1
- dev: false
-
/defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
dependencies:
clone: 1.0.4
dev: true
- /defer-to-connect@1.1.3:
- resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
- dev: false
-
/define-lazy-prop@2.0.0:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
engines: {node: '>=8'}
+ dev: true
/define-properties@1.1.4:
resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
@@ -20041,26 +18317,6 @@ packages:
resolution: {integrity: sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw==}
dev: true
- /del@6.1.1:
- resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
- engines: {node: '>=10'}
- dependencies:
- globby: 11.1.0
- graceful-fs: 4.2.11
- is-glob: 4.0.3
- is-path-cwd: 2.2.0
- is-path-inside: 3.0.3
- p-map: 4.0.0
- rimraf: 3.0.2
- slash: 3.0.0
- dev: false
-
- /delaunator@5.0.0:
- resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==}
- dependencies:
- robust-predicates: 3.0.1
- dev: false
-
/delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -20069,14 +18325,10 @@ packages:
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
dev: true
- /depd@1.1.2:
- resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
- engines: {node: '>= 0.6'}
- dev: false
-
/depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
+ dev: true
/dependency-graph@0.11.0:
resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
@@ -20102,11 +18354,13 @@ packages:
/destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ dev: true
/detab@2.0.4:
resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==}
dependencies:
repeat-string: 1.6.1
+ dev: true
/detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
@@ -20117,10 +18371,6 @@ packages:
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
dev: false
- /detect-node@2.1.0:
- resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
- dev: false
-
/detect-package-manager@2.0.1:
resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==}
engines: {node: '>=12'}
@@ -20128,17 +18378,6 @@ packages:
execa: 5.1.1
dev: true
- /detect-port-alt@1.1.6:
- resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==}
- engines: {node: '>= 4.2.1'}
- hasBin: true
- dependencies:
- address: 1.1.2
- debug: 2.6.9
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/detect-port@1.3.0:
resolution: {integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==}
engines: {node: '>= 4.2.1'}
@@ -20148,6 +18387,7 @@ packages:
debug: 2.6.9
transitivePeerDependencies:
- supports-color
+ dev: true
/detective@5.2.1:
resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==}
@@ -20204,17 +18444,6 @@ packages:
/dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
- /dns-equal@1.0.0:
- resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==}
- dev: false
-
- /dns-packet@5.3.1:
- resolution: {integrity: sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==}
- engines: {node: '>=6'}
- dependencies:
- '@leichtgewicht/ip-codec': 2.0.3
- dev: false
-
/doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -20227,12 +18456,6 @@ packages:
dependencies:
esutils: 2.0.3
- /docusaurus-plugin-image-zoom@0.1.1:
- resolution: {integrity: sha512-cJXo5TKh9OR1gE4B5iS5ovLWYYDFwatqRm00iXFPOaShZG99l5tgkDKgbQPAwSL9wg4I+wz3aMwkOtDhMIpKDQ==}
- dependencies:
- medium-zoom: 1.0.6
- dev: false
-
/dom-accessibility-api@0.5.14:
resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==}
dev: true
@@ -20241,6 +18464,7 @@ packages:
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
dependencies:
utila: 0.4.0
+ dev: true
/dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
@@ -20262,6 +18486,7 @@ packages:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.4.0
+ dev: true
/dom-walk@0.1.2:
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
@@ -20300,10 +18525,7 @@ packages:
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
-
- /dompurify@2.4.1:
- resolution: {integrity: sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==}
- dev: false
+ dev: true
/domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
@@ -20318,19 +18540,14 @@ packages:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
+ dev: true
/dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
dependencies:
no-case: 3.0.4
tslib: 2.5.2
-
- /dot-prop@5.3.0:
- resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
- engines: {node: '>=8'}
- dependencies:
- is-obj: 2.0.0
- dev: false
+ dev: true
/dotenv-expand@5.1.0:
resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==}
@@ -20359,12 +18576,9 @@ packages:
readable-stream: 2.3.7
dev: false
- /duplexer3@0.1.4:
- resolution: {integrity: sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==}
- dev: false
-
/duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
+ dev: true
/duplexify@3.7.1:
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
@@ -20392,6 +18606,7 @@ packages:
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
/ecdsa-sig-formatter@1.0.11:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
@@ -20400,6 +18615,7 @@ packages:
/ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ dev: true
/electron-to-chromium@1.4.402:
resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==}
@@ -20429,14 +18645,12 @@ packages:
/emojis-list@3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
-
- /emoticon@3.2.0:
- resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==}
- dev: false
+ dev: true
/encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
+ dev: true
/encoding@0.1.13:
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
@@ -20501,10 +18715,12 @@ packages:
/entities@3.0.1:
resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
engines: {node: '>=0.12'}
+ dev: true
/entities@4.4.0:
resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
engines: {node: '>=0.12'}
+ dev: true
/errno@0.1.8:
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
@@ -20572,9 +18788,11 @@ packages:
/es-module-lexer@0.9.3:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
+ dev: true
/es-module-lexer@1.2.1:
resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==}
+ dev: true
/es-shim-unscopables@1.0.0:
resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
@@ -20724,13 +18942,9 @@ packages:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
- /escape-goat@2.1.1:
- resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==}
- engines: {node: '>=8'}
- dev: false
-
/escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: true
/escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
@@ -20747,7 +18961,6 @@ packages:
/escape-string-regexp@5.0.0:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
- dev: false
/escodegen@1.14.3:
resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==}
@@ -21011,7 +19224,7 @@ packages:
eslint: 8.48.0
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.43.0)(eslint@8.48.0)
- fast-glob: 3.3.1
+ fast-glob: 3.3.2
get-tsconfig: 4.7.2
is-core-module: 2.13.0
is-glob: 4.0.3
@@ -21779,7 +19992,7 @@ packages:
read-pkg-up: 7.0.1
regexp-tree: 0.1.24
safe-regex: 2.1.1
- semver: 7.5.4
+ semver: 7.5.1
strip-indent: 3.0.0
dev: true
@@ -21794,7 +20007,7 @@ packages:
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.13
- semver: 7.5.4
+ semver: 7.5.1
vue-eslint-parser: 8.3.0(eslint@8.25.0)
transitivePeerDependencies:
- supports-color
@@ -21847,6 +20060,7 @@ packages:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
+ dev: true
/eslint-scope@7.1.1:
resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
@@ -22130,8 +20344,8 @@ packages:
resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.8.2
- acorn-jsx: 5.3.2(acorn@8.8.2)
+ acorn: 8.11.3
+ acorn-jsx: 5.3.2(acorn@8.11.3)
eslint-visitor-keys: 3.4.1
/espree@9.6.1:
@@ -22198,26 +20412,20 @@ packages:
/estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ /estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+ dependencies:
+ '@types/estree': 1.0.1
+ dev: true
+
/esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
- /eta@2.0.0:
- resolution: {integrity: sha512-NqE7S2VmVwgMS8yBxsH4VgNQjNjLq1gfGU0u9I6Cjh468nPRMoDfGdK9n1p/3Dvsw3ebklDkZsFAnKJ9sefjBA==}
- engines: {node: '>=6.0.0'}
- dev: false
-
/etag@1.8.1:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
-
- /eval@0.1.8:
- resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
- engines: {node: '>= 0.8'}
- dependencies:
- '@types/node': 18.16.14
- require-like: 0.1.2
- dev: false
+ dev: true
/event-target-polyfill@0.0.3:
resolution: {integrity: sha512-ZMc6UuvmbinrCk4RzGyVmRyIsAyxMRlp4CqSrcQRO8Dy0A9ldbiRy5kdtBj4OtP7EClGdqGfIqo9JmOClMsGLQ==}
@@ -22226,10 +20434,6 @@ packages:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
- /eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
- dev: false
-
/events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
@@ -22271,6 +20475,7 @@ packages:
onetime: 5.1.2
signal-exit: 3.0.7
strip-final-newline: 2.0.0
+ dev: true
/execa@6.1.0:
resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
@@ -22350,12 +20555,14 @@ packages:
vary: 1.1.2
transitivePeerDependencies:
- supports-color
+ dev: true
/extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
dependencies:
is-extendable: 0.1.1
+ dev: true
/extend-shallow@3.0.2:
resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
@@ -22470,6 +20677,16 @@ packages:
merge2: 1.4.1
micromatch: 4.0.5
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+
/fast-json-parse@1.0.3:
resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==}
dev: true
@@ -22503,35 +20720,22 @@ packages:
resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==}
dependencies:
punycode: 1.4.1
+ dev: true
/fastq@1.13.0:
resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
dependencies:
reusify: 1.0.4
- /faye-websocket@0.11.4:
- resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
- engines: {node: '>=0.8.0'}
- dependencies:
- websocket-driver: 0.7.4
- dev: false
-
/fb-watchman@2.0.1:
resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==}
dependencies:
bser: 2.1.1
dev: true
- /fbemitter@3.0.0:
- resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==}
- dependencies:
- fbjs: 3.0.4(encoding@0.1.13)
- transitivePeerDependencies:
- - encoding
- dev: false
-
/fbjs-css-vars@1.0.2:
resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==}
+ dev: true
/fbjs@3.0.4(encoding@0.1.13):
resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==}
@@ -22545,13 +20749,7 @@ packages:
ua-parser-js: 0.7.31
transitivePeerDependencies:
- encoding
-
- /feed@4.2.2:
- resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==}
- engines: {node: '>=0.4.0'}
- dependencies:
- xml-js: 1.6.11
- dev: false
+ dev: true
/fetch-blob@3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
@@ -22599,28 +20797,6 @@ packages:
webpack: 4.46.0
dev: true
- /file-loader@6.2.0(webpack@5.75.0):
- resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
- dependencies:
- loader-utils: 2.0.4
- schema-utils: 3.1.1
- webpack: 5.75.0
- dev: false
-
- /file-loader@6.2.0(webpack@5.83.1):
- resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
- dependencies:
- loader-utils: 2.0.4
- schema-utils: 3.1.1
- webpack: 5.83.1
- dev: false
-
/file-selector@0.2.4:
resolution: {integrity: sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA==}
engines: {node: '>= 10'}
@@ -22648,11 +20824,6 @@ packages:
dev: true
optional: true
- /filesize@8.0.7:
- resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==}
- engines: {node: '>= 0.4.0'}
- dev: false
-
/fill-range@4.0.0:
resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
engines: {node: '>=0.10.0'}
@@ -22682,6 +20853,7 @@ packages:
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
+ dev: true
/find-cache-dir@2.1.0:
resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==}
@@ -22719,6 +20891,7 @@ packages:
engines: {node: '>=6'}
dependencies:
locate-path: 3.0.0
+ dev: true
/find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
@@ -22758,18 +20931,6 @@ packages:
readable-stream: 2.3.7
dev: true
- /flux@4.0.3(react@18.2.0):
- resolution: {integrity: sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==}
- peerDependencies:
- react: ^15.0.2 || ^16.0.0 || ^17.0.0
- dependencies:
- fbemitter: 3.0.0
- fbjs: 3.0.4(encoding@0.1.13)
- react: 18.2.0
- transitivePeerDependencies:
- - encoding
- dev: false
-
/focus-lock@0.8.1:
resolution: {integrity: sha512-/LFZOIo82WDsyyv7h7oc0MJF9ACOvDRdx9rWPZ2pgMfNWu/z8hQDBtOchuB/0BVLmuFOZjV02YwUVzNsWx/EzA==}
engines: {node: '>=10'}
@@ -22834,38 +20995,6 @@ packages:
- supports-color
dev: true
- /fork-ts-checker-webpack-plugin@6.5.1(eslint@8.26.0)(typescript@4.8.4)(webpack@5.75.0):
- resolution: {integrity: sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==}
- engines: {node: '>=10', yarn: '>=1.0.0'}
- peerDependencies:
- eslint: '>= 6'
- typescript: '>= 2.7'
- vue-template-compiler: '*'
- webpack: '>= 4'
- peerDependenciesMeta:
- eslint:
- optional: true
- vue-template-compiler:
- optional: true
- dependencies:
- '@babel/code-frame': 7.21.4
- '@types/json-schema': 7.0.11
- chalk: 4.1.2
- chokidar: 3.5.3
- cosmiconfig: 6.0.0
- deepmerge: 4.2.2
- eslint: 8.26.0
- fs-extra: 9.1.0
- glob: 7.2.3
- memfs: 3.4.1
- minimatch: 3.1.2
- schema-utils: 2.7.0
- semver: 7.5.4
- tapable: 1.1.3
- typescript: 4.8.4
- webpack: 5.75.0
- dev: false
-
/fork-ts-checker-webpack-plugin@6.5.1(eslint@8.28.0)(typescript@4.9.5)(webpack@4.46.0):
resolution: {integrity: sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==}
engines: {node: '>=10', yarn: '>=1.0.0'}
@@ -22881,7 +21010,7 @@ packages:
optional: true
dependencies:
'@babel/code-frame': 7.21.4
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
chalk: 4.1.2
chokidar: 3.5.3
cosmiconfig: 6.0.0
@@ -22913,7 +21042,7 @@ packages:
optional: true
dependencies:
'@babel/code-frame': 7.21.4
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
chalk: 4.1.2
chokidar: 3.5.3
cosmiconfig: 6.0.0
@@ -22924,7 +21053,7 @@ packages:
memfs: 3.4.1
minimatch: 3.1.2
schema-utils: 2.7.0
- semver: 7.5.1
+ semver: 7.5.4
tapable: 1.1.3
typescript: 4.9.5
webpack: 5.75.0
@@ -22965,6 +21094,7 @@ packages:
/forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
+ dev: true
/fraction.js@4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
@@ -23003,6 +21133,7 @@ packages:
/fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
+ dev: true
/from2@2.3.0:
resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==}
@@ -23018,6 +21149,7 @@ packages:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.0
+ dev: true
/fs-extra@11.1.1:
resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
@@ -23054,6 +21186,7 @@ packages:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.0
+ dev: true
/fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
@@ -23064,6 +21197,7 @@ packages:
/fs-monkey@1.0.3:
resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==}
+ dev: true
/fs-write-stream-atomic@1.0.10:
resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==}
@@ -23178,10 +21312,6 @@ packages:
engines: {node: '>=6'}
dev: false
- /get-own-enumerable-property-symbols@3.0.2:
- resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
- dev: false
-
/get-package-type@0.1.0:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: '>=8.0.0'}
@@ -23199,17 +21329,12 @@ packages:
engines: {node: '>=6'}
dependencies:
pump: 3.0.0
-
- /get-stream@5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- engines: {node: '>=8'}
- dependencies:
- pump: 3.0.0
- dev: false
+ dev: true
/get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
+ dev: true
/get-symbol-description@1.0.0:
resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
@@ -23231,6 +21356,7 @@ packages:
/github-slugger@1.4.0:
resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==}
+ dev: true
/glob-parent@3.1.0:
resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==}
@@ -23317,29 +21443,6 @@ packages:
minimatch: 5.1.1
once: 1.4.0
- /global-dirs@3.0.0:
- resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==}
- engines: {node: '>=10'}
- dependencies:
- ini: 2.0.0
- dev: false
-
- /global-modules@2.0.0:
- resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
- engines: {node: '>=6'}
- dependencies:
- global-prefix: 3.0.0
- dev: false
-
- /global-prefix@3.0.0:
- resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
- engines: {node: '>=6'}
- dependencies:
- ini: 1.3.8
- kind-of: 6.0.3
- which: 1.3.1
- dev: false
-
/global@4.4.0:
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
dependencies:
@@ -23385,17 +21488,6 @@ packages:
merge2: 1.4.1
slash: 3.0.0
- /globby@13.1.2:
- resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- dir-glob: 3.0.1
- fast-glob: 3.3.1
- ignore: 5.2.4
- merge2: 1.4.1
- slash: 4.0.0
- dev: false
-
/globby@9.2.0:
resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==}
engines: {node: '>=6'}
@@ -23480,30 +21572,11 @@ packages:
get-intrinsic: 1.1.3
dev: true
- /got@9.6.0:
- resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
- engines: {node: '>=8.6'}
- dependencies:
- '@sindresorhus/is': 0.14.0
- '@szmarczak/http-timer': 1.1.2
- '@types/keyv': 3.1.4
- '@types/responselike': 1.0.0
- cacheable-request: 6.1.0
- decompress-response: 3.3.0
- duplexer3: 0.1.4
- get-stream: 4.1.0
- lowercase-keys: 1.0.1
- mimic-response: 1.0.1
- p-cancelable: 1.1.0
- to-readable-stream: 1.0.0
- url-parse-lax: 3.0.0
- dev: false
-
/gqty@2.3.0(graphql@16.7.1):
resolution: {integrity: sha512-2YnbUHMYsWRB/J2Rc8ttVTcIEwLs1v0XC8owc+gCxoGw5k6Xjfp8OgB0EjuPos8xQhgqX8rZ14S48GAFLP+WBA==}
engines: {node: ^12.20.0 || >=14.13.0}
peerDependencies:
- graphql: 16.7.1
+ graphql: '*'
peerDependenciesMeta:
graphql:
optional: true
@@ -23524,7 +21597,7 @@ packages:
/graphiql@3.0.0(@codemirror/language@6.0.0)(@types/node@16.18.11)(@types/react-dom@18.2.6)(@types/react@18.2.14)(graphql-ws@5.11.2)(graphql@16.7.1)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-MmXcEIcku4gLc+wk23yAe07B0ZHTgRFNsPCnRJXBVkO5sgdfvtJ98J0zczz0GA52DG5XTQ6mKXPJHNysj4ePQw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
react: ^16.8.0 || ^17 || ^18
react-dom: ^16.8.0 || ^17 || ^18
dependencies:
@@ -23547,7 +21620,7 @@ packages:
resolution: {integrity: sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA==}
engines: {node: '>= 10.0.0'}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/graphql-file-loader': 7.5.0(graphql@16.7.1)
'@graphql-tools/json-file-loader': 7.4.1(graphql@16.7.1)
@@ -23577,7 +21650,7 @@ packages:
resolution: {integrity: sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA==}
engines: {node: '>= 10.0.0'}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/graphql-file-loader': 7.5.0(graphql@16.7.1)
'@graphql-tools/json-file-loader': 7.4.1(graphql@16.7.1)
@@ -23607,7 +21680,7 @@ packages:
resolution: {integrity: sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA==}
engines: {node: '>= 10.0.0'}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
'@graphql-tools/graphql-file-loader': 7.5.0(graphql@16.7.1)
'@graphql-tools/json-file-loader': 7.4.1(graphql@16.7.1)
@@ -23639,7 +21712,7 @@ packages:
peerDependencies:
cosmiconfig-toml-loader: ^1.0.0
cosmiconfig-typescript-loader: ^4.0.0
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
peerDependenciesMeta:
cosmiconfig-toml-loader:
optional: true
@@ -23671,7 +21744,7 @@ packages:
peerDependencies:
cosmiconfig-toml-loader: ^1.0.0
cosmiconfig-typescript-loader: ^4.0.0
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
peerDependenciesMeta:
cosmiconfig-toml-loader:
optional: true
@@ -23701,7 +21774,7 @@ packages:
resolution: {integrity: sha512-xkawYMJeoNYGhT+SpSH3c2qf6HpGHQ/duDmrseVHBpVCrXAiGnliXGSCC4jyMGgZQ05GytsZ12p0nUo7s6lSSw==}
hasBin: true
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.5.0 || ^16.0.0
dependencies:
graphql: 16.7.1
nullthrows: 1.1.1
@@ -23711,7 +21784,7 @@ packages:
/graphql-request@4.3.0(graphql@16.7.1):
resolution: {integrity: sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow==}
peerDependencies:
- graphql: 16.7.1
+ graphql: 14 - 16
dependencies:
cross-fetch: 3.1.5(encoding@0.1.13)
extract-files: 9.0.0
@@ -23724,7 +21797,7 @@ packages:
/graphql-request@5.1.0(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: 14 - 16
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1)
cross-fetch: 3.1.5(encoding@0.1.13)
@@ -23737,7 +21810,7 @@ packages:
/graphql-request@6.0.0(encoding@0.1.13)(graphql@16.7.1):
resolution: {integrity: sha512-2BmHTuglonjZvmNVw6ZzCfFlW/qkIPds0f+Qdi/Lvjsl3whJg2uvHmSvHnLWhUTEw6zcxPYAHiZoPvSVKOZ7Jw==}
peerDependencies:
- graphql: 16.7.1
+ graphql: 14 - 16
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.7.1)
cross-fetch: 3.1.5(encoding@0.1.13)
@@ -23750,7 +21823,7 @@ packages:
resolution: {integrity: sha512-XrMwSim4xJ5n1UdT3YMJh9uT3oB/th5jR5bIMJvYxmgq/rGDkfXNtCRSL/+dLMHxGM0thYPfIZDua1+aQlKBMA==}
engines: {node: '>=10'}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 16.7.1
tslib: 2.4.1
@@ -23760,7 +21833,7 @@ packages:
resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==}
engines: {node: '>=10'}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 16.7.1
tslib: 2.5.2
@@ -23769,7 +21842,7 @@ packages:
resolution: {integrity: sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==}
engines: {node: '>=10'}
peerDependencies:
- graphql: 16.7.1
+ graphql: '>=0.11 <=16'
dependencies:
graphql: 16.7.1
@@ -23777,7 +21850,7 @@ packages:
resolution: {integrity: sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ==}
engines: {node: '>=10'}
peerDependencies:
- graphql: 16.7.1
+ graphql: '>=0.11 <=16'
dependencies:
graphql: 16.7.1
dev: true
@@ -23785,7 +21858,7 @@ packages:
/graphql-yoga@3.4.0(@types/node@18.11.9)(graphql@16.7.1):
resolution: {integrity: sha512-Cjx60mmpoK1qL/sLdM285VdAOQyJBKLuC6oMZrfO8QleneNtu0nDOM6Efv5m0IrRYSONEMtIYA7eNr0u/cCBfg==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^15.2.0 || ^16.0.0
dependencies:
'@envelop/core': 3.0.4
'@envelop/parser-cache': 5.0.4(@envelop/core@3.0.4)(graphql@16.7.1)
@@ -23808,16 +21881,6 @@ packages:
resolution: {integrity: sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
- /gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
- dependencies:
- js-yaml: 3.14.1
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
- dev: false
-
/gtoken@6.1.2:
resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==}
engines: {node: '>=12.0.0'}
@@ -23835,15 +21898,12 @@ packages:
engines: {node: '>=10'}
dependencies:
duplexer: 0.1.2
+ dev: true
/hamt_plus@1.0.2:
resolution: {integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==}
dev: false
- /handle-thing@2.0.1:
- resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
- dev: false
-
/handlebars@4.7.7:
resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
engines: {node: '>=0.4.7'}
@@ -23930,11 +21990,6 @@ packages:
kind-of: 4.0.0
dev: true
- /has-yarn@2.1.0:
- resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==}
- engines: {node: '>=8'}
- dev: false
-
/has@1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
@@ -23967,6 +22022,7 @@ packages:
style-to-object: 0.3.0
unist-util-is: 4.1.0
web-namespaces: 1.1.4
+ dev: true
/hast-util-from-parse5@6.0.1:
resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==}
@@ -23977,6 +22033,7 @@ packages:
vfile: 4.2.1
vfile-location: 3.2.0
web-namespaces: 1.1.4
+ dev: true
/hast-util-is-element@3.0.0:
resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
@@ -23986,6 +22043,7 @@ packages:
/hast-util-parse-selector@2.2.5:
resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==}
+ dev: true
/hast-util-raw@6.0.1:
resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==}
@@ -24000,6 +22058,7 @@ packages:
web-namespaces: 1.1.4
xtend: 4.0.2
zwitch: 1.0.5
+ dev: true
/hast-util-to-jsx-runtime@2.3.0:
resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==}
@@ -24031,6 +22090,7 @@ packages:
web-namespaces: 1.1.4
xtend: 4.0.2
zwitch: 1.0.5
+ dev: true
/hast-util-to-text@4.0.0:
resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==}
@@ -24055,10 +22115,12 @@ packages:
hast-util-parse-selector: 2.2.5
property-information: 5.6.0
space-separated-tokens: 1.1.5
+ dev: true
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
+ dev: true
/header-case@2.0.4:
resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==}
@@ -24080,17 +22142,6 @@ packages:
engines: {node: '>=12.0.0'}
dev: false
- /history@4.10.1:
- resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
- dependencies:
- '@babel/runtime': 7.21.0
- loose-envify: 1.4.0
- resolve-pathname: 3.0.0
- tiny-invariant: 1.2.0
- tiny-warning: 1.0.3
- value-equal: 1.0.1
- dev: false
-
/hmac-drbg@1.0.1:
resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
dependencies:
@@ -24108,15 +22159,6 @@ packages:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
dev: true
- /hpack.js@2.1.6:
- resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
- dependencies:
- inherits: 2.0.4
- obuf: 1.1.2
- readable-stream: 2.3.7
- wbuf: 1.7.3
- dev: false
-
/html-dom-parser@1.0.2:
resolution: {integrity: sha512-Jq4oVkVSn+10ut3fyc2P/Fs1jqTo0l45cP6Q8d2ef/9jfkYwulO0QXmyLI0VUiZrXF4czpGgMEJRa52CQ6Fk8Q==}
dependencies:
@@ -24133,6 +22175,7 @@ packages:
/html-entities@2.3.3:
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
+ dev: true
/html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -24164,6 +22207,7 @@ packages:
param-case: 3.0.4
relateurl: 0.2.7
terser: 5.15.1
+ dev: true
/html-react-parser@1.3.0(react@18.2.0):
resolution: {integrity: sha512-lhpkOFH8pwqEjlNUYCWvjT43/JVCZO9MAZuCS6afT1/VP+bZcNxNUs4AUqiMzH0QPSDHwM/GFNXZNok1KTA4BQ==}
@@ -24198,6 +22242,7 @@ packages:
/html-void-elements@1.0.5:
resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==}
+ dev: true
/html-webpack-plugin@4.5.2(webpack@4.46.0):
resolution: {integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==}
@@ -24229,6 +22274,7 @@ packages:
pretty-error: 4.0.0
tapable: 2.2.1
webpack: 5.75.0
+ dev: true
/htmlparser2@6.1.0:
resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==}
@@ -24254,24 +22300,7 @@ packages:
domhandler: 5.0.3
domutils: 3.0.1
entities: 4.4.0
-
- /http-cache-semantics@4.1.0:
- resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
- dev: false
-
- /http-deceiver@1.2.7:
- resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
- dev: false
-
- /http-errors@1.6.3:
- resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==}
- engines: {node: '>= 0.6'}
- dependencies:
- depd: 1.1.2
- inherits: 2.0.3
- setprototypeof: 1.1.0
- statuses: 1.5.0
- dev: false
+ dev: true
/http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
@@ -24282,10 +22311,7 @@ packages:
setprototypeof: 1.2.0
statuses: 2.0.1
toidentifier: 1.0.1
-
- /http-parser-js@0.5.6:
- resolution: {integrity: sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==}
- dev: false
+ dev: true
/http-proxy-agent@5.0.0:
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
@@ -24297,36 +22323,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /http-proxy-middleware@2.0.6(@types/express@4.17.14):
- resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@types/express': ^4.17.13
- peerDependenciesMeta:
- '@types/express':
- optional: true
- dependencies:
- '@types/express': 4.17.14
- '@types/http-proxy': 1.17.8
- http-proxy: 1.18.1
- is-glob: 4.0.3
- is-plain-obj: 3.0.0
- micromatch: 4.0.5
- transitivePeerDependencies:
- - debug
- dev: false
-
- /http-proxy@1.18.1:
- resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
- engines: {node: '>=8.0.0'}
- dependencies:
- eventemitter3: 4.0.7
- follow-redirects: 1.15.2
- requires-port: 1.0.0
- transitivePeerDependencies:
- - debug
- dev: false
-
/https-browserify@1.0.0:
resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==}
dev: true
@@ -24347,6 +22343,7 @@ packages:
/human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
+ dev: true
/human-signals@3.0.1:
resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
@@ -24386,6 +22383,7 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
+ dev: true
/iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
@@ -24408,6 +22406,7 @@ packages:
postcss: ^8.1.0
dependencies:
postcss: 8.4.29
+ dev: true
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -24429,18 +22428,6 @@ packages:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
- /image-size@1.0.1:
- resolution: {integrity: sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==}
- engines: {node: '>=12.0.0'}
- hasBin: true
- dependencies:
- queue: 6.0.2
- dev: false
-
- /immer@9.0.21:
- resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
- dev: false
-
/immutable@3.7.6:
resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==}
engines: {node: '>=0.8.0'}
@@ -24458,11 +22445,6 @@ packages:
engines: {node: '>=12.2'}
dev: true
- /import-lazy@2.1.0:
- resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==}
- engines: {node: '>=4'}
- dev: false
-
/import-lazy@4.0.0:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
engines: {node: '>=8'}
@@ -24488,16 +22470,12 @@ packages:
/indent-string@4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
+ dev: true
/infer-owner@1.0.4:
resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
dev: true
- /infima@0.2.0-alpha.43:
- resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==}
- engines: {node: '>=12'}
- dev: false
-
/inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies:
@@ -24510,19 +22488,11 @@ packages:
/inherits@2.0.3:
resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
+ dev: true
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- /ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- dev: false
-
- /ini@2.0.0:
- resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==}
- engines: {node: '>=10'}
- dev: false
-
/inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
@@ -24559,16 +22529,6 @@ packages:
has: 1.0.3
side-channel: 1.0.4
- /internmap@2.0.3:
- resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
- engines: {node: '>=12'}
- dev: false
-
- /interpret@1.4.0:
- resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
- engines: {node: '>= 0.10'}
- dev: false
-
/interpret@2.2.0:
resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==}
engines: {node: '>= 0.10'}
@@ -24586,11 +22546,7 @@ packages:
/ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
-
- /ipaddr.js@2.0.1:
- resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==}
- engines: {node: '>= 10'}
- dev: false
+ dev: true
/is-absolute-url@3.0.3:
resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==}
@@ -24621,6 +22577,7 @@ packages:
/is-alphabetical@1.0.4:
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
+ dev: true
/is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
@@ -24631,6 +22588,7 @@ packages:
dependencies:
is-alphabetical: 1.0.4
is-decimal: 1.0.4
+ dev: true
/is-alphanumerical@2.0.1:
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
@@ -24683,6 +22641,7 @@ packages:
/is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
+ dev: true
/is-builtin-module@3.1.0:
resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==}
@@ -24700,6 +22659,7 @@ packages:
hasBin: true
dependencies:
ci-info: 2.0.0
+ dev: true
/is-ci@3.0.1:
resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
@@ -24735,6 +22695,7 @@ packages:
/is-decimal@1.0.4:
resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
+ dev: true
/is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
@@ -24762,6 +22723,7 @@ packages:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
hasBin: true
+ dev: true
/is-dom@1.1.0:
resolution: {integrity: sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==}
@@ -24773,6 +22735,7 @@ packages:
/is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
+ dev: true
/is-extendable@1.0.1:
resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
@@ -24827,6 +22790,7 @@ packages:
/is-hexadecimal@1.0.4:
resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
+ dev: true
/is-hexadecimal@2.0.1:
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
@@ -24839,14 +22803,6 @@ packages:
html-tags: 3.2.0
dev: false
- /is-installed-globally@0.4.0:
- resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
- engines: {node: '>=10'}
- dependencies:
- global-dirs: 3.0.0
- is-path-inside: 3.0.3
- dev: false
-
/is-interactive@1.0.0:
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
engines: {node: '>=8'}
@@ -24874,11 +22830,6 @@ packages:
resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==}
dev: true
- /is-npm@5.0.0:
- resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==}
- engines: {node: '>=10'}
- dev: false
-
/is-number-object@1.0.7:
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
engines: {node: '>= 0.4'}
@@ -24896,25 +22847,10 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- /is-obj@1.0.1:
- resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /is-obj@2.0.0:
- resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
- engines: {node: '>=8'}
- dev: false
-
/is-object@1.0.2:
resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==}
dev: true
- /is-path-cwd@2.2.0:
- resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
- engines: {node: '>=6'}
- dev: false
-
/is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
@@ -24927,11 +22863,7 @@ packages:
/is-plain-obj@2.1.0:
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
engines: {node: '>=8'}
-
- /is-plain-obj@3.0.0:
- resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
- engines: {node: '>=10'}
- dev: false
+ dev: true
/is-plain-obj@4.1.0:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
@@ -24965,11 +22897,6 @@ packages:
call-bind: 1.0.2
has-tostringtag: 1.0.0
- /is-regexp@1.0.0:
- resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/is-relative@1.0.0:
resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
engines: {node: '>=0.10.0'}
@@ -24982,11 +22909,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /is-root@2.1.0:
- resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==}
- engines: {node: '>=6'}
- dev: false
-
/is-set@2.0.2:
resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
dev: true
@@ -25046,6 +22968,7 @@ packages:
/is-typedarray@1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+ dev: true
/is-unc-path@1.0.0:
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
@@ -25094,6 +23017,7 @@ packages:
/is-whitespace-character@1.0.4:
resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==}
+ dev: true
/is-window@1.0.2:
resolution: {integrity: sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==}
@@ -25106,6 +23030,7 @@ packages:
/is-word-character@1.0.4:
resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==}
+ dev: true
/is-wsl@1.1.0:
resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
@@ -25117,10 +23042,7 @@ packages:
engines: {node: '>=8'}
dependencies:
is-docker: 2.2.1
-
- /is-yarn-global@0.3.0:
- resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==}
- dev: false
+ dev: true
/isarray@0.0.1:
resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
@@ -25155,7 +23077,7 @@ packages:
/isomorphic-fetch@3.0.0(encoding@0.1.13):
resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
dependencies:
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
whatwg-fetch: 3.6.2
transitivePeerDependencies:
- encoding
@@ -25348,6 +23270,7 @@ packages:
ci-info: 3.5.0
graceful-fs: 4.2.11
picomatch: 2.3.1
+ dev: true
/jest-worker@26.6.2:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
@@ -25365,16 +23288,7 @@ packages:
'@types/node': 18.16.14
merge-stream: 2.0.0
supports-color: 8.1.1
-
- /jest-worker@29.2.1:
- resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- dependencies:
- '@types/node': 18.16.14
- jest-util: 29.3.1
- merge-stream: 2.0.0
- supports-color: 8.1.1
- dev: false
+ dev: true
/jiti@1.19.3:
resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==}
@@ -25384,15 +23298,6 @@ packages:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
dev: true
- /joi@17.7.0:
- resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==}
- dependencies:
- '@hapi/hoek': 9.3.0
- '@hapi/topo': 5.1.0
- '@sideway/address': 4.1.4
- '@sideway/formula': 3.0.1
- '@sideway/pinpoint': 2.0.0
-
/join-component@1.1.0:
resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==}
dev: false
@@ -25437,6 +23342,7 @@ packages:
dependencies:
argparse: 1.0.10
esprima: 4.0.1
+ dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
@@ -25555,6 +23461,7 @@ packages:
/jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
hasBin: true
+ dev: true
/jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
@@ -25567,10 +23474,6 @@ packages:
bignumber.js: 9.1.0
dev: false
- /json-buffer@3.0.0:
- resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==}
- dev: false
-
/json-parse-better-errors@1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
dev: true
@@ -25581,10 +23484,6 @@ packages:
/json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- /json-schema-traverse@1.0.0:
- resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
- dev: false
-
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -25623,6 +23522,7 @@ packages:
resolution: {integrity: sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==}
engines: {node: '>=6'}
hasBin: true
+ dev: true
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
@@ -25633,10 +23533,10 @@ packages:
resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
eslint-visitor-keys: 3.4.3
espree: 9.6.1
- semver: 7.5.4
+ semver: 7.5.1
dev: true
/jsonc-parser@3.2.0:
@@ -25744,16 +23644,6 @@ packages:
/jwt-decode@3.1.2:
resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==}
- /keyv@3.1.0:
- resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==}
- dependencies:
- json-buffer: 3.0.0
- dev: false
-
- /khroma@2.0.0:
- resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==}
- dev: false
-
/kind-of@3.2.2:
resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
engines: {node: '>=0.10.0'}
@@ -25776,6 +23666,7 @@ packages:
/kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
+ dev: true
/klaw@3.0.0:
resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==}
@@ -25786,6 +23677,7 @@ packages:
/kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
+ dev: true
/kleur@4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
@@ -25795,6 +23687,7 @@ packages:
/klona@2.0.5:
resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==}
engines: {node: '>= 8'}
+ dev: true
/known-css-properties@0.28.0:
resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==}
@@ -25812,13 +23705,6 @@ packages:
dependencies:
language-subtag-registry: 0.3.22
- /latest-version@5.1.0:
- resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==}
- engines: {node: '>=8'}
- dependencies:
- package-json: 6.5.0
- dev: false
-
/lazy-universal-dotenv@3.0.1:
resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==}
engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'}
@@ -25830,11 +23716,6 @@ packages:
dotenv-expand: 5.1.0
dev: true
- /leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
- dev: false
-
/levn@0.3.0:
resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
engines: {node: '>= 0.8.0'}
@@ -25954,6 +23835,7 @@ packages:
/loader-runner@4.3.0:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
+ dev: true
/loader-utils@1.4.2:
resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
@@ -25971,6 +23853,7 @@ packages:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 2.2.2
+ dev: true
/loader-utils@2.0.4:
resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
@@ -25979,11 +23862,7 @@ packages:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 2.2.3
-
- /loader-utils@3.2.0:
- resolution: {integrity: sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==}
- engines: {node: '>= 12.13.0'}
- dev: false
+ dev: true
/local-pkg@0.4.1:
resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==}
@@ -26000,12 +23879,21 @@ packages:
engines: {node: '>=14'}
dev: true
+ /local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
+ engines: {node: '>=14'}
+ dependencies:
+ mlly: 1.4.2
+ pkg-types: 1.0.3
+ dev: true
+
/locate-path@3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
dependencies:
p-locate: 3.0.0
path-exists: 3.0.0
+ dev: true
/locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
@@ -26019,10 +23907,6 @@ packages:
dependencies:
p-locate: 5.0.0
- /lodash-es@4.17.21:
- resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- dev: false
-
/lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: false
@@ -26031,17 +23915,9 @@ packages:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: true
- /lodash.curry@4.1.1:
- resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==}
- dev: false
-
/lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- /lodash.flow@3.5.0:
- resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==}
- dev: false
-
/lodash.get@4.4.2:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
dev: true
@@ -26073,10 +23949,6 @@ packages:
/lodash.isstring@4.0.1:
resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
- /lodash.memoize@4.1.2:
- resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
- dev: false
-
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
@@ -26090,6 +23962,7 @@ packages:
/lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+ dev: true
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -26156,16 +24029,7 @@ packages:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
tslib: 2.5.2
-
- /lowercase-keys@1.0.1:
- resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /lowercase-keys@2.0.0:
- resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
- engines: {node: '>=8'}
- dev: false
+ dev: true
/lowlight@3.1.0:
resolution: {integrity: sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ==}
@@ -26312,6 +24176,7 @@ packages:
/markdown-escapes@1.0.4:
resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==}
+ dev: true
/markdown-it-anchor@8.6.5(@types/markdown-it@12.2.3)(markdown-it@12.3.2):
resolution: {integrity: sha512-PI1qEHHkTNWT+X6Ip9w+paonfIQ+QZP9sCeMYi47oqhH+EsW8CrJ8J7CzV19QVOj6il8ATGbK2nTECj22ZHGvQ==}
@@ -26370,11 +24235,13 @@ packages:
resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==}
dependencies:
unist-util-remove: 2.1.0
+ dev: true
/mdast-util-definitions@4.0.0:
resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==}
dependencies:
unist-util-visit: 2.0.3
+ dev: true
/mdast-util-find-and-replace@3.0.1:
resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
@@ -26549,6 +24416,7 @@ packages:
unist-util-generated: 1.1.6
unist-util-position: 3.1.0
unist-util-visit: 2.0.3
+ dev: true
/mdast-util-to-hast@13.0.2:
resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==}
@@ -26582,6 +24450,7 @@ packages:
/mdast-util-to-string@2.0.0:
resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
+ dev: true
/mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
@@ -26589,10 +24458,6 @@ packages:
'@types/mdast': 4.0.3
dev: false
- /mdn-data@2.0.14:
- resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
- dev: false
-
/mdn-data@2.0.27:
resolution: {integrity: sha512-kwqO0I0jtWr25KcfLm9pia8vLZ8qoAKhWZuZMbneJq3jjBD3gl5nZs8l8Tu3ZBlBAHVQtDur9rdDGyvtfVraHQ==}
dev: true
@@ -26603,10 +24468,7 @@ packages:
/media-typer@0.3.0:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
-
- /medium-zoom@1.0.6:
- resolution: {integrity: sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg==}
- dev: false
+ dev: true
/mem@8.1.1:
resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==}
@@ -26621,6 +24483,7 @@ packages:
engines: {node: '>= 4.0.0'}
dependencies:
fs-monkey: 1.0.3
+ dev: true
/memoizerific@1.11.3:
resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
@@ -26685,29 +24548,16 @@ packages:
/merge-descriptors@1.0.1:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
+ dev: true
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ dev: true
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- /mermaid@9.3.0:
- resolution: {integrity: sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==}
- dependencies:
- '@braintree/sanitize-url': 6.0.2
- d3: 7.4.4
- dagre-d3-es: 7.0.6
- dompurify: 2.4.1
- khroma: 2.0.0
- lodash-es: 4.17.21
- moment-mini: 2.24.0
- non-layered-tidy-tree-layout: 2.0.2
- stylis: 4.1.3
- uuid: 9.0.0
- dev: false
-
/meros@1.2.1(@types/node@16.18.11):
resolution: {integrity: sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==}
engines: {node: '>=13'}
@@ -26746,6 +24596,7 @@ packages:
/methods@1.1.2:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
+ dev: true
/microevent.ts@0.1.1:
resolution: {integrity: sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==}
@@ -27043,22 +24894,10 @@ packages:
brorand: 1.1.0
dev: true
- /mime-db@1.33.0:
- resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
- engines: {node: '>= 0.6'}
- dev: false
-
/mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
- /mime-types@2.1.18:
- resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==}
- engines: {node: '>= 0.6'}
- dependencies:
- mime-db: 1.33.0
- dev: false
-
/mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
@@ -27070,6 +24909,7 @@ packages:
engines: {node: '>=4'}
hasBin: true
requiresBuild: true
+ dev: true
/mime@2.6.0:
resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
@@ -27080,6 +24920,7 @@ packages:
/mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ dev: true
/mimic-fn@3.1.0:
resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
@@ -27091,11 +24932,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /mimic-response@1.0.1:
- resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
- engines: {node: '>=4'}
- dev: false
-
/min-document@2.19.0:
resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
dependencies:
@@ -27107,33 +24943,18 @@ packages:
engines: {node: '>=4'}
dev: true
- /mini-css-extract-plugin@2.6.1(webpack@5.75.0):
- resolution: {integrity: sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==}
- engines: {node: '>= 12.13.0'}
- peerDependencies:
- webpack: ^5.0.0
- dependencies:
- schema-utils: 4.0.0
- webpack: 5.75.0
- dev: false
-
/mini-svg-data-uri@1.4.4:
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
hasBin: true
/minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ dev: true
/minimalistic-crypto-utils@1.0.1:
resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==}
dev: true
- /minimatch@3.0.4:
- resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
- dependencies:
- brace-expansion: 1.1.11
- dev: false
-
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -27165,6 +24986,13 @@ packages:
dependencies:
brace-expansion: 2.0.1
+ /minimatch@9.0.3:
+ resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
/minimist-options@4.1.0:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'}
@@ -27258,19 +25086,15 @@ packages:
engines: {node: '>=10'}
hasBin: true
- /mlly@1.2.0:
- resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==}
+ /mlly@1.4.2:
+ resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
dependencies:
acorn: 8.10.0
- pathe: 1.1.0
- pkg-types: 1.0.2
- ufo: 1.1.1
+ pathe: 1.1.1
+ pkg-types: 1.0.3
+ ufo: 1.3.2
dev: true
- /moment-mini@2.24.0:
- resolution: {integrity: sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==}
- dev: false
-
/move-concurrently@1.0.1:
resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==}
dependencies:
@@ -27290,6 +25114,7 @@ packages:
/mrmime@1.0.0:
resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}
engines: {node: '>=10'}
+ dev: true
/mrmime@1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
@@ -27398,14 +25223,6 @@ packages:
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
dev: true
- /multicast-dns@7.2.4:
- resolution: {integrity: sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==}
- hasBin: true
- dependencies:
- dns-packet: 5.3.1
- thunky: 1.1.0
- dev: false
-
/multipipe@1.0.2:
resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==}
dependencies:
@@ -27469,9 +25286,11 @@ packages:
/negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
+ dev: true
/neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ dev: true
/nested-error-stacks@2.1.1:
resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==}
@@ -27668,6 +25487,7 @@ packages:
dependencies:
lower-case: 2.0.2
tslib: 2.5.2
+ dev: true
/node-addon-api@3.2.1:
resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
@@ -27684,12 +25504,6 @@ packages:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
- /node-emoji@1.11.0:
- resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==}
- dependencies:
- lodash: 4.17.21
- dev: false
-
/node-fetch-native@0.1.3:
resolution: {integrity: sha512-Jf1IQZdovUIv9E+5avmN6Sf+bND+rnMlODnBQhdE2VRyuWP9WgqZb/KEgPekh19DAN1X2C4vbS1VCOaz2OH19g==}
dev: true
@@ -27785,10 +25599,6 @@ packages:
engines: {node: '>=6.0.0'}
dev: false
- /non-layered-tidy-tree-layout@2.0.2:
- resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==}
- dev: false
-
/normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
@@ -27813,16 +25623,6 @@ packages:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
- /normalize-url@4.5.1:
- resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==}
- engines: {node: '>=8'}
- dev: false
-
- /normalize-url@6.1.0:
- resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
- engines: {node: '>=10'}
- dev: false
-
/npm-run-all@4.1.5:
resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==}
engines: {node: '>= 4'}
@@ -27851,6 +25651,7 @@ packages:
engines: {node: '>=8'}
dependencies:
path-key: 3.1.1
+ dev: true
/npm-run-path@5.1.0:
resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
@@ -27868,14 +25669,11 @@ packages:
set-blocking: 2.0.0
dev: true
- /nprogress@0.2.0:
- resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
- dev: false
-
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
boolbase: 1.0.0
+ dev: true
/nullthrows@1.1.1:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
@@ -28034,10 +25832,6 @@ packages:
resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==}
dev: true
- /obuf@1.1.2:
- resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
- dev: false
-
/ohmyfetch@0.4.17:
resolution: {integrity: sha512-jUpCDJIDlTZdS4PE3veoHIXoUSm2NRJfFMIROd29/qeOsbJEoEYBzJ6re+W1hskc44ej11IL//scfhckIcCN8Q==}
dependencies:
@@ -28056,10 +25850,12 @@ packages:
engines: {node: '>= 0.8'}
dependencies:
ee-first: 1.1.1
+ dev: true
/on-headers@1.0.2:
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
engines: {node: '>= 0.8'}
+ dev: true
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@@ -28071,6 +25867,7 @@ packages:
engines: {node: '>=6'}
dependencies:
mimic-fn: 2.1.0
+ dev: true
/onetime@6.0.0:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
@@ -28094,10 +25891,12 @@ packages:
define-lazy-prop: 2.0.0
is-docker: 2.2.1
is-wsl: 2.2.0
+ dev: true
/opener@1.5.2:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
+ dev: true
/optimism@0.16.1:
resolution: {integrity: sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==}
@@ -28203,11 +26002,6 @@ packages:
p-map: 2.1.0
dev: true
- /p-cancelable@1.1.0:
- resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
- engines: {node: '>=6'}
- dev: false
-
/p-defer@1.0.0:
resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==}
engines: {node: '>=4'}
@@ -28256,6 +26050,7 @@ packages:
engines: {node: '>=6'}
dependencies:
p-limit: 2.3.0
+ dev: true
/p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
@@ -28286,14 +26081,7 @@ packages:
engines: {node: '>=10'}
dependencies:
aggregate-error: 3.1.0
-
- /p-retry@4.6.1:
- resolution: {integrity: sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==}
- engines: {node: '>=8'}
- dependencies:
- '@types/retry': 0.12.1
- retry: 0.13.1
- dev: false
+ dev: true
/p-retry@4.6.2:
resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
@@ -28314,16 +26102,6 @@ packages:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
- /package-json@6.5.0:
- resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==}
- engines: {node: '>=8'}
- dependencies:
- got: 9.6.0
- registry-auth-token: 4.2.1
- registry-url: 5.1.0
- semver: 6.3.0
- dev: false
-
/pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
dev: true
@@ -28341,6 +26119,7 @@ packages:
dependencies:
dot-case: 3.0.4
tslib: 2.5.2
+ dev: true
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
@@ -28372,6 +26151,7 @@ packages:
is-alphanumerical: 1.0.4
is-decimal: 1.0.4
is-hexadecimal: 1.0.4
+ dev: true
/parse-entities@4.0.1:
resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
@@ -28421,38 +26201,40 @@ packages:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
- /parse-numeric-range@1.3.0:
- resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
- dev: false
-
/parse5-htmlparser2-tree-adapter@7.0.0:
resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
dependencies:
domhandler: 5.0.3
parse5: 7.1.2
+ dev: true
/parse5@6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ dev: true
/parse5@7.1.1:
resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==}
dependencies:
entities: 4.4.0
+ dev: true
/parse5@7.1.2:
resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
dependencies:
entities: 4.4.0
+ dev: true
/parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
+ dev: true
/pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
dependencies:
no-case: 3.0.4
tslib: 2.5.2
+ dev: true
/pascalcase@0.1.1:
resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
@@ -28491,6 +26273,7 @@ packages:
/path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
+ dev: true
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
@@ -28500,10 +26283,6 @@ packages:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
- /path-is-inside@1.0.2:
- resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
- dev: false
-
/path-key@2.0.1:
resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
engines: {node: '>=4'}
@@ -28542,16 +26321,7 @@ packages:
/path-to-regexp@0.1.7:
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
-
- /path-to-regexp@1.8.0:
- resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
- dependencies:
- isarray: 0.0.1
- dev: false
-
- /path-to-regexp@2.2.1:
- resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==}
- dev: false
+ dev: true
/path-to-regexp@6.2.1:
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
@@ -28587,6 +26357,10 @@ packages:
resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
dev: true
+ /pathe@1.1.1:
+ resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
+ dev: true
+
/pathval@1.1.1:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
@@ -28718,21 +26492,14 @@ packages:
find-up: 5.0.0
dev: true
- /pkg-types@1.0.2:
- resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==}
+ /pkg-types@1.0.3:
+ resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
dependencies:
jsonc-parser: 3.2.0
- mlly: 1.2.0
+ mlly: 1.4.2
pathe: 1.1.0
dev: true
- /pkg-up@3.1.0:
- resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
- engines: {node: '>=8'}
- dependencies:
- find-up: 3.0.0
- dev: false
-
/playwright-core@1.31.0:
resolution: {integrity: sha512-/KquBjS5DcASCh8cGeNVHuC0kyb7c9plKTwaKxgOGtxT7+DZO2fjmFvPDBSXslEIK5CeOO/2kk5rOCktFXKEdA==}
engines: {node: '>=14'}
@@ -28805,86 +26572,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /postcss-calc@8.2.4(postcss@8.4.29):
- resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
- peerDependencies:
- postcss: ^8.2.2
- dependencies:
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-colormin@5.3.0(postcss@8.4.29):
- resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- caniuse-api: 3.0.0
- colord: 2.9.2
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-convert-values@5.1.2(postcss@8.4.29):
- resolution: {integrity: sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-discard-comments@5.1.2(postcss@8.4.29):
- resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /postcss-discard-duplicates@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /postcss-discard-empty@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /postcss-discard-overridden@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /postcss-discard-unused@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- dev: false
-
/postcss-flexbugs-fixes@4.2.1:
resolution: {integrity: sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==}
dependencies:
@@ -29092,99 +26779,6 @@ packages:
webpack: 5.83.1
dev: true
- /postcss-loader@7.0.1(postcss@8.4.29)(webpack@5.75.0):
- resolution: {integrity: sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- postcss: ^7.0.0 || ^8.0.1
- webpack: ^5.0.0
- dependencies:
- cosmiconfig: 7.0.1
- klona: 2.0.5
- postcss: 8.4.29
- semver: 7.5.1
- webpack: 5.75.0
- dev: false
-
- /postcss-merge-idents@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-merge-longhand@5.1.6(postcss@8.4.29):
- resolution: {integrity: sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- stylehacks: 5.1.0(postcss@8.4.29)
- dev: false
-
- /postcss-merge-rules@5.1.2(postcss@8.4.29):
- resolution: {integrity: sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- caniuse-api: 3.0.0
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- dev: false
-
- /postcss-minify-font-values@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-minify-gradients@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- colord: 2.9.2
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-minify-params@5.1.3(postcss@8.4.29):
- resolution: {integrity: sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-minify-selectors@5.2.1(postcss@8.4.29):
- resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- dev: false
-
/postcss-modules-extract-imports@2.0.0:
resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==}
engines: {node: '>= 6'}
@@ -29199,6 +26793,7 @@ packages:
postcss: ^8.1.0
dependencies:
postcss: 8.4.29
+ dev: true
/postcss-modules-local-by-default@3.0.3:
resolution: {integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==}
@@ -29220,6 +26815,7 @@ packages:
postcss: 8.4.29
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
+ dev: true
/postcss-modules-scope@2.2.0:
resolution: {integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==}
@@ -29237,6 +26833,7 @@ packages:
dependencies:
postcss: 8.4.29
postcss-selector-parser: 6.0.13
+ dev: true
/postcss-modules-values@3.0.0:
resolution: {integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==}
@@ -29253,6 +26850,7 @@ packages:
dependencies:
icss-utils: 5.1.0(postcss@8.4.29)
postcss: 8.4.29
+ dev: true
/postcss-nested@6.0.0(postcss@8.4.18):
resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
@@ -29292,139 +26890,6 @@ packages:
postcss: 8.4.29
postcss-selector-parser: 6.0.13
- /postcss-normalize-charset@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
- /postcss-normalize-display-values@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-positions@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-repeat-style@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-string@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-timing-functions@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-unicode@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-url@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- normalize-url: 6.1.0
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-normalize-whitespace@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-ordered-values@5.1.3(postcss@8.4.29):
- resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- cssnano-utils: 3.1.0(postcss@8.4.29)
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-reduce-idents@5.2.0(postcss@8.4.29):
- resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-reduce-initial@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- caniuse-api: 3.0.0
- postcss: 8.4.29
- dev: false
-
- /postcss-reduce-transforms@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- dev: false
-
/postcss-safe-parser@6.0.0(postcss@8.4.29):
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
@@ -29457,49 +26922,9 @@ packages:
cssesc: 3.0.0
util-deprecate: 1.0.2
- /postcss-sort-media-queries@4.2.1(postcss@8.4.29):
- resolution: {integrity: sha512-9VYekQalFZ3sdgcTjXMa0dDjsfBVHXlraYJEMiOJ/2iMmI2JGCMavP16z3kWOaRu8NSaJCTgVpB/IVpH5yT9YQ==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- postcss: ^8.4.4
- dependencies:
- postcss: 8.4.29
- sort-css-media-queries: 2.0.4
- dev: false
-
- /postcss-svgo@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-value-parser: 4.2.0
- svgo: 2.8.0
- dev: false
-
- /postcss-unique-selectors@5.1.1(postcss@8.4.29):
- resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- dev: false
-
/postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- /postcss-zindex@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- postcss: 8.4.29
- dev: false
-
/postcss@7.0.39:
resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==}
engines: {node: '>=6.0.0'}
@@ -29576,11 +27001,6 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- /prepend-http@2.0.0:
- resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==}
- engines: {node: '>=4'}
- dev: false
-
/prettier-plugin-organize-imports@3.2.0(prettier@2.7.1)(typescript@4.9.5):
resolution: {integrity: sha512-jeZ13YVKgXYCzkuwnoR6saKxJmdRYWMxS2G/su1V3qDWqTo1Q5iSoTblBxsXXAmomXfPqa/uA7YCK0/S86KLOQ==}
peerDependencies:
@@ -29693,6 +27113,7 @@ packages:
dependencies:
lodash: 4.17.21
renderkid: 3.0.0
+ dev: true
/pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
@@ -29717,11 +27138,6 @@ packages:
engines: {node: '>= 0.8'}
dev: true
- /pretty-time@1.1.0:
- resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
- engines: {node: '>=4'}
- dev: false
-
/prism-react-renderer@1.3.5(react@18.2.0):
resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==}
peerDependencies:
@@ -29730,11 +27146,6 @@ packages:
react: 18.2.0
dev: false
- /prismjs@1.29.0:
- resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
- engines: {node: '>=6'}
- dev: false
-
/process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -29782,6 +27193,7 @@ packages:
resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
dependencies:
asap: 2.0.6
+ dev: true
/prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
@@ -29789,6 +27201,7 @@ packages:
dependencies:
kleur: 3.0.3
sisteransi: 1.0.5
+ dev: true
/prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
@@ -29805,6 +27218,7 @@ packages:
resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
dependencies:
xtend: 4.0.2
+ dev: true
/property-information@6.4.0:
resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==}
@@ -29862,6 +27276,7 @@ packages:
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
+ dev: true
/proxy-compare@2.3.0:
resolution: {integrity: sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==}
@@ -29902,6 +27317,7 @@ packages:
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
+ dev: true
/pumpify@1.5.1:
resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
@@ -29917,22 +27333,12 @@ packages:
/punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
+ dev: true
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
- /pupa@2.1.1:
- resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==}
- engines: {node: '>=8'}
- dependencies:
- escape-goat: 2.1.1
- dev: false
-
- /pure-color@1.3.0:
- resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==}
- dev: false
-
/pvtsutils@1.3.2:
resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==}
dependencies:
@@ -29973,12 +27379,6 @@ packages:
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- /queue@6.0.2:
- resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
- dependencies:
- inherits: 2.0.4
- dev: false
-
/quick-format-unescaped@4.0.4:
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
dev: false
@@ -30000,6 +27400,7 @@ packages:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
dependencies:
safe-buffer: 5.2.1
+ dev: true
/randomfill@1.0.4:
resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==}
@@ -30008,14 +27409,10 @@ packages:
safe-buffer: 5.2.1
dev: true
- /range-parser@1.2.0:
- resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
- engines: {node: '>= 0.6'}
- dev: false
-
/range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
+ dev: true
/raw-body@2.5.1:
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
@@ -30025,6 +27422,7 @@ packages:
http-errors: 2.0.0
iconv-lite: 0.4.24
unpipe: 1.0.0
+ dev: true
/raw-loader@4.0.2(webpack@4.46.0):
resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==}
@@ -30037,25 +27435,6 @@ packages:
webpack: 4.46.0
dev: true
- /rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.7
- strip-json-comments: 2.0.1
- dev: false
-
- /react-base16-styling@0.6.0:
- resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==}
- dependencies:
- base16: 1.0.0
- lodash.curry: 4.1.1
- lodash.flow: 3.5.0
- pure-color: 1.3.0
- dev: false
-
/react-children-utilities@2.9.0(react@18.2.0):
resolution: {integrity: sha512-B3enhwcibIziobkMVccLd+6uIRoiCC9OZ1nR2B5sFCTnUYoGOCqgPOWUL+IC4S8IYaaN5AeF+SS0X1wernPdZA==}
peerDependencies:
@@ -30076,48 +27455,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
- /react-dev-utils@12.0.1(eslint@8.26.0)(typescript@4.8.4)(webpack@5.75.0):
- resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
- engines: {node: '>=14'}
- peerDependencies:
- typescript: '>=2.7'
- webpack: '>=4'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@babel/code-frame': 7.21.4
- address: 1.1.2
- browserslist: 4.21.10
- chalk: 4.1.2
- cross-spawn: 7.0.3
- detect-port-alt: 1.1.6
- escape-string-regexp: 4.0.0
- filesize: 8.0.7
- find-up: 5.0.0
- fork-ts-checker-webpack-plugin: 6.5.1(eslint@8.26.0)(typescript@4.8.4)(webpack@5.75.0)
- global-modules: 2.0.0
- globby: 11.1.0
- gzip-size: 6.0.0
- immer: 9.0.21
- is-root: 2.1.0
- loader-utils: 3.2.0
- open: 8.4.0
- pkg-up: 3.1.0
- prompts: 2.4.2
- react-error-overlay: 6.0.11
- recursive-readdir: 2.2.2
- shell-quote: 1.8.1
- strip-ansi: 6.0.1
- text-table: 0.2.0
- typescript: 4.8.4
- webpack: 5.75.0
- transitivePeerDependencies:
- - eslint
- - supports-color
- - vue-template-compiler
- dev: false
-
/react-docgen-typescript@2.2.2(typescript@4.9.5):
resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==}
peerDependencies:
@@ -30188,26 +27525,9 @@ packages:
react: 18.2.0
dev: false
- /react-error-overlay@6.0.11:
- resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==}
- dev: false
-
/react-fast-compare@3.2.0:
resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==}
-
- /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==}
- peerDependencies:
- react: ^16.6.0 || ^17.0.0 || ^18.0.0
- react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0
- dependencies:
- '@babel/runtime': 7.21.0
- invariant: 2.2.4
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-fast-compare: 3.2.0
- shallowequal: 1.1.0
+ dev: false
/react-hook-form@7.42.1(react@18.2.0):
resolution: {integrity: sha512-2UIGqwMZksd5HS55crTT1ATLTr0rAI4jS7yVuqTaoRVDhY2Qc4IyjskCmpnmdYqUNOYFy04vW253tb2JRVh+IQ==}
@@ -30277,39 +27597,6 @@ packages:
/react-is@18.2.0:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
- /react-json-view@1.21.3(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
- peerDependencies:
- react: ^17.0.0 || ^16.3.0 || ^15.5.4
- react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4
- dependencies:
- flux: 4.0.3(react@18.2.0)
- react: 18.2.0
- react-base16-styling: 0.6.0
- react-dom: 18.2.0(react@18.2.0)
- react-lifecycles-compat: 3.0.4
- react-textarea-autosize: 8.3.3(@types/react@18.2.14)(react@18.2.0)
- transitivePeerDependencies:
- - '@types/react'
- - encoding
- dev: false
-
- /react-lifecycles-compat@3.0.4:
- resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
- dev: false
-
- /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.75.0):
- resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
- engines: {node: '>=10.13.0'}
- peerDependencies:
- react-loadable: '*'
- webpack: '>=4.41.1 || 5.x'
- dependencies:
- '@babel/runtime': 7.21.0
- react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
- webpack: 5.75.0
- dev: false
-
/react-loading-skeleton@2.2.0(react@18.2.0):
resolution: {integrity: sha512-HH37uj9aobrUJSqFglHqO9KQt5zGQe+Svutv8LIq7Iq6gpJqCwIzJOsEVfkQy7ReirbI2uLhCtKloBGQIDP0BQ==}
peerDependencies:
@@ -30417,32 +27704,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
- resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
- peerDependencies:
- react: '>=15'
- react-router: '>=5'
- dependencies:
- '@babel/runtime': 7.21.0
- react: 18.2.0
- react-router: 5.3.4(react@18.2.0)
- dev: false
-
- /react-router-dom@5.3.4(react@18.2.0):
- resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==}
- peerDependencies:
- react: '>=15'
- dependencies:
- '@babel/runtime': 7.21.0
- history: 4.10.1
- loose-envify: 1.4.0
- prop-types: 15.8.1
- react: 18.2.0
- react-router: 5.3.4(react@18.2.0)
- tiny-invariant: 1.2.0
- tiny-warning: 1.0.3
- dev: false
-
/react-router-dom@6.11.1(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-dPC2MhoPeTQ1YUOt5uIK376SMNWbwUxYRWk2ZmTT4fZfwlOvabF8uduRKKJIyfkCZvMgiF0GSCQckmkGGijIrg==}
engines: {node: '>=14'}
@@ -30456,23 +27717,6 @@ packages:
react-router: 6.11.1(react@18.2.0)
dev: false
- /react-router@5.3.4(react@18.2.0):
- resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==}
- peerDependencies:
- react: '>=15'
- dependencies:
- '@babel/runtime': 7.21.0
- history: 4.10.1
- hoist-non-react-statics: 3.3.2
- loose-envify: 1.4.0
- path-to-regexp: 1.8.0
- prop-types: 15.8.1
- react: 18.2.0
- react-is: 16.13.1
- tiny-invariant: 1.2.0
- tiny-warning: 1.0.3
- dev: false
-
/react-router@6.11.1(react@18.2.0):
resolution: {integrity: sha512-OZINSdjJ2WgvAi7hgNLazrEV8SGn6xrKA+MkJe9wVDMZ3zQ6fdJocUjpCUCI0cNrelWjcvon0S/QK/j0NzL3KA==}
engines: {node: '>=14'}
@@ -30685,22 +27929,11 @@ packages:
dependencies:
picomatch: 2.3.1
- /reading-time@1.5.0:
- resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==}
- dev: false
-
/real-require@0.2.0:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
dev: false
- /rechoir@0.6.2:
- resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
- engines: {node: '>= 0.10'}
- dependencies:
- resolve: 1.22.4
- dev: false
-
/recoil-persist@5.1.0(recoil@0.7.7):
resolution: {integrity: sha512-sew4k3uBVJjRWKCSFuBw07Y1p1pBOb0UxLJPxn4G2bX/9xNj+r2xlqYy/BRfyofR/ANfqBU04MIvulppU4ZC0w==}
peerDependencies:
@@ -30726,13 +27959,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /recursive-readdir@2.2.2:
- resolution: {integrity: sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- minimatch: 3.0.4
- dev: false
-
/redent@1.0.0:
resolution: {integrity: sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==}
engines: {node: '>=0.10.0'}
@@ -30756,9 +27982,11 @@ packages:
engines: {node: '>=4'}
dependencies:
regenerate: 1.4.2
+ dev: true
/regenerate@1.4.2:
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ dev: true
/regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
@@ -30767,6 +27995,7 @@ packages:
resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==}
dependencies:
'@babel/runtime': 7.21.0
+ dev: true
/regex-not@1.0.2:
resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
@@ -30803,29 +28032,18 @@ packages:
regjsparser: 0.9.1
unicode-match-property-ecmascript: 2.0.0
unicode-match-property-value-ecmascript: 2.0.0
-
- /registry-auth-token@4.2.1:
- resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==}
- engines: {node: '>=6.0.0'}
- dependencies:
- rc: 1.2.8
- dev: false
-
- /registry-url@5.1.0:
- resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
- engines: {node: '>=8'}
- dependencies:
- rc: 1.2.8
- dev: false
+ dev: true
/regjsgen@0.7.1:
resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==}
+ dev: true
/regjsparser@0.9.1:
resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
hasBin: true
dependencies:
jsesc: 0.5.0
+ dev: true
/rehype-highlight@7.0.0:
resolution: {integrity: sha512-QtobgRgYoQaK6p1eSr2SD1i61f7bjF2kZHAQHxeCHAuJf7ZUDMvQ7owDq9YTkmar5m5TSUol+2D3bp3KfJf/oA==}
@@ -30840,6 +28058,7 @@ packages:
/relateurl@0.2.7:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
+ dev: true
/relay-runtime@12.0.0(encoding@0.1.13):
resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==}
@@ -30851,14 +28070,6 @@ packages:
- encoding
dev: true
- /remark-emoji@2.2.0:
- resolution: {integrity: sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==}
- dependencies:
- emoticon: 3.2.0
- node-emoji: 1.11.0
- unist-util-visit: 2.0.3
- dev: false
-
/remark-external-links@8.0.0:
resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==}
dependencies:
@@ -30871,6 +28082,7 @@ packages:
/remark-footnotes@2.0.0:
resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==}
+ dev: true
/remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
@@ -30898,6 +28110,7 @@ packages:
unified: 9.2.0
transitivePeerDependencies:
- supports-color
+ dev: true
/remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
@@ -30929,6 +28142,7 @@ packages:
unist-util-remove-position: 2.0.1
vfile-location: 3.2.0
xtend: 4.0.2
+ dev: true
/remark-rehype@11.0.0:
resolution: {integrity: sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==}
@@ -30952,6 +28166,7 @@ packages:
resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==}
dependencies:
mdast-squeeze-paragraphs: 4.0.0
+ dev: true
/remark-stringify@11.0.0:
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
@@ -30999,6 +28214,7 @@ packages:
htmlparser2: 6.1.0
lodash: 4.17.21
strip-ansi: 6.0.1
+ dev: true
/repeat-element@1.1.4:
resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
@@ -31008,6 +28224,7 @@ packages:
/repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: '>=0.10'}
+ dev: true
/repeating@2.0.1:
resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==}
@@ -31025,10 +28242,7 @@ packages:
/require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
-
- /require-like@0.1.2:
- resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
- dev: false
+ dev: true
/require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
@@ -31036,6 +28250,7 @@ packages:
/requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ dev: true
/requizzle@0.2.3:
resolution: {integrity: sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==}
@@ -31052,10 +28267,6 @@ packages:
engines: {node: '>=8'}
dev: true
- /resolve-pathname@3.0.0:
- resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
- dev: false
-
/resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: false
@@ -31100,12 +28311,6 @@ packages:
resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==}
engines: {node: '>=0.8'}
- /responselike@1.0.2:
- resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==}
- dependencies:
- lowercase-keys: 1.0.1
- dev: false
-
/restore-cursor@3.1.0:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
@@ -31182,10 +28387,6 @@ packages:
resolution: {integrity: sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==}
dev: false
- /robust-predicates@3.0.1:
- resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==}
- dev: false
-
/rollup@3.15.0:
resolution: {integrity: sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
@@ -31233,20 +28434,6 @@ packages:
engines: {node: 6.* || >= 7.*}
dev: true
- /rtl-detect@1.0.4:
- resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==}
- dev: false
-
- /rtlcss@3.5.0:
- resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==}
- hasBin: true
- dependencies:
- find-up: 5.0.0
- picocolors: 1.0.0
- postcss: 8.4.29
- strip-json-comments: 3.1.1
- dev: false
-
/run-async@2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -31263,14 +28450,11 @@ packages:
aproba: 1.2.0
dev: true
- /rw@1.3.3:
- resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
- dev: false
-
/rxjs@7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
tslib: 2.5.2
+ dev: true
/sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
@@ -31351,10 +28535,6 @@ packages:
dependencies:
chokidar: 3.5.3
- /sax@1.2.4:
- resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
- dev: false
-
/saxes@5.0.1:
resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
engines: {node: '>=10'}
@@ -31387,9 +28567,10 @@ packages:
resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==}
engines: {node: '>= 8.9.0'}
dependencies:
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
+ dev: true
/schema-utils@2.7.1:
resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
@@ -31398,66 +28579,38 @@ packages:
'@types/json-schema': 7.0.11
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
+ dev: true
/schema-utils@3.1.1:
resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
+ dev: true
/schema-utils@3.1.2:
resolution: {integrity: sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
-
- /schema-utils@4.0.0:
- resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==}
- engines: {node: '>= 12.13.0'}
- dependencies:
- '@types/json-schema': 7.0.11
- ajv: 8.11.0
- ajv-formats: 2.1.1(ajv@8.11.0)
- ajv-keywords: 5.1.0(ajv@8.11.0)
- dev: false
+ dev: true
/scuid@1.1.0:
resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==}
dev: true
- /section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
- dev: false
-
- /select-hose@2.0.0:
- resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
- dev: false
-
- /selfsigned@2.1.1:
- resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==}
- engines: {node: '>=10'}
- dependencies:
- node-forge: 1.3.1
- dev: false
-
- /semver-diff@3.1.1:
- resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==}
- engines: {node: '>=8'}
- dependencies:
- semver: 6.3.0
- dev: false
+ /scule@1.1.1:
+ resolution: {integrity: sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==}
+ dev: true
/semver@5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
+ dev: true
/semver@6.3.0:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
@@ -31471,14 +28624,6 @@ packages:
lru-cache: 6.0.0
dev: true
- /semver@7.5.0:
- resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- lru-cache: 6.0.0
- dev: false
-
/semver@7.5.1:
resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==}
engines: {node: '>=10'}
@@ -31512,6 +28657,7 @@ packages:
statuses: 2.0.1
transitivePeerDependencies:
- supports-color
+ dev: true
/sentence-case@3.0.4:
resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}
@@ -31537,11 +28683,13 @@ packages:
resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
dependencies:
randombytes: 2.1.0
+ dev: true
/serialize-javascript@6.0.1:
resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
dependencies:
randombytes: 2.1.0
+ dev: true
/serve-favicon@2.5.0:
resolution: {integrity: sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==}
@@ -31554,34 +28702,6 @@ packages:
safe-buffer: 5.1.1
dev: true
- /serve-handler@6.1.3:
- resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==}
- dependencies:
- bytes: 3.0.0
- content-disposition: 0.5.2
- fast-url-parser: 1.1.3
- mime-types: 2.1.18
- minimatch: 3.0.4
- path-is-inside: 1.0.2
- path-to-regexp: 2.2.1
- range-parser: 1.2.0
- dev: false
-
- /serve-index@1.9.1:
- resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
- engines: {node: '>= 0.8.0'}
- dependencies:
- accepts: 1.3.8
- batch: 0.6.1
- debug: 2.6.9
- escape-html: 1.0.3
- http-errors: 1.6.3
- mime-types: 2.1.35
- parseurl: 1.3.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/serve-static@1.15.0:
resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
engines: {node: '>= 0.8.0'}
@@ -31592,6 +28712,7 @@ packages:
send: 0.18.0
transitivePeerDependencies:
- supports-color
+ dev: true
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
@@ -31625,13 +28746,11 @@ packages:
/setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
-
- /setprototypeof@1.1.0:
- resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==}
- dev: false
+ dev: true
/setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+ dev: true
/sha.js@2.4.11:
resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
@@ -31646,9 +28765,7 @@ packages:
engines: {node: '>=8'}
dependencies:
kind-of: 6.0.3
-
- /shallowequal@1.1.0:
- resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
+ dev: true
/shebang-command@1.2.0:
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
@@ -31679,16 +28796,6 @@ packages:
/shell-quote@1.8.1:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
- /shelljs@0.8.5:
- resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
- engines: {node: '>=4'}
- hasBin: true
- dependencies:
- glob: 7.2.3
- interpret: 1.4.0
- rechoir: 0.6.2
- dev: false
-
/shiki@0.10.1:
resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==}
dependencies:
@@ -31710,6 +28817,7 @@ packages:
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ dev: true
/signedsource@1.0.0:
resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==}
@@ -31722,6 +28830,7 @@ packages:
'@polka/url': 1.0.0-next.21
mrmime: 1.0.0
totalist: 1.1.0
+ dev: true
/sirv@2.0.2:
resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
@@ -31734,17 +28843,7 @@ packages:
/sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
-
- /sitemap@7.1.1:
- resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==}
- engines: {node: '>=12.0.0', npm: '>=5.6.0'}
- hasBin: true
- dependencies:
- '@types/node': 17.0.45
- '@types/sax': 1.2.4
- arg: 5.0.2
- sax: 1.2.4
- dev: false
+ dev: true
/slash@2.0.0:
resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
@@ -31755,11 +28854,6 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
- /slash@4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- engines: {node: '>=12'}
- dev: false
-
/slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -31843,14 +28937,6 @@ packages:
- supports-color
dev: true
- /sockjs@0.3.24:
- resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
- dependencies:
- faye-websocket: 0.11.4
- uuid: 8.3.2
- websocket-driver: 0.7.4
- dev: false
-
/sonic-boom@3.3.0:
resolution: {integrity: sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==}
dependencies:
@@ -31867,11 +28953,6 @@ packages:
sander: 0.5.1
dev: true
- /sort-css-media-queries@2.0.4:
- resolution: {integrity: sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==}
- engines: {node: '>= 6.3.0'}
- dev: false
-
/source-list-map@2.0.1:
resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
dev: true
@@ -31896,6 +28977,7 @@ packages:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
+ dev: true
/source-map-url@0.4.1:
resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
@@ -31922,6 +29004,7 @@ packages:
/space-separated-tokens@1.1.5:
resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
+ dev: true
/space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
@@ -31956,32 +29039,6 @@ packages:
resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
dev: true
- /spdy-transport@3.0.0:
- resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
- dependencies:
- debug: 4.3.4
- detect-node: 2.1.0
- hpack.js: 2.1.6
- obuf: 1.1.2
- readable-stream: 3.6.0
- wbuf: 1.7.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /spdy@4.0.2:
- resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
- engines: {node: '>=6.0.0'}
- dependencies:
- debug: 4.3.4
- handle-thing: 2.0.1
- http-deceiver: 1.2.7
- select-hose: 2.0.0
- spdy-transport: 3.0.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/split-string@3.1.0:
resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
engines: {node: '>=0.10.0'}
@@ -32002,6 +29059,7 @@ packages:
/sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
/ssri@6.0.2:
resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==}
@@ -32019,6 +29077,7 @@ packages:
/stable@0.1.8:
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
+ dev: true
/stack-utils@2.0.6:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
@@ -32037,6 +29096,7 @@ packages:
/state-toggle@1.0.3:
resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==}
+ dev: true
/static-extend@0.1.2:
resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
@@ -32046,17 +29106,14 @@ packages:
object-copy: 0.1.0
dev: true
- /statuses@1.5.0:
- resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
- engines: {node: '>= 0.6'}
- dev: false
-
/statuses@2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
+ dev: true
/std-env@3.3.2:
resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==}
+ dev: true
/store2@2.14.2:
resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
@@ -32163,6 +29220,7 @@ packages:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
strip-ansi: 7.0.1
+ dev: true
/string.prototype.matchall@4.0.7:
resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==}
@@ -32242,15 +29300,6 @@ packages:
character-entities-legacy: 3.0.0
dev: false
- /stringify-object@3.3.0:
- resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
- engines: {node: '>=4'}
- dependencies:
- get-own-enumerable-property-symbols: 3.0.2
- is-obj: 1.0.1
- is-regexp: 1.0.0
- dev: false
-
/strip-ansi@3.0.1:
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
engines: {node: '>=0.10.0'}
@@ -32269,11 +29318,7 @@ packages:
engines: {node: '>=12'}
dependencies:
ansi-regex: 6.0.1
-
- /strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
- dev: false
+ dev: true
/strip-bom@2.0.0:
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
@@ -32296,6 +29341,7 @@ packages:
/strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
+ dev: true
/strip-final-newline@3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
@@ -32322,6 +29368,7 @@ packages:
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
+ dev: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
@@ -32330,7 +29377,13 @@ packages:
/strip-literal@1.0.1:
resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
+ dev: true
+
+ /strip-literal@1.3.0:
+ resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
+ dependencies:
+ acorn: 8.11.3
dev: true
/stripe@10.17.0:
@@ -32489,17 +29542,6 @@ packages:
react: 18.2.0
dev: false
- /stylehacks@5.1.0(postcss@8.4.29):
- resolution: {integrity: sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==}
- engines: {node: ^10 || ^12 || >=14.0}
- peerDependencies:
- postcss: ^8.2.15
- dependencies:
- browserslist: 4.21.10
- postcss: 8.4.29
- postcss-selector-parser: 6.0.13
- dev: false
-
/stylis@4.0.13:
resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==}
dev: false
@@ -32545,6 +29587,7 @@ packages:
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
+ dev: true
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
@@ -32657,24 +29700,6 @@ packages:
engines: {node: '>= 8'}
dev: true
- /svg-parser@2.0.4:
- resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
- dev: false
-
- /svgo@2.8.0:
- resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
- engines: {node: '>=10.13.0'}
- hasBin: true
- dependencies:
- '@trysound/sax': 0.2.0
- commander: 7.2.0
- css-select: 4.3.0
- css-tree: 1.1.3
- csso: 4.2.0
- picocolors: 1.0.0
- stable: 0.1.8
- dev: false
-
/swap-case@2.0.2:
resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==}
dependencies:
@@ -32891,6 +29916,7 @@ packages:
/tapable@1.1.3:
resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
engines: {node: '>=6'}
+ dev: true
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@@ -32914,7 +29940,7 @@ packages:
dependencies:
http-proxy-agent: 5.0.0
https-proxy-agent: 5.0.1
- node-fetch: 2.6.7(encoding@0.1.13)
+ node-fetch: 2.6.12(encoding@0.1.13)
stream-events: 1.0.5
uuid: 9.0.0
transitivePeerDependencies:
@@ -33000,6 +30026,7 @@ packages:
serialize-javascript: 6.0.0
terser: 5.15.1
webpack: 5.75.0
+ dev: true
/terser-webpack-plugin@5.3.9(webpack@5.83.1):
resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
@@ -33023,13 +30050,14 @@ packages:
serialize-javascript: 6.0.1
terser: 5.17.4
webpack: 5.83.1
+ dev: true
/terser@4.8.1:
resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
commander: 2.20.3
source-map: 0.6.1
source-map-support: 0.5.21
@@ -33041,9 +30069,10 @@ packages:
hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.2
- acorn: 8.10.0
+ acorn: 8.11.3
commander: 2.20.3
source-map-support: 0.5.21
+ dev: true
/terser@5.17.4:
resolution: {integrity: sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==}
@@ -33051,9 +30080,10 @@ packages:
hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.3
- acorn: 8.10.0
+ acorn: 8.11.3
commander: 2.20.3
source-map-support: 0.5.21
+ dev: true
/test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
@@ -33106,10 +30136,6 @@ packages:
/through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- /thunky@1.1.0:
- resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
- dev: false
-
/time-zone@1.0.0:
resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==}
engines: {node: '>=4'}
@@ -33133,14 +30159,6 @@ packages:
globrex: 0.1.2
dev: true
- /tiny-invariant@1.2.0:
- resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
- dev: false
-
- /tiny-warning@1.0.3:
- resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
- dev: false
-
/tinybench@2.5.0:
resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==}
dev: true
@@ -33204,11 +30222,6 @@ packages:
kind-of: 3.2.2
dev: true
- /to-readable-stream@1.0.0:
- resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==}
- engines: {node: '>=6'}
- dev: false
-
/to-regex-range@2.1.1:
resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
engines: {node: '>=0.10.0'}
@@ -33240,6 +30253,7 @@ packages:
/toidentifier@1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ dev: true
/toposort@2.0.2:
resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==}
@@ -33248,6 +30262,7 @@ packages:
/totalist@1.1.0:
resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==}
engines: {node: '>=6'}
+ dev: true
/totalist@3.0.0:
resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
@@ -33319,13 +30334,16 @@ packages:
/trim-trailing-lines@1.1.4:
resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==}
+ dev: true
/trim@0.0.1:
resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==}
deprecated: Use String.prototype.trim() instead
+ dev: true
/trough@1.0.5:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
+ dev: true
/trough@2.1.0:
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
@@ -33422,7 +30440,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 16.18.11
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33453,7 +30471,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 16.18.11
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33484,7 +30502,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 16.18.11
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33515,7 +30533,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 18.11.17
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33545,7 +30563,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 18.11.9
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33576,7 +30594,7 @@ packages:
'@tsconfig/node14': 1.0.1
'@tsconfig/node16': 1.0.2
'@types/node': 18.16.14
- acorn: 8.10.0
+ acorn: 8.11.3
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -33844,11 +30862,13 @@ packages:
dependencies:
media-typer: 0.3.0
mime-types: 2.1.35
+ dev: true
/typedarray-to-buffer@3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
dependencies:
is-typedarray: 1.0.0
+ dev: true
/typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
@@ -33884,6 +30904,7 @@ packages:
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
engines: {node: '>=4.2.0'}
hasBin: true
+ dev: true
/typescript@4.9.4:
resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
@@ -33908,6 +30929,7 @@ packages:
/ua-parser-js@0.7.31:
resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==}
+ dev: true
/uc.micro@1.0.6:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
@@ -33917,8 +30939,8 @@ packages:
resolution: {integrity: sha512-/+BmBDe8GvlB2nIflWasLLAInjYG0bC9HRnfEpNi4sw77J2AJNnEVnTDReVrehoh825+Q/evF3THXTAweyam2g==}
dev: true
- /ufo@1.1.1:
- resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==}
+ /ufo@1.3.2:
+ resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
dev: true
/uglify-js@3.17.4:
@@ -33973,10 +30995,12 @@ packages:
dependencies:
inherits: 2.0.4
xtend: 4.0.2
+ dev: true
/unicode-canonical-property-names-ecmascript@2.0.0:
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
engines: {node: '>=4'}
+ dev: true
/unicode-match-property-ecmascript@2.0.0:
resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
@@ -33984,14 +31008,17 @@ packages:
dependencies:
unicode-canonical-property-names-ecmascript: 2.0.0
unicode-property-aliases-ecmascript: 2.1.0
+ dev: true
/unicode-match-property-value-ecmascript@2.0.0:
resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==}
engines: {node: '>=4'}
+ dev: true
/unicode-property-aliases-ecmascript@2.1.0:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
+ dev: true
/unified@11.0.4:
resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==}
@@ -34015,18 +31042,27 @@ packages:
is-plain-obj: 2.1.0
trough: 1.0.5
vfile: 4.2.1
+ dev: true
- /unified@9.2.2:
- resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==}
+ /unimport@3.7.1:
+ resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==}
dependencies:
- '@types/unist': 2.0.6
- bail: 1.0.5
- extend: 3.0.2
- is-buffer: 2.0.5
- is-plain-obj: 2.1.0
- trough: 1.0.5
- vfile: 4.2.1
- dev: false
+ '@rollup/pluginutils': 5.1.0
+ acorn: 8.11.3
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ fast-glob: 3.3.2
+ local-pkg: 0.5.0
+ magic-string: 0.30.5
+ mlly: 1.4.2
+ pathe: 1.1.1
+ pkg-types: 1.0.3
+ scule: 1.1.1
+ strip-literal: 1.3.0
+ unplugin: 1.6.0
+ transitivePeerDependencies:
+ - rollup
+ dev: true
/union-value@1.0.1:
resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
@@ -34050,15 +31086,9 @@ packages:
imurmurhash: 0.1.4
dev: true
- /unique-string@2.0.0:
- resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
- engines: {node: '>=8'}
- dependencies:
- crypto-random-string: 2.0.0
- dev: false
-
/unist-builder@2.0.3:
resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==}
+ dev: true
/unist-util-find-after@5.0.0:
resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
@@ -34069,9 +31099,11 @@ packages:
/unist-util-generated@1.1.6:
resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==}
+ dev: true
/unist-util-is@4.1.0:
resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==}
+ dev: true
/unist-util-is@6.0.0:
resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
@@ -34081,6 +31113,7 @@ packages:
/unist-util-position@3.1.0:
resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==}
+ dev: true
/unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
@@ -34092,6 +31125,7 @@ packages:
resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==}
dependencies:
unist-util-visit: 2.0.3
+ dev: true
/unist-util-remove-position@5.0.0:
resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
@@ -34104,11 +31138,13 @@ packages:
resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==}
dependencies:
unist-util-is: 4.1.0
+ dev: true
/unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
dependencies:
'@types/unist': 2.0.6
+ dev: true
/unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
@@ -34121,6 +31157,7 @@ packages:
dependencies:
'@types/unist': 2.0.6
unist-util-is: 4.1.0
+ dev: true
/unist-util-visit-parents@6.0.1:
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
@@ -34135,6 +31172,7 @@ packages:
'@types/unist': 2.0.6
unist-util-is: 4.1.0
unist-util-visit-parents: 3.1.1
+ dev: true
/unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
@@ -34191,28 +31229,31 @@ packages:
/unpipe@1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
+ dev: true
- /unplugin-auto-import@0.7.2(@vueuse/core@8.9.4)(vite@4.0.2):
- resolution: {integrity: sha512-VzaYUa2VByUT70WSFlOXoovyWuwC/8ePKQUC9fhU+BRmvTC7qhCVgChH/NieWMEVgyT+HhacxM+W7xMEOmA+MA==}
+ /unplugin-auto-import@0.17.3(@vueuse/core@8.9.4):
+ resolution: {integrity: sha512-0cn0wr8X579TtdZKUAps0dDVrYzttx38ImdxZjmCeNlMDJX8UuSjO83vFqgS4ClNDIGWAute+xl9j5vRSX+vsw==}
engines: {node: '>=14'}
peerDependencies:
+ '@nuxt/kit': ^3.2.2
'@vueuse/core': '*'
peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
'@vueuse/core':
optional: true
dependencies:
- '@antfu/utils': 0.5.2
- '@rollup/pluginutils': 4.2.1
+ '@antfu/utils': 0.7.7
+ '@rollup/pluginutils': 5.1.0
'@vueuse/core': 8.9.4(vue@3.2.40)
- local-pkg: 0.4.1
- magic-string: 0.26.2
- resolve: 1.22.1
- unplugin: 0.6.3(vite@4.0.2)
+ fast-glob: 3.3.2
+ local-pkg: 0.5.0
+ magic-string: 0.30.5
+ minimatch: 9.0.3
+ unimport: 3.7.1
+ unplugin: 1.6.0
transitivePeerDependencies:
- - esbuild
- rollup
- - vite
- - webpack
dev: true
/unplugin-vue-components@0.19.9(vite@4.0.2)(vue@3.2.40):
@@ -34247,12 +31288,12 @@ packages:
- webpack
dev: true
- /unplugin@0.6.3(vite@4.0.2):
- resolution: {integrity: sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A==}
+ /unplugin@0.7.2(vite@4.0.2):
+ resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
peerDependencies:
esbuild: '>=0.13'
rollup: ^2.50.0
- vite: ^2.3.0
+ vite: ^2.3.0 || ^3.0.0-0
webpack: 4 || 5
peerDependenciesMeta:
esbuild:
@@ -34264,34 +31305,20 @@ packages:
webpack:
optional: true
dependencies:
+ acorn: 8.11.3
chokidar: 3.5.3
vite: 4.0.2(@types/node@16.18.11)
webpack-sources: 3.2.3
- webpack-virtual-modules: 0.4.3
+ webpack-virtual-modules: 0.4.5
dev: true
- /unplugin@0.7.2(vite@4.0.2):
- resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
- peerDependencies:
- esbuild: '>=0.13'
- rollup: ^2.50.0
- vite: ^2.3.0 || ^3.0.0-0
- webpack: 4 || 5
- peerDependenciesMeta:
- esbuild:
- optional: true
- rollup:
- optional: true
- vite:
- optional: true
- webpack:
- optional: true
+ /unplugin@1.6.0:
+ resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==}
dependencies:
- acorn: 8.10.0
+ acorn: 8.11.3
chokidar: 3.5.3
- vite: 4.0.2(@types/node@16.18.11)
webpack-sources: 3.2.3
- webpack-virtual-modules: 0.4.5
+ webpack-virtual-modules: 0.6.1
dev: true
/unset-value@1.0.0:
@@ -34355,26 +31382,6 @@ packages:
picocolors: 1.0.0
dev: true
- /update-notifier@5.1.0:
- resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==}
- engines: {node: '>=10'}
- dependencies:
- boxen: 5.1.2
- chalk: 4.1.2
- configstore: 5.0.1
- has-yarn: 2.1.0
- import-lazy: 2.1.0
- is-ci: 2.0.0
- is-installed-globally: 0.4.0
- is-npm: 5.0.0
- is-yarn-global: 0.3.0
- latest-version: 5.1.0
- pupa: 2.1.1
- semver: 7.5.1
- semver-diff: 3.1.1
- xdg-basedir: 4.0.0
- dev: false
-
/upper-case-first@2.0.2:
resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}
dependencies:
@@ -34414,47 +31421,6 @@ packages:
webpack: 4.46.0
dev: true
- /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.75.0):
- resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- file-loader: '*'
- webpack: ^4.0.0 || ^5.0.0
- peerDependenciesMeta:
- file-loader:
- optional: true
- dependencies:
- file-loader: 6.2.0(webpack@5.75.0)
- loader-utils: 2.0.4
- mime-types: 2.1.35
- schema-utils: 3.1.1
- webpack: 5.75.0
- dev: false
-
- /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.83.1):
- resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
- engines: {node: '>= 10.13.0'}
- peerDependencies:
- file-loader: '*'
- webpack: ^4.0.0 || ^5.0.0
- peerDependenciesMeta:
- file-loader:
- optional: true
- dependencies:
- file-loader: 6.2.0(webpack@5.83.1)
- loader-utils: 2.0.4
- mime-types: 2.1.35
- schema-utils: 3.1.1
- webpack: 5.83.1
- dev: false
-
- /url-parse-lax@3.0.0:
- resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==}
- engines: {node: '>=4'}
- dependencies:
- prepend-http: 2.0.0
- dev: false
-
/url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
dependencies:
@@ -34477,7 +31443,7 @@ packages:
/urql@3.0.3(graphql@16.7.1)(react@18.2.0):
resolution: {integrity: sha512-aVUAMRLdc5AOk239DxgXt6ZxTl/fEmjr7oyU5OGo8uvpqu42FkeJErzd2qBzhAQ3DyusoZIbqbBLPlnKo/yy2A==}
peerDependencies:
- graphql: 16.7.1
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
react: '>= 16.8.0'
dependencies:
'@urql/core': 3.0.5(graphql@16.7.1)
@@ -34610,14 +31576,17 @@ packages:
/utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
+ dev: true
/utility-types@3.10.0:
resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==}
engines: {node: '>= 4'}
+ dev: false
/utils-merge@1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ dev: true
/uuid-browser@3.1.0:
resolution: {integrity: sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg==}
@@ -34691,10 +31660,6 @@ packages:
vite: 4.3.8(@types/node@16.18.11)
dev: false
- /value-equal@1.0.1:
- resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
- dev: false
-
/value-or-promise@1.0.11:
resolution: {integrity: sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==}
engines: {node: '>=12'}
@@ -34706,15 +31671,18 @@ packages:
/vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
+ dev: true
/vfile-location@3.2.0:
resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==}
+ dev: true
/vfile-message@2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
dependencies:
'@types/unist': 2.0.6
unist-util-stringify-position: 2.0.3
+ dev: true
/vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
@@ -34730,6 +31698,7 @@ packages:
is-buffer: 2.0.5
unist-util-stringify-position: 2.0.3
vfile-message: 2.0.4
+ dev: true
/vfile@6.0.1:
resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
@@ -34746,8 +31715,8 @@ packages:
dependencies:
cac: 6.7.14
debug: 4.3.4
- mlly: 1.2.0
- pathe: 1.1.0
+ mlly: 1.4.2
+ pathe: 1.1.1
picocolors: 1.0.0
vite: 4.5.0(@types/node@18.16.14)
transitivePeerDependencies:
@@ -35453,7 +32422,7 @@ packages:
dependencies:
'@vue/language-core': 1.8.4(typescript@4.9.5)
'@vue/typescript': 1.8.4(typescript@4.9.5)
- semver: 7.5.4
+ semver: 7.5.1
typescript: 4.9.5
dev: true
@@ -35532,20 +32501,6 @@ packages:
xml-name-validator: 4.0.0
dev: true
- /wait-on@6.0.1:
- resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
- engines: {node: '>=10.0.0'}
- hasBin: true
- dependencies:
- axios: 0.25.0
- joi: 17.7.0
- lodash: 4.17.21
- minimist: 1.2.7
- rxjs: 7.8.0
- transitivePeerDependencies:
- - debug
- dev: false
-
/walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
dependencies:
@@ -35587,12 +32542,6 @@ packages:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
- /wbuf@1.7.3:
- resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
- dependencies:
- minimalistic-assert: 1.0.1
- dev: false
-
/wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
dependencies:
@@ -35609,6 +32558,7 @@ packages:
/web-namespaces@1.1.4:
resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==}
+ dev: true
/web-streams-polyfill@3.2.1:
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
@@ -35658,25 +32608,6 @@ packages:
- utf-8-validate
dev: true
- /webpack-bundle-analyzer@4.5.0:
- resolution: {integrity: sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==}
- engines: {node: '>= 10.13.0'}
- hasBin: true
- dependencies:
- acorn: 8.10.0
- acorn-walk: 8.2.0
- chalk: 4.1.2
- commander: 7.2.0
- gzip-size: 6.0.0
- lodash: 4.17.21
- opener: 1.5.2
- sirv: 1.0.19
- ws: 7.5.9
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
- dev: false
-
/webpack-dev-middleware@3.7.3(webpack@4.46.0):
resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==}
engines: {node: '>= 6'}
@@ -35706,68 +32637,6 @@ packages:
webpack: 5.75.0
dev: true
- /webpack-dev-middleware@5.3.1(webpack@5.75.0):
- resolution: {integrity: sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==}
- engines: {node: '>= 12.13.0'}
- peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
- dependencies:
- colorette: 2.0.19
- memfs: 3.4.1
- mime-types: 2.1.35
- range-parser: 1.2.1
- schema-utils: 4.0.0
- webpack: 5.75.0
- dev: false
-
- /webpack-dev-server@4.11.1(webpack@5.75.0):
- resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==}
- engines: {node: '>= 12.13.0'}
- hasBin: true
- peerDependencies:
- webpack: ^4.37.0 || ^5.0.0
- webpack-cli: '*'
- peerDependenciesMeta:
- webpack-cli:
- optional: true
- dependencies:
- '@types/bonjour': 3.5.10
- '@types/connect-history-api-fallback': 1.3.5
- '@types/express': 4.17.14
- '@types/serve-index': 1.9.1
- '@types/serve-static': 1.13.10
- '@types/sockjs': 0.3.33
- '@types/ws': 8.5.3
- ansi-html-community: 0.0.8
- bonjour-service: 1.0.11
- chokidar: 3.5.3
- colorette: 2.0.19
- compression: 1.7.4
- connect-history-api-fallback: 2.0.0
- default-gateway: 6.0.3
- express: 4.18.2
- graceful-fs: 4.2.11
- html-entities: 2.3.3
- http-proxy-middleware: 2.0.6(@types/express@4.17.14)
- ipaddr.js: 2.0.1
- open: 8.4.0
- p-retry: 4.6.1
- rimraf: 3.0.2
- schema-utils: 4.0.0
- selfsigned: 2.1.1
- serve-index: 1.9.1
- sockjs: 0.3.24
- spdy: 4.0.2
- webpack: 5.75.0
- webpack-dev-middleware: 5.3.1(webpack@5.75.0)
- ws: 8.13.0
- transitivePeerDependencies:
- - bufferutil
- - debug
- - supports-color
- - utf-8-validate
- dev: false
-
/webpack-filter-warnings-plugin@1.2.1(webpack@4.46.0):
resolution: {integrity: sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==}
engines: {node: '>= 4.3 < 5.0.0 || >= 5.10'}
@@ -35793,13 +32662,6 @@ packages:
uuid: 3.4.0
dev: true
- /webpack-merge@5.8.0:
- resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==}
- engines: {node: '>=10.0.0'}
- dependencies:
- clone-deep: 4.0.1
- wildcard: 2.0.0
-
/webpack-sources@1.4.3:
resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
dependencies:
@@ -35810,6 +32672,7 @@ packages:
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
+ dev: true
/webpack-virtual-modules@0.2.2:
resolution: {integrity: sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==}
@@ -35819,14 +32682,14 @@ packages:
- supports-color
dev: true
- /webpack-virtual-modules@0.4.3:
- resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==}
- dev: true
-
/webpack-virtual-modules@0.4.5:
resolution: {integrity: sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==}
dev: true
+ /webpack-virtual-modules@0.6.1:
+ resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==}
+ dev: true
+
/webpack@4.46.0:
resolution: {integrity: sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==}
engines: {node: '>=6.11.5'}
@@ -35882,8 +32745,8 @@ packages:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/wasm-edit': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
- acorn: 8.10.0
- acorn-import-assertions: 1.8.0(acorn@8.10.0)
+ acorn: 8.11.3
+ acorn-import-assertions: 1.8.0(acorn@8.11.3)
browserslist: 4.21.10
chrome-trace-event: 1.0.3
enhanced-resolve: 5.14.0
@@ -35905,6 +32768,7 @@ packages:
- '@swc/core'
- esbuild
- uglify-js
+ dev: true
/webpack@5.83.1:
resolution: {integrity: sha512-TNsG9jDScbNuB+Lb/3+vYolPplCS3bbEaJf+Bj0Gw4DhP3ioAflBb1flcRt9zsWITyvOhM96wMQNRWlSX52DgA==}
@@ -35921,8 +32785,8 @@ packages:
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/wasm-edit': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
- acorn: 8.10.0
- acorn-import-assertions: 1.9.0(acorn@8.10.0)
+ acorn: 8.11.3
+ acorn-import-assertions: 1.9.0(acorn@8.11.3)
browserslist: 4.21.10
chrome-trace-event: 1.0.3
enhanced-resolve: 5.14.0
@@ -35944,33 +32808,7 @@ packages:
- '@swc/core'
- esbuild
- uglify-js
-
- /webpackbar@5.0.2(webpack@5.75.0):
- resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
- engines: {node: '>=12'}
- peerDependencies:
- webpack: 3 || 4 || 5
- dependencies:
- chalk: 4.1.2
- consola: 2.15.3
- pretty-time: 1.1.0
- std-env: 3.3.2
- webpack: 5.75.0
- dev: false
-
- /websocket-driver@0.7.4:
- resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==}
- engines: {node: '>=0.8.0'}
- dependencies:
- http-parser-js: 0.5.6
- safe-buffer: 5.2.1
- websocket-extensions: 0.1.4
- dev: false
-
- /websocket-extensions@0.1.4:
- resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
- engines: {node: '>=0.8.0'}
- dev: false
+ dev: true
/well-known-symbols@2.0.0:
resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==}
@@ -36062,6 +32900,7 @@ packages:
hasBin: true
dependencies:
isexe: 2.0.0
+ dev: true
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
@@ -36090,16 +32929,7 @@ packages:
engines: {node: '>=8'}
dependencies:
string-width: 4.2.3
-
- /widest-line@4.0.1:
- resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==}
- engines: {node: '>=12'}
- dependencies:
- string-width: 5.1.2
- dev: false
-
- /wildcard@2.0.0:
- resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==}
+ dev: true
/wonka@6.1.1:
resolution: {integrity: sha512-shBtyZ0KFvUadtnDGlTRA4mF4pgcRoyZKikdputKhmShoXWcZDvlg6CUw6Jx9nTL7Ub8QUJoIarPpxdlosg9cw==}
@@ -36149,15 +32979,6 @@ packages:
string-width: 4.2.3
strip-ansi: 6.0.1
- /wrap-ansi@8.0.1:
- resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==}
- engines: {node: '>=12'}
- dependencies:
- ansi-styles: 6.1.0
- string-width: 5.1.2
- strip-ansi: 7.0.1
- dev: false
-
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -36168,6 +32989,7 @@ packages:
is-typedarray: 1.0.0
signal-exit: 3.0.7
typedarray-to-buffer: 3.1.5
+ dev: true
/ws@7.5.9:
resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
@@ -36180,6 +33002,7 @@ packages:
optional: true
utf-8-validate:
optional: true
+ dev: true
/ws@8.10.0:
resolution: {integrity: sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==}
@@ -36218,6 +33041,7 @@ packages:
optional: true
utf-8-validate:
optional: true
+ dev: true
/ws@8.9.0:
resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==}
@@ -36239,18 +33063,6 @@ packages:
default-browser-id: 1.0.4
dev: true
- /xdg-basedir@4.0.0:
- resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==}
- engines: {node: '>=8'}
- dev: false
-
- /xml-js@1.6.11:
- resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
- hasBin: true
- dependencies:
- sax: 1.2.4
- dev: false
-
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
@@ -36439,7 +33251,8 @@ packages:
/zwitch@1.0.5:
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
+ dev: true
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
- dev: false
\ No newline at end of file
+ dev: false