@frank-auth/react
Version:
Flexible and customizable React UI components for Frank Authentication
93 lines • 3.95 kB
TypeScript
export interface ValidationResult {
isValid: boolean;
error?: string;
errors?: string[];
}
export type ValidationRule = (value: any) => ValidationResult | Promise<ValidationResult>;
export declare const required: (message?: string) => ValidationRule;
export declare const minLength: (min: number, message?: string) => ValidationRule;
export declare const maxLength: (max: number, message?: string) => ValidationRule;
export declare const pattern: (regex: RegExp, message?: string) => ValidationRule;
export declare const email: (message?: string) => ValidationRule;
export declare const phone: (message?: string) => ValidationRule;
export declare const username: (message?: string) => ValidationRule;
export declare const password: (options?: {
minLength?: number;
requireUppercase?: boolean;
requireLowercase?: boolean;
requireNumbers?: boolean;
requireSymbols?: boolean;
message?: string;
}) => ValidationRule;
export declare const confirmPassword: (originalPassword: string, message?: string) => ValidationRule;
export declare const url: (message?: string) => ValidationRule;
export declare const number: (options?: {
min?: number;
max?: number;
integer?: boolean;
message?: string;
}) => ValidationRule;
export declare const oneOf: (options: any[], message?: string) => ValidationRule;
export declare const custom: (validator: (value: any) => boolean | string, message?: string) => ValidationRule;
export declare const asyncValidation: (validator: (value: any) => Promise<boolean | string>, message?: string) => ValidationRule;
export declare const combine: (...rules: ValidationRule[]) => ValidationRule;
export interface FormValidationRules {
[fieldName: string]: ValidationRule | ValidationRule[];
}
export interface FormValidationResult {
isValid: boolean;
errors: Record<string, string>;
fieldErrors: Record<string, string[]>;
}
export declare const validateForm: (data: Record<string, any>, rules: FormValidationRules) => Promise<FormValidationResult>;
export declare const validateField: (value: any, rules: ValidationRule | ValidationRule[]) => Promise<ValidationResult>;
export declare const validateSignInForm: (data: {
identifier: string;
password?: string;
}) => Promise<FormValidationResult>;
export declare const validateSignUpForm: (data: {
emailAddress?: string;
username?: string;
password?: string;
confirmPassword?: string;
firstName?: string;
lastName?: string;
phoneNumber?: string;
}) => Promise<FormValidationResult>;
export declare const validatePasswordResetForm: (data: {
emailAddress: string;
}) => Promise<FormValidationResult>;
export declare const validatePasswordChangeForm: (data: {
currentPassword: string;
newPassword: string;
confirmPassword: string;
}) => Promise<FormValidationResult>;
export declare const validateProfileForm: (data: {
firstName?: string;
lastName?: string;
username?: string;
emailAddress?: string;
phoneNumber?: string;
bio?: string;
website?: string;
}) => Promise<FormValidationResult>;
export declare const validateOrganizationForm: (data: {
name: string;
slug?: string;
description?: string;
website?: string;
billingEmail?: string;
}) => Promise<FormValidationResult>;
export declare const validateInvitationForm: (data: {
emailAddress: string;
roleId: string;
customMessage?: string;
}) => Promise<FormValidationResult>;
export declare const isValidEmail: (email: string) => boolean;
export declare const isValidPhone: (phone: string) => boolean;
export declare const isValidUsername: (username: string) => boolean;
export declare const isValidUrl: (url: string) => boolean;
export declare const sanitizeInput: (input: string) => string;
export declare const normalizeEmail: (email: string) => string;
export declare const normalizePhone: (phone: string) => string;
//# sourceMappingURL=validation.d.ts.map