@decaf-ts/decorator-validation
Version:
simple decorator based validation engine
156 lines (155 loc) • 6.74 kB
TypeScript
/**
* @description Object-like set of keys used for comparison-based validations.
* @summary Provides canonical names for validators that compare two values (equality and ordering checks).
* @typedef {Object} ComparisonValidationKeysDef
* @property {"equals"} EQUALS Validates if two values are equal.
* @property {"different"} DIFF Validates if two values are different.
* @property {"lessThan"} LESS_THAN Validates if a value is less than another.
* @property {"lessThanOrEqual"} LESS_THAN_OR_EQUAL Validates if a value is less than or equal to another.
* @property {"greaterThan"} GREATER_THAN Validates if a value is greater than another.
* @property {"greaterThanOrEqual"} GREATER_THAN_OR_EQUAL Validates if a value is greater than or equal to another.
* @memberOf module:decorator-validation.Validation
*/
/**
* @description Keys used for comparison-based validations.
* @summary Canonical key names for comparison validators.
* @const ComparisonValidationKeys
* @memberOf module:decorator-validation.Validation
* @category Validation
* @type {ComparisonValidationKeysDef}
*/
export declare const ComparisonValidationKeys: {
readonly EQUALS: "equals";
readonly DIFF: "different";
readonly LESS_THAN: "lessThan";
readonly LESS_THAN_OR_EQUAL: "lessThanOrEqual";
readonly GREATER_THAN: "greaterThan";
readonly GREATER_THAN_OR_EQUAL: "greaterThanOrEqual";
};
/**
* @description Object-like set of keys used across all validators in the system.
* @summary Defines the canonical namespaced key prefix and the individual validation flags for rules such as required, min/max, length, patterns, types, lists and more.
* @typedef {Object} ValidationKeysDef
* @property {string} REFLECT prefixes others (namespace prefix)
* @property {"required"} REQUIRED sets as required
* @property {"min"} MIN defines min value
* @property {"max"} MAX defines max value
* @property {"step"} STEP defines step
* @property {"minlength"} MIN_LENGTH defines min length
* @property {"maxlength"} MAX_LENGTH defines max length
* @property {"pattern"} PATTERN defines pattern
* @property {"email"} EMAIL defines email
* @property {"url"} URL defines url
* @property {"date"} DATE defines date
* @property {"type"} TYPE defines type
* @property {"password"} PASSWORD defines password
* @property {"list"} LIST defines list
* @property {"unique"} UNIQUE flags uniqueness
* @property {"validator"} VALIDATOR custom validator id
* @memberOf module:decorator-validation.Validation
*/
/**
* @description The keys used for validation.
* @summary A namespaced collection of validation key strings used throughout the library.
* @const ValidationKeys
* @memberOf module:decorator-validation.Validation
* @category Validation
* @type {ValidationKeysDef}
*/
export declare const ValidationKeys: {
readonly EQUALS: "equals";
readonly DIFF: "different";
readonly LESS_THAN: "lessThan";
readonly LESS_THAN_OR_EQUAL: "lessThanOrEqual";
readonly GREATER_THAN: "greaterThan";
readonly GREATER_THAN_OR_EQUAL: "greaterThanOrEqual";
readonly REFLECT: "decaf.model.validation.";
readonly DATE: "date";
readonly EMAIL: "email";
readonly FORMAT: "format";
readonly LIST: "list";
readonly MAX: "max";
readonly MAX_LENGTH: "maxlength";
readonly MIN: "min";
readonly MIN_LENGTH: "minlength";
readonly PASSWORD: "password";
readonly PATTERN: "pattern";
readonly REQUIRED: "required";
readonly STEP: "step";
readonly TYPE: "type";
readonly UNIQUE: "unique";
readonly URL: "url";
readonly VALIDATOR: "validator";
};
/**
* @description list of month names
* @summary Stores month names. Can be changed for localization purposes
* @const MONTH_NAMES
* @memberOf module:decorator-validation.Validation
* @category Validation
*/
export declare const MONTH_NAMES: string[];
/**
* @description list of names of days of the week
* @summary Stores names for days of the week. Can be changed for localization purposes
* @const DAYS_OF_WEEK_NAMES
* @memberOf module:decorator-validation.Validation
* @category Validation
*/
export declare const DAYS_OF_WEEK_NAMES: string[];
/**
* @description Type definition for default error message strings keyed by validation type.
* @summary Enumerates the supported error message keys with their intended meaning; used to localize or override default messages.
* @typedef {Object} DefaultErrorMessages
* @property {string} REQUIRED default error message
* @property {string} MIN default error message
* @property {string} MAX default error message
* @property {string} MIN_LENGTH default error message
* @property {string} MAX_LENGTH default error message
* @property {string} PATTERN default error message
* @property {string} EMAIL default error message
* @property {string} URL default error message
* @property {string} TYPE default error message
* @property {string} STEP default error message
* @property {string} DATE default error message
* @property {string} DEFAULT default error message
* @property {string} PASSWORD default error message
* @property {string} LIST default error message
* @property {string} LIST_INSIDE default error message
* @property {string} MODEL_NOT_FOUND default error message
* @memberOf module:decorator-validation.Validation
*/
/**
* @description Defines the default error messages
* @summary Mapping between validation keys and their default human-readable error messages.
* @const DEFAULT_ERROR_MESSAGES
* @memberOf module:decorator-validation.Validation
* @category Validation
* @type {DefaultErrorMessages}
*/
export declare const DEFAULT_ERROR_MESSAGES: Record<string, string>;
/**
* @description Type definition for default regular expression patterns used in validation.
* @summary Captures common regex patterns for email, URL, and password policies, including nested grouping for password-related rules.
* @typedef {Object} DefaultPatterns
* @property {RegExp} EMAIL Email address validation pattern
* @property {RegExp} URL URL validation pattern
* @property {Object} PASSWORD Password-related regex patterns
* @property {RegExp} PASSWORD.CHAR8_ONE_OF_EACH At least 8 chars with lower, upper, number, and special char
* @memberOf module:decorator-validation.Validation
*/
/**
* @description Defines the various default regexp patterns used
* @summary Collection of frequently used validation patterns grouped under semantic keys.
* @const DEFAULT_PATTERNS
* @memberOf module:decorator-validation.Validation
* @category Validation
* @type {DefaultPatterns}
*/
export declare const DEFAULT_PATTERNS: {
EMAIL: RegExp;
URL: RegExp;
PASSWORD: {
CHAR8_ONE_OF_EACH: RegExp;
};
};