diff --git a/packages/constants/auth.ts b/packages/constants/auth.ts
new file mode 100644
index 000000000..59f08a37f
--- /dev/null
+++ b/packages/constants/auth.ts
@@ -0,0 +1,91 @@
+export enum EAuthPageTypes {
+ PUBLIC = "PUBLIC",
+ NON_AUTHENTICATED = "NON_AUTHENTICATED",
+ SET_PASSWORD = "SET_PASSWORD",
+ ONBOARDING = "ONBOARDING",
+ AUTHENTICATED = "AUTHENTICATED",
+}
+
+export enum EAuthModes {
+ SIGN_IN = "SIGN_IN",
+ SIGN_UP = "SIGN_UP",
+}
+
+export enum EAuthSteps {
+ EMAIL = "EMAIL",
+ PASSWORD = "PASSWORD",
+ UNIQUE_CODE = "UNIQUE_CODE",
+}
+
+// TODO: remove this
+export enum EErrorAlertType {
+ BANNER_ALERT = "BANNER_ALERT",
+ INLINE_FIRST_NAME = "INLINE_FIRST_NAME",
+ INLINE_EMAIL = "INLINE_EMAIL",
+ INLINE_PASSWORD = "INLINE_PASSWORD",
+ INLINE_EMAIL_CODE = "INLINE_EMAIL_CODE",
+}
+
+export enum EAuthErrorCodes {
+ // Global
+ INSTANCE_NOT_CONFIGURED = "5000",
+ INVALID_EMAIL = "5005",
+ EMAIL_REQUIRED = "5010",
+ SIGNUP_DISABLED = "5015",
+ MAGIC_LINK_LOGIN_DISABLED = "5016",
+ PASSWORD_LOGIN_DISABLED = "5018",
+ USER_ACCOUNT_DEACTIVATED = "5019",
+ // Password strength
+ INVALID_PASSWORD = "5020",
+ SMTP_NOT_CONFIGURED = "5025",
+ // Sign Up
+ USER_ALREADY_EXIST = "5030",
+ AUTHENTICATION_FAILED_SIGN_UP = "5035",
+ REQUIRED_EMAIL_PASSWORD_SIGN_UP = "5040",
+ INVALID_EMAIL_SIGN_UP = "5045",
+ INVALID_EMAIL_MAGIC_SIGN_UP = "5050",
+ MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED = "5055",
+ // Sign In
+ USER_DOES_NOT_EXIST = "5060",
+ AUTHENTICATION_FAILED_SIGN_IN = "5065",
+ REQUIRED_EMAIL_PASSWORD_SIGN_IN = "5070",
+ INVALID_EMAIL_SIGN_IN = "5075",
+ INVALID_EMAIL_MAGIC_SIGN_IN = "5080",
+ MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED = "5085",
+ // Both Sign in and Sign up for magic
+ INVALID_MAGIC_CODE_SIGN_IN = "5090",
+ INVALID_MAGIC_CODE_SIGN_UP = "5092",
+ EXPIRED_MAGIC_CODE_SIGN_IN = "5095",
+ EXPIRED_MAGIC_CODE_SIGN_UP = "5097",
+ EMAIL_CODE_ATTEMPT_EXHAUSTED_SIGN_IN = "5100",
+ EMAIL_CODE_ATTEMPT_EXHAUSTED_SIGN_UP = "5102",
+ // Oauth
+ OAUTH_NOT_CONFIGURED = "5104",
+ GOOGLE_NOT_CONFIGURED = "5105",
+ GITHUB_NOT_CONFIGURED = "5110",
+ GITLAB_NOT_CONFIGURED = "5111",
+ GOOGLE_OAUTH_PROVIDER_ERROR = "5115",
+ GITHUB_OAUTH_PROVIDER_ERROR = "5120",
+ GITLAB_OAUTH_PROVIDER_ERROR = "5121",
+ // Reset Password
+ INVALID_PASSWORD_TOKEN = "5125",
+ EXPIRED_PASSWORD_TOKEN = "5130",
+ // Change password
+ INCORRECT_OLD_PASSWORD = "5135",
+ MISSING_PASSWORD = "5138",
+ INVALID_NEW_PASSWORD = "5140",
+ // set passowrd
+ PASSWORD_ALREADY_SET = "5145",
+ // Admin
+ ADMIN_ALREADY_EXIST = "5150",
+ REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME = "5155",
+ INVALID_ADMIN_EMAIL = "5160",
+ INVALID_ADMIN_PASSWORD = "5165",
+ REQUIRED_ADMIN_EMAIL_PASSWORD = "5170",
+ ADMIN_AUTHENTICATION_FAILED = "5175",
+ ADMIN_USER_ALREADY_EXIST = "5180",
+ ADMIN_USER_DOES_NOT_EXIST = "5185",
+ ADMIN_USER_DEACTIVATED = "5190",
+ // Rate limit
+ RATE_LIMIT_EXCEEDED = "5900",
+}
diff --git a/packages/constants/index.ts b/packages/constants/index.ts
new file mode 100644
index 000000000..97ccf7649
--- /dev/null
+++ b/packages/constants/index.ts
@@ -0,0 +1 @@
+export * from "./auth";
diff --git a/packages/constants/package.json b/packages/constants/package.json
new file mode 100644
index 000000000..d9939f8ee
--- /dev/null
+++ b/packages/constants/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@plane/constants",
+ "version": "0.21.0",
+ "private": true,
+ "main": "./index.ts"
+}
diff --git a/packages/constants/src/auth.ts b/packages/constants/src/auth.ts
deleted file mode 100644
index a91b1cc78..000000000
--- a/packages/constants/src/auth.ts
+++ /dev/null
@@ -1,386 +0,0 @@
-import { ReactNode } from "react";
-import Link from "next/link";
-
-export enum EPageTypes {
- PUBLIC = "PUBLIC",
- NON_AUTHENTICATED = "NON_AUTHENTICATED",
- SET_PASSWORD = "SET_PASSWORD",
- ONBOARDING = "ONBOARDING",
- AUTHENTICATED = "AUTHENTICATED",
-}
-
-export enum EAuthModes {
- SIGN_IN = "SIGN_IN",
- SIGN_UP = "SIGN_UP",
-}
-
-export enum EAuthSteps {
- EMAIL = "EMAIL",
- PASSWORD = "PASSWORD",
- UNIQUE_CODE = "UNIQUE_CODE",
-}
-
-// TODO: remove this
-export enum EErrorAlertType {
- BANNER_ALERT = "BANNER_ALERT",
- INLINE_FIRST_NAME = "INLINE_FIRST_NAME",
- INLINE_EMAIL = "INLINE_EMAIL",
- INLINE_PASSWORD = "INLINE_PASSWORD",
- INLINE_EMAIL_CODE = "INLINE_EMAIL_CODE",
-}
-
-export enum EAuthErrorCodes {
- // Global
- INSTANCE_NOT_CONFIGURED = "5000",
- INVALID_EMAIL = "5005",
- EMAIL_REQUIRED = "5010",
- SIGNUP_DISABLED = "5015",
- MAGIC_LINK_LOGIN_DISABLED = "5017",
- PASSWORD_LOGIN_DISABLED = "5019",
- SMTP_NOT_CONFIGURED = "5025",
- // Password strength
- INVALID_PASSWORD = "5020",
- // Sign Up
- USER_ACCOUNT_DEACTIVATED = "5019",
- USER_ALREADY_EXIST = "5030",
- AUTHENTICATION_FAILED_SIGN_UP = "5035",
- REQUIRED_EMAIL_PASSWORD_SIGN_UP = "5040",
- INVALID_EMAIL_SIGN_UP = "5045",
- INVALID_EMAIL_MAGIC_SIGN_UP = "5050",
- MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED = "5055",
- // Sign In
- USER_DOES_NOT_EXIST = "5060",
- AUTHENTICATION_FAILED_SIGN_IN = "5065",
- REQUIRED_EMAIL_PASSWORD_SIGN_IN = "5070",
- INVALID_EMAIL_SIGN_IN = "5075",
- INVALID_EMAIL_MAGIC_SIGN_IN = "5080",
- MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED = "5085",
- // Both Sign in and Sign up for magic
- INVALID_MAGIC_CODE = "5090",
- EXPIRED_MAGIC_CODE = "5095",
- EMAIL_CODE_ATTEMPT_EXHAUSTED = "5100",
- // Oauth
- OAUTH_NOT_CONFIGURED = "5104",
- GOOGLE_NOT_CONFIGURED = "5105",
- GITHUB_NOT_CONFIGURED = "5110",
- GITLAB_NOT_CONFIGURED = "5111",
- GOOGLE_OAUTH_PROVIDER_ERROR = "5115",
- GITHUB_OAUTH_PROVIDER_ERROR = "5120",
- GITLAB_OAUTH_PROVIDER_ERROR = "5121",
- // Reset Password
- INVALID_PASSWORD_TOKEN = "5125",
- EXPIRED_PASSWORD_TOKEN = "5130",
- // Change password
- INCORRECT_OLD_PASSWORD = "5135",
- MISSING_PASSWORD= "5138",
- INVALID_NEW_PASSWORD = "5140",
- // set passowrd
- PASSWORD_ALREADY_SET = "5145",
- // Admin
- ADMIN_ALREADY_EXIST = "5150",
- REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME = "5155",
- INVALID_ADMIN_EMAIL = "5160",
- INVALID_ADMIN_PASSWORD = "5165",
- REQUIRED_ADMIN_EMAIL_PASSWORD = "5170",
- ADMIN_AUTHENTICATION_FAILED = "5175",
- ADMIN_USER_ALREADY_EXIST = "5180",
- ADMIN_USER_DOES_NOT_EXIST = "5185",
-}
-
-export type TAuthErrorInfo = {
- type: EErrorAlertType;
- code: EAuthErrorCodes;
- title: string;
- message: ReactNode;
-};
-
-const errorCodeMessages: {
- [key in EAuthErrorCodes]: { title: string; message: (email?: string | undefined) => ReactNode };
-} = {
- // global
- [EAuthErrorCodes.INSTANCE_NOT_CONFIGURED]: {
- title: `Instance not configured`,
- message: () => `Instance not configured. Please contact your administrator.`,
- },
- [EAuthErrorCodes.SIGNUP_DISABLED]: {
- title: `Sign up disabled`,
- message: () => `Sign up disabled. Please contact your administrator.`,
- },
- [EAuthErrorCodes.INVALID_PASSWORD]: {
- title: `Invalid password`,
- message: () => `Invalid password. Please try again.`,
- },
- [EAuthErrorCodes.SMTP_NOT_CONFIGURED]: {
- title: `SMTP not configured`,
- message: () => `SMTP not configured. Please contact your administrator.`,
- },
-
- // email check in both sign up and sign in
- [EAuthErrorCodes.INVALID_EMAIL]: {
- title: `Invalid email`,
- message: () => `Invalid email. Please try again.`,
- },
- [EAuthenticationErrorCodes.EMAIL_REQUIRED]: {
- title: `Email required`,
- message: () => `Email required. Please try again.`,
- },
-
- // sign up
- [EAuthenticationErrorCodes.USER_ALREADY_EXIST]: {
- title: `User already exists`,
- message: (email = undefined) => (
-
- Your account is already registered.
-
- Sign In
-
- now.
-
- ),
- },
- [EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_UP]: {
- title: `Email and password required`,
- message: () => `Email and password required. Please try again.`,
- },
- [EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_UP]: {
- title: `Authentication failed`,
- message: () => `Authentication failed. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_UP]: {
- title: `Invalid email`,
- message: () => `Invalid email. Please try again.`,
- },
- [EAuthenticationErrorCodes.MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED]: {
- title: `Email and code required`,
- message: () => `Email and code required. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_UP]: {
- title: `Invalid email`,
- message: () => `Invalid email. Please try again.`,
- },
-
- // sign in
- [EAuthenticationErrorCodes.USER_ACCOUNT_DEACTIVATED]: {
- title: `User account deactivated`,
- message: () => Your account is deactivated. Contact support@plane.so.
,
- },
- [EAuthenticationErrorCodes.USER_DOES_NOT_EXIST]: {
- title: `User does not exist`,
- message: (email = undefined) => (
-
- No account found.
-
- Create one
-
- to get started.
-
- ),
- },
- [EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_IN]: {
- title: `Email and password required`,
- message: () => `Email and password required. Please try again.`,
- },
- [EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_IN]: {
- title: `Authentication failed`,
- message: () => `Authentication failed. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_IN]: {
- title: `Invalid email`,
- message: () => `Invalid email. Please try again.`,
- },
- [EAuthenticationErrorCodes.MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED]: {
- title: `Email and code required`,
- message: () => `Email and code required. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_IN]: {
- title: `Invalid email`,
- message: () => `Invalid email. Please try again.`,
- },
-
- // Both Sign in and Sign up
- [EAuthenticationErrorCodes.INVALID_MAGIC_CODE]: {
- title: `Authentication failed`,
- message: () => `Invalid magic code. Please try again.`,
- },
- [EAuthenticationErrorCodes.EXPIRED_MAGIC_CODE]: {
- title: `Expired magic code`,
- message: () => `Expired magic code. Please try again.`,
- },
- [EAuthenticationErrorCodes.EMAIL_CODE_ATTEMPT_EXHAUSTED]: {
- title: `Expired magic code`,
- message: () => `Expired magic code. Please try again.`,
- },
-
- // Oauth
- [EAuthenticationErrorCodes.OAUTH_NOT_CONFIGURED]: {
- title: `OAuth not configured`,
- message: () => `OAuth not configured. Please contact your administrator.`,
- },
- [EAuthenticationErrorCodes.GOOGLE_NOT_CONFIGURED]: {
- title: `Google not configured`,
- message: () => `Google not configured. Please contact your administrator.`,
- },
- [EAuthenticationErrorCodes.GITHUB_NOT_CONFIGURED]: {
- title: `GitHub not configured`,
- message: () => `GitHub not configured. Please contact your administrator.`,
- },
- [EAuthenticationErrorCodes.GITLAB_NOT_CONFIGURED]: {
- title: `GitLab not configured`,
- message: () => `GitLab not configured. Please contact your administrator.`,
- },
- [EAuthenticationErrorCodes.GOOGLE_OAUTH_PROVIDER_ERROR]: {
- title: `Google OAuth provider error`,
- message: () => `Google OAuth provider error. Please try again.`,
- },
- [EAuthenticationErrorCodes.GITHUB_OAUTH_PROVIDER_ERROR]: {
- title: `GitHub OAuth provider error`,
- message: () => `GitHub OAuth provider error. Please try again.`,
- },
- [EAuthenticationErrorCodes.GITLAB_OAUTH_PROVIDER_ERROR]: {
- title: `GitLab OAuth provider error`,
- message: () => `GitLab OAuth provider error. Please try again.`,
- },
-
- // Reset Password
- [EAuthenticationErrorCodes.INVALID_PASSWORD_TOKEN]: {
- title: `Invalid password token`,
- message: () => `Invalid password token. Please try again.`,
- },
- [EAuthenticationErrorCodes.EXPIRED_PASSWORD_TOKEN]: {
- title: `Expired password token`,
- message: () => `Expired password token. Please try again.`,
- },
-
- // Change password
-
- [EAuthenticationErrorCodes.MISSING_PASSWORD]: {
- title: `Password required`,
- message: () => `Password required. Please try again.`,
- },
- [EAuthenticationErrorCodes.INCORRECT_OLD_PASSWORD]: {
- title: `Incorrect old password`,
- message: () => `Incorrect old password. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_NEW_PASSWORD]: {
- title: `Invalid new password`,
- message: () => `Invalid new password. Please try again.`,
- },
-
- // set password
- [EAuthenticationErrorCodes.PASSWORD_ALREADY_SET]: {
- title: `Password already set`,
- message: () => `Password already set. Please try again.`,
- },
-
- // admin
- [EAuthenticationErrorCodes.ADMIN_ALREADY_EXIST]: {
- title: `Admin already exists`,
- message: () => `Admin already exists. Please try again.`,
- },
- [EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME]: {
- title: `Email, password and first name required`,
- message: () => `Email, password and first name required. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_ADMIN_EMAIL]: {
- title: `Invalid admin email`,
- message: () => `Invalid admin email. Please try again.`,
- },
- [EAuthenticationErrorCodes.INVALID_ADMIN_PASSWORD]: {
- title: `Invalid admin password`,
- message: () => `Invalid admin password. Please try again.`,
- },
- [EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD]: {
- title: `Email and password required`,
- message: () => `Email and password required. Please try again.`,
- },
- [EAuthenticationErrorCodes.ADMIN_AUTHENTICATION_FAILED]: {
- title: `Authentication failed`,
- message: () => `Authentication failed. Please try again.`,
- },
- [EAuthenticationErrorCodes.ADMIN_USER_ALREADY_EXIST]: {
- title: `Admin user already exists`,
- message: () => (
-
- Admin user already exists.
-
- Sign In
-
- now.
-
- ),
- },
- [EAuthenticationErrorCodes.ADMIN_USER_DOES_NOT_EXIST]: {
- title: `Admin user does not exist`,
- message: () => (
-
- Admin user does not exist.
-
- Sign In
-
- now.
-
- ),
- },
-};
-
-export const authErrorHandler = (
- errorCode: EAuthenticationErrorCodes,
- email?: string | undefined
-): TAuthErrorInfo | undefined => {
- const bannerAlertErrorCodes = [
- EAuthenticationErrorCodes.INSTANCE_NOT_CONFIGURED,
- EAuthenticationErrorCodes.INVALID_EMAIL,
- EAuthenticationErrorCodes.EMAIL_REQUIRED,
- EAuthenticationErrorCodes.SIGNUP_DISABLED,
- EAuthenticationErrorCodes.INVALID_PASSWORD,
- EAuthenticationErrorCodes.SMTP_NOT_CONFIGURED,
- EAuthenticationErrorCodes.USER_ALREADY_EXIST,
- EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_UP,
- EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_UP,
- EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_UP,
- EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_UP,
- EAuthenticationErrorCodes.MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED,
- EAuthenticationErrorCodes.USER_DOES_NOT_EXIST,
- EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_IN,
- EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_IN,
- EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_IN,
- EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_IN,
- EAuthenticationErrorCodes.MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED,
- EAuthenticationErrorCodes.INVALID_MAGIC_CODE,
- EAuthenticationErrorCodes.EXPIRED_MAGIC_CODE,
- EAuthenticationErrorCodes.EMAIL_CODE_ATTEMPT_EXHAUSTED,
- EAuthenticationErrorCodes.GOOGLE_NOT_CONFIGURED,
- EAuthenticationErrorCodes.GITHUB_NOT_CONFIGURED,
- EAuthenticationErrorCodes.GOOGLE_OAUTH_PROVIDER_ERROR,
- EAuthenticationErrorCodes.GITHUB_OAUTH_PROVIDER_ERROR,
- EAuthenticationErrorCodes.INVALID_PASSWORD_TOKEN,
- EAuthenticationErrorCodes.EXPIRED_PASSWORD_TOKEN,
- EAuthenticationErrorCodes.INCORRECT_OLD_PASSWORD,
- EAuthenticationErrorCodes.INVALID_NEW_PASSWORD,
- EAuthenticationErrorCodes.PASSWORD_ALREADY_SET,
- EAuthenticationErrorCodes.ADMIN_ALREADY_EXIST,
- EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME,
- EAuthenticationErrorCodes.INVALID_ADMIN_EMAIL,
- EAuthenticationErrorCodes.INVALID_ADMIN_PASSWORD,
- EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD,
- EAuthenticationErrorCodes.ADMIN_AUTHENTICATION_FAILED,
- EAuthenticationErrorCodes.ADMIN_USER_ALREADY_EXIST,
- EAuthenticationErrorCodes.ADMIN_USER_DOES_NOT_EXIST,
- ];
-
- if (bannerAlertErrorCodes.includes(errorCode))
- return {
- type: EErrorAlertType.BANNER_ALERT,
- code: errorCode,
- title: errorCodeMessages[errorCode]?.title || "Error",
- message: errorCodeMessages[errorCode]?.message(email) || "Something went wrong. Please try again.",
- };
-
- return undefined;
-};