ccashfrontend/views/node_modules/express-validator/check/check.d.ts
2021-06-18 09:20:09 +10:00

243 lines
8.3 KiB
TypeScript

import * as express from 'express';
import { Sanitizer } from '../filter';
import { Location } from './location';
export type URLProtocol = 'http' | 'https' | 'ftp'
export type UUIDVersion = 3 | 4 | 5 | 'all'
export type IPVersion = 4 | 6
export type AlphaLocale = 'ar' | 'ar-AE' | 'ar-BH' | 'ar-DZ' | 'ar-EG' | 'ar-IQ' | 'ar-JO' | 'ar-KW' | 'ar-LB' | 'ar-LY' | 'ar-MA' | 'ar-QA' | 'ar-QM' | 'ar-SA' | 'ar-SD' | 'ar-SY' | 'ar-TN' | 'ar-YE' | 'bg-BG' | 'cs-CZ' | 'da-DK' | 'de-DE' | 'el-GR' | 'en-AU' | 'en-GB' | 'en-HK' | 'en-IN' | 'en-NZ' | 'en-US' | 'en-ZA' | 'en-ZM' | 'es-ES' | 'fr-FR' | 'hu-HU' | 'it-IT' | 'nb-NO' | 'nl-NL' | 'nn-NO' | 'pl-PL' | 'pt-BR' | 'pt-PT' | 'ru-RU' | 'sk-SK' | 'sr-RS' | 'sr-RS@latin' | 'sv-SE' | 'tr-TR' | 'uk-UA'
export type AlphanumericLocale = 'ar' | 'ar-AE' | 'ar-BH' | 'ar-DZ' | 'ar-EG' | 'ar-IQ' | 'ar-JO' | 'ar-KW' | 'ar-LB' | 'ar-LY' | 'ar-MA' | 'ar-QA' | 'ar-QM' | 'ar-SA' | 'ar-SD' | 'ar-SY' | 'ar-TN' | 'ar-YE' | 'bg-BG' | 'cs-CZ' | 'da-DK' | 'de-DE' | 'el-GR' | 'en-AU' | 'en-GB' | 'en-HK' | 'en-IN' | 'en-NZ' | 'en-US' | 'en-ZA' | 'en-ZM' | 'es-ES' | 'fr-FR' | 'fr-BE' | 'hu-HU' | 'it-IT' | 'nb-NO' | 'nl-BE' | 'nl-NL' | 'nn-NO' | 'pl-PL' | 'pt-BR' | 'pt-PT' | 'ru-RU' | 'sk-SK' | 'sr-RS' | 'sr-RS@latin' | 'sv-SE' | 'tr-TR' | 'uk-UA'
export type MobilePhoneLocal = 'any' | 'ar-AE' | 'ar-DZ' | 'ar-EG' | 'ar-JO' | 'ar-KW' | 'ar-SA' | 'ar-SY' | 'ar-TN' | 'be-BY' | 'bg-BG' | 'cs-CZ' | 'de-DE' | 'da-DK' | 'el-GR' | 'en-AU' | 'en-GB' | 'en-HK' | 'en-IN' | 'en-KE' | 'en-NG' | 'en-NZ' | 'en-PK' | 'en-RW' | 'en-SG' | 'en-TZ' | 'en-UG' | 'en-US' | 'en-CA' | 'en-ZA' | 'en-ZM' | 'es-ES' | 'et-EE' | 'fa-IR' | 'fi-FI' | 'fo-FO' | 'fr-FR' | 'he-IL' | 'hu-HU' | 'id-ID' | 'it-IT' | 'ja-JP' | 'kk-KZ' | 'kl-GL' | 'lt-LT' | 'ms-MY' | 'nb-NO' | 'nn-NO' | 'pl-PL' | 'pt-PT' | 'ro-RO' | 'ru-RU' | 'sk-SK' | 'sr-RS' | 'sv-SE' | 'th-TH' | 'tr-TR' | 'uk-UA' | 'vi-VN' | 'zh-CN' | 'zh-HK' | 'zh-TW'
export type PostalCodeLocale = 'any' | 'AT' | 'AU' | 'BE' | 'BG' | 'CA' | 'CH' | 'CZ' | 'DE' | 'DK' | 'DZ' | 'EE' | 'ES' | 'FI' | 'FR' | 'GB' | 'GR' | 'HR' | 'HU' | 'IL' | 'IN' | 'IS' | 'IT' | 'JP' | 'KE' | 'LI' | 'LT' | 'LU' | 'LV' | 'MX' | 'NL' | 'NO' | 'PL' | 'PT' | 'RO' | 'RU' | 'SA' | 'SE' | 'SI' | 'TN' | 'TW' | 'US' | 'ZA' | 'ZM';
export type HashAlgorithm = 'md4' | 'md5' | 'sha1' | 'sha256'| 'sha384'| 'sha512'| 'ripemd128'| 'ripemd160'| 'tiger128'| 'tiger160'| 'tiger192'| 'crc32'| 'crc32b';
export interface Validator {
isAfter(date?: string): this;
isAlpha(locale?: AlphaLocale): this;
isAlphanumeric(locale?: AlphanumericLocale): this;
isArray(): this;
isAscii(): this;
isBase64(): this;
isBefore(date?: string): this;
isBoolean(): this;
isByteLength(options: ValidatorOptions.MinMaxOptions): this;
isCreditCard(): this;
isCurrency(options: ValidatorOptions.IsCurrencyOptions): this;
isDataURI(): this;
isDecimal(options?: ValidatorOptions.IsDecimalOptions): this;
isDivisibleBy(num: number): this;
isEmail(options?: ValidatorOptions.IsEmailOptions): this;
isEmpty(): this;
isFloat(options?: ValidatorOptions.IsFloatOptions): this;
isFQDN(options?: ValidatorOptions.IsFQDNOptions): this;
isFullWidth(): this;
isHalfWidth(): this;
isHash(algorithm: HashAlgorithm): this;
isHexadecimal(): this;
isHexColor(): this;
isIn(options: string | string[]): this;
isInt(options?: ValidatorOptions.IsIntOptions): this;
isIP(version?: IPVersion): this;
isIPRange(): this;
isISIN(): this;
isISO31661Alpha2(): this;
isISO31661Alpha3(): this;
isISO8601(): this;
isISRC(): this;
isISBN(version?: number): this;
isISSN(options?: ValidatorOptions.IsISSNOptions): this;
isJSON(): this;
isLatLong(): this;
isLength(options: ValidatorOptions.MinMaxOptions): this;
isLowercase(): this;
isMACAddress(): this;
isMD5(): this;
isMimeType(): this;
isMongoId(): this;
isMobilePhone(locale: MobilePhoneLocal | MobilePhoneLocal[], options?: ValidatorOptions.IsMobilePhoneOptions): this;
isMultibyte(): this;
isNumeric(): this;
isPostalCode(locale: PostalCodeLocale): this;
isPort(): this;
isString(): this;
isSurrogatePair(): this;
isUppercase(): this;
isURL(options?: ValidatorOptions.IsURLOptions): this;
isUUID(version?: UUIDVersion): this;
isVariableWidth(): this;
isWhitelisted(chars: string | string[]): this;
equals(equals: any): this;
contains(str: string): this;
matches(pattern: RegExp | string, modifiers?: string): this;
// Additional validator methods
not(): this;
exists(options?: ValidatorOptions.ExistsOptions): this;
optional(options?: ValidatorOptions.OptionalOptions): this;
withMessage(message: CustomMessageBuilder): this;
withMessage(message: any): this;
}
export interface ValidationChain extends express.RequestHandler, Validator, Sanitizer {
custom(validator: CustomValidator): this;
}
export interface CustomValidator {
(value: any, options: { req: express.Request, location: string, path: string }): any;
}
export interface CustomMessageBuilder {
(value: any, options: { req: express.Request, location: Location, path: string }): any;
}
export namespace ValidatorOptions {
interface MinMaxOptions {
min?: number;
max?: number;
}
interface MinMaxExtendedOptions extends MinMaxOptions {
lt?: number;
gt?: number;
}
interface IsFloatOptions extends MinMaxExtendedOptions {
locale?: AlphanumericLocale;
}
interface IsIntOptions extends MinMaxExtendedOptions {
allow_leading_zeroes?: boolean;
}
interface IsDecimalOptions {
decimal_digits?: string;
force_decimal?: boolean;
locale?: AlphanumericLocale;
}
/**
* defaults to
* {
* allow_display_name: false,
* require_display_name: false,
* allow_utf8_local_part: true,
* require_tld: true
* }
*/
interface IsEmailOptions {
allow_display_name?: boolean;
allow_utf8_local_part?: boolean;
require_tld?: boolean;
}
interface IsMobilePhoneOptions {
strictMode?: boolean;
}
/**
* defaults to
* {
* protocols: ['http','https','ftp'],
* require_tld: true,
* require_protocol: false,
* require_host: true,
* require_valid_protocol: true,
* allow_underscores: false,
* host_whitelist: false,
* host_blacklist: false,
* allow_trailing_dot: false,
* allow_protocol_relative_urls: false
* }
*/
interface IsURLOptions {
protocols?: URLProtocol[];
require_tld?: boolean;
require_protocol?: boolean;
require_host?: boolean;
require_valid_protocol?: boolean;
allow_underscores?: boolean;
host_whitelist?: (string | RegExp)[];
host_blacklist?: (string | RegExp)[];
allow_trailing_dot?: boolean;
allow_protocol_relative_urls?: boolean;
}
/**
* defaults to
* {
* require_tld: true,
* allow_underscores: false,
* allow_trailing_dot: false
* }
*/
interface IsFQDNOptions {
require_tld?: boolean;
allow_underscores?: boolean;
allow_trailing_dot?: boolean;
}
/**
* defaults to
* {
* case_sensitive: false,
* require_hyphen: false
* }
*/
interface IsISSNOptions {
case_sensitive?: boolean
require_hyphen?: boolean
}
/**
* defaults to
* {
* symbol: '$',
* require_symbol: false,
* allow_space_after_symbol: false,
* symbol_after_digits: false,
* allow_negatives: true,
* parens_for_negatives: false,
* negative_sign_before_digits: false,
* negative_sign_after_digits: false,
* allow_negative_sign_placeholder: false,
* thousands_separator: ',',
* decimal_separator: '.',
* allow_space_after_digits: false
* }
*/
interface IsCurrencyOptions {
symbol?: string;
require_symbol?: boolean;
allow_space_after_symbol?: boolean;
symbol_after_digits?: boolean;
allow_negatives?: boolean;
parens_for_negatives?: boolean;
negative_sign_before_digits?: boolean;
negative_sign_after_digits?: boolean;
allow_negative_sign_placeholder?: boolean;
thousands_separator?: string;
decimal_separator?: string;
allow_decimal?: boolean;
require_decimal?: boolean;
digits_after_decimal?: number[];
allow_space_after_digits?: boolean;
}
interface OptionalOptions {
checkFalsy?: boolean;
nullable?: boolean;
}
/**
* defaults to
* {
* checkNull: false,
* checkFalsy: false
* }
*/
interface ExistsOptions {
checkNull?: boolean;
checkFalsy?: boolean;
}
}