---
title: supertokens-web-js/recipe/emailpassword
description: References documentation for the supertokens-web-js/recipe/emailpassword package
sidebar:
  order: 30
---

## Classes

### default

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:21](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L21)

#### Constructors

##### Constructor

```ts check=false reason="Generated API signature"
new default(): default;
```

###### Returns

[`default`](#default)

#### Methods

##### doesEmailExist()

```ts check=false reason="Generated API signature"
static doesEmailExist(input): Promise<{
  doesExist: boolean;
  fetchResponse: Response;
  status: "OK";
}>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:254](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L254)

Check if an email exists

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.email` | `string` |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<\{
  `doesExist`: `boolean`;
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}\>

`{status: "OK", doesExist: boolean}`

###### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

##### getResetPasswordTokenFromURL()

```ts check=false reason="Generated API signature"
static getResetPasswordTokenFromURL(input?): string;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:272](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L272)

Reads and returns the reset password token from the current URL

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

###### Returns

`string`

The "token" query parameter from the current location

##### getTenantIdFromURL()

```ts check=false reason="Generated API signature"
static getTenantIdFromURL(input?): string;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:286](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L286)

Reads and returns the tenant id from the current URL

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

###### Returns

`string`

The "tenantId" query parameter from the current location

##### init()

```ts check=false reason="Generated API signature"
static init(config?): CreateRecipeFunction<PreAndPostAPIHookAction>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:22](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L22)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `config?` | [`UserInput`](recipe-emailpassword-types#userinput) |

###### Returns

[`CreateRecipeFunction`](types#createrecipefunction)\<[`PreAndPostAPIHookAction`](recipe-emailpassword-types#preandpostapihookaction)\>

##### sendPasswordResetEmail()

```ts check=false reason="Generated API signature"
static sendPasswordResetEmail(input): Promise<
  | {
  fetchResponse: Response;
  status: "OK";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "PASSWORD_RESET_NOT_ALLOWED";
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:95](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L95)

Send an email to the user for password reset

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"PASSWORD_RESET_NOT_ALLOWED"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}\>

`{status: "OK"}` if successfull

###### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

##### signIn()

```ts check=false reason="Generated API signature"
static signIn(input): Promise<
  | {
  fetchResponse: Response;
  status: "OK";
  user: User;
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}
  | {
  fetchResponse: Response;
  status: "WRONG_CREDENTIALS_ERROR";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "SIGN_IN_NOT_ALLOWED";
}>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:202](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L202)

Sign in a user with email and password

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `shouldTryLinkingWithSessionUser?`: `boolean`; `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.shouldTryLinkingWithSessionUser?` | `boolean` |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"WRONG_CREDENTIALS_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"SIGN_IN_NOT_ALLOWED"`;
\}\>

`{status: "OK"}` if successfull

###### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

##### signOut()

```ts check=false reason="Generated API signature"
static signOut(input?): Promise<void>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:26](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L26)

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<`void`\>

##### signUp()

```ts check=false reason="Generated API signature"
static signUp(input): Promise<
  | {
  fetchResponse: Response;
  status: "OK";
  user: User;
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "SIGN_UP_NOT_ALLOWED";
}>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:146](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L146)

Sign up a user with email and password

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `shouldTryLinkingWithSessionUser?`: `boolean`; `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.shouldTryLinkingWithSessionUser?` | `boolean` |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"SIGN_UP_NOT_ALLOWED"`;
\}\>

`{status: "OK"}` if successfull

###### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

##### submitNewPassword()

```ts check=false reason="Generated API signature"
static submitNewPassword(input): Promise<
  | {
  fetchResponse: Response;
  status: "OK";
}
  | {
  fetchResponse: Response;
  status: "RESET_PASSWORD_INVALID_TOKEN_ERROR";
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}>;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:49](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L49)

Submit a new password for the user

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

###### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"RESET_PASSWORD_INVALID_TOKEN_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}\>

`{status: "OK"}` if successfull

###### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

## Type Aliases

### RecipeFunctionOptions

```ts check=false reason="Generated API signature"
type RecipeFunctionOptions = object;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/recipeModule/types.ts:120](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/recipeModule/types.ts#L120)

For the options object passed to recipe functions, we do not need a postAPIHook.

This is because these functions will be called manually, so the user always knows which API is called (making the
postAPIHook redundant). They can consume the networkResponse returned by recipe functions as a way to handle post
API logic

#### Properties

| Property | Type | Defined in |
| ------ | ------ | ------ |
| <a id="preapihook"></a> `preAPIHook?` | (`input`) => `Promise`\<\{ `requestInit`: `RequestInit`; `url`: `string`; \}\> | [tmp/supertokens-web-js/lib/ts/recipe/recipeModule/types.ts:121](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/recipeModule/types.ts#L121) |

## Variables

### doesEmailExist()

```ts check=false reason="Generated API signature"
const doesEmailExist: (input) => Promise<{
  doesExist: boolean;
  fetchResponse: Response;
  status: "OK";
}> = RecipeWrapper.doesEmailExist;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:299](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L299)

Check if an email exists

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `email`: `string`; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.email` | `string` |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<\{
  `doesExist`: `boolean`;
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}\>

`{status: "OK", doesExist: boolean}`

#### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

***

### getResetPasswordTokenFromURL()

```ts check=false reason="Generated API signature"
const getResetPasswordTokenFromURL: (input?) => string = RecipeWrapper.getResetPasswordTokenFromURL;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:301](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L301)

Reads and returns the reset password token from the current URL

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

#### Returns

`string`

The "token" query parameter from the current location

***

### getTenantIdFromURL()

```ts check=false reason="Generated API signature"
const getTenantIdFromURL: (input?) => string = RecipeWrapper.getTenantIdFromURL;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:302](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L302)

Reads and returns the tenant id from the current URL

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

#### Returns

`string`

The "tenantId" query parameter from the current location

***

### init()

```ts check=false reason="Generated API signature"
const init: (config?) => CreateRecipeFunction<PreAndPostAPIHookAction> = RecipeWrapper.init;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:294](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L294)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `config?` | [`UserInput`](recipe-emailpassword-types#userinput) |

#### Returns

[`CreateRecipeFunction`](types#createrecipefunction)\<[`PreAndPostAPIHookAction`](recipe-emailpassword-types#preandpostapihookaction)\>

***

### sendPasswordResetEmail()

```ts check=false reason="Generated API signature"
const sendPasswordResetEmail: (input) => Promise<
  | {
  fetchResponse: Response;
  status: "OK";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "PASSWORD_RESET_NOT_ALLOWED";
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}> = RecipeWrapper.sendPasswordResetEmail;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:296](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L296)

Send an email to the user for password reset

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"PASSWORD_RESET_NOT_ALLOWED"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}\>

`{status: "OK"}` if successfull

#### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

***

### signIn()

```ts check=false reason="Generated API signature"
const signIn: (input) => Promise<
  | {
  fetchResponse: Response;
  status: "OK";
  user: User;
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}
  | {
  fetchResponse: Response;
  status: "WRONG_CREDENTIALS_ERROR";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "SIGN_IN_NOT_ALLOWED";
}> = RecipeWrapper.signIn;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:298](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L298)

Sign in a user with email and password

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `shouldTryLinkingWithSessionUser?`: `boolean`; `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.shouldTryLinkingWithSessionUser?` | `boolean` |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"WRONG_CREDENTIALS_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"SIGN_IN_NOT_ALLOWED"`;
\}\>

`{status: "OK"}` if successfull

#### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

***

### signOut()

```ts check=false reason="Generated API signature"
const signOut: (input?) => Promise<void> = RecipeWrapper.signOut;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:300](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L300)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input?` | \{ `userContext?`: `any`; \} |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<`void`\>

***

### signUp()

```ts check=false reason="Generated API signature"
const signUp: (input) => Promise<
  | {
  fetchResponse: Response;
  status: "OK";
  user: User;
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}
  | {
  fetchResponse: Response;
  reason: string;
  status: "SIGN_UP_NOT_ALLOWED";
}> = RecipeWrapper.signUp;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:297](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L297)

Sign up a user with email and password

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `shouldTryLinkingWithSessionUser?`: `boolean`; `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.shouldTryLinkingWithSessionUser?` | `boolean` |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
  `user`: [`User`](types#user);
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `reason`: `string`;
  `status`: `"SIGN_UP_NOT_ALLOWED"`;
\}\>

`{status: "OK"}` if successfull

#### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

***

### submitNewPassword()

```ts check=false reason="Generated API signature"
const submitNewPassword: (input) => Promise<
  | {
  fetchResponse: Response;
  status: "OK";
}
  | {
  fetchResponse: Response;
  status: "RESET_PASSWORD_INVALID_TOKEN_ERROR";
}
  | {
  fetchResponse: Response;
  formFields: object[];
  status: "FIELD_ERROR";
}> = RecipeWrapper.submitNewPassword;
```

Defined in: [tmp/supertokens-web-js/lib/ts/recipe/emailpassword/index.ts:295](https://github.com/supertokens/supertokens-web-js/blob/be2e0fd7dcade8352cdc9639abe968e5cda5b1cd/lib/ts/recipe/emailpassword/index.ts#L295)

Submit a new password for the user

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `input` | \{ `formFields`: `object`[]; `options?`: [`RecipeFunctionOptions`](#recipefunctionoptions); `userContext?`: `any`; \} |
| `input.formFields` | `object`[] |
| `input.options?` | [`RecipeFunctionOptions`](#recipefunctionoptions) |
| `input.userContext?` | `any` |

#### Returns

`Promise`\<
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"OK"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `status`: `"RESET_PASSWORD_INVALID_TOKEN_ERROR"`;
\}
  \| \{
  `fetchResponse`: `Response`;
  `formFields`: `object`[];
  `status`: `"FIELD_ERROR"`;
\}\>

`{status: "OK"}` if successfull

#### Throws

STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`

## References

### PostAPIHookContext

Re-exports [PostAPIHookContext](recipe-emailpassword-types#postapihookcontext)

***

### PreAPIHookContext

Re-exports [PreAPIHookContext](recipe-emailpassword-types#preapihookcontext)

***

### RecipeInterface

Re-exports [RecipeInterface](recipe-emailpassword-types#recipeinterface)

***

### UserInput

Re-exports [UserInput](recipe-emailpassword-types#userinput)
