| Current Path : /var/www/fidelitychain/wwwOLD/node_modules/@types/validator/ |
| Current File : /var/www/fidelitychain/wwwOLD/node_modules/@types/validator/index.d.ts |
// Type definitions for validator.js 13.7
// Project: https://github.com/validatorjs/validator.js
// Definitions by: tgfjt <https://github.com/tgfjt>
// Ilya Mochalov <https://github.com/chrootsu>
// Ayman Nedjmeddine <https://github.com/IOAyman>
// Louay Alakkad <https://github.com/louy>
// Bonggyun Lee <https://github.com/deptno>
// Naoto Yokoyama <https://github.com/builtinnya>
// Philipp Katz <https://github.com/qqilihq>
// Jace Warren <https://github.com/keatz55>
// Munif Tanjim <https://github.com/MunifTanjim>
// Vlad Poluch <https://github.com/vlapo>
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
// Matteo Nista <https://github.com/Mattewn99>
// Roman Babiak <https://github.com/Almost-Infinity>
// Daniel Freire <https://github.com/dcfreire>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import * as _isBoolean from './lib/isBoolean';
import * as _isEmail from './lib/isEmail';
import * as _isFQDN from './lib/isFQDN';
import * as _isIBAN from './lib/isIBAN';
import * as _isISO31661Alpha2 from './lib/isISO31661Alpha2';
import * as _isISO4217 from './lib/isISO4217';
import * as _isURL from './lib/isURL';
import * as _isTaxID from './lib/isTaxID';
declare namespace validator {
const version: string;
/******************
*** Validators ***
******************/
interface ContainsOptions {
/**
* @default false
*/
ignoreCase?: boolean | undefined;
/**
* @default 1
*/
minOccurrences?: number | undefined;
}
/**
* Check if the string contains the seed.
*
* @param seed - Seed
*/
function contains(str: string, seed: any, options?: ContainsOptions): boolean;
/**
* Check if the string matches the comparison.
*
* @param comparison - String to compare
*/
function equals(str: string, comparison: string): boolean;
/**
* Check if the string is a date that's after the specified date.
*
* @param [date] - Date string (defaults to now)
*/
function isAfter(str: string, date?: string): boolean;
type AlphaLocale =
| 'en-US'
| 'bg-BG'
| 'cs-CZ'
| 'da-DK'
| 'de-DE'
| 'el-GR'
| 'es-AR'
| 'es-ES'
| 'fr-FR'
| 'it-IT'
| 'nb-NO'
| 'nl-NL'
| 'nn-NO'
| 'hu-HU'
| 'pl-PL'
| 'pt-PT'
| 'ru-RU'
| 'sl-SI'
| 'sk-SK'
| 'sr-RS@latin'
| 'sr-RS'
| 'sv-SE'
| 'tr-TR'
| 'uk-UA'
| 'ku-IQ'
| 'ar'
| 'he'
| 'fa-IR'
| 'en-AU'
| 'en-GB'
| 'en-HK'
| 'en-IN'
| 'en-NZ'
| 'en-ZA'
| 'en-ZM'
| 'ar-AE'
| 'ar-BH'
| 'ar-DZ'
| 'ar-EG'
| 'ar-IQ'
| 'ar-JO'
| 'ar-KW'
| 'ar-LB'
| 'ar-LY'
| 'ar-MA'
| 'ar-QM'
| 'ar-QA'
| 'ar-SA'
| 'ar-SD'
| 'ar-SY'
| 'ar-TN'
| 'ar-YE'
| 'pt-BR'
| 'pl-Pl';
const isAlphaLocales: AlphaLocale[];
interface IsAlphaOptions {
/**
* @default undefined
*/
ignore?: string | RegExp | undefined;
}
/**
* Check if the string contains only letters (a-zA-Z).
*
* @param [locale] - AlphaLocale
* @param [options] - IsAlphaOptions
*/
function isAlpha(str: string, locale?: AlphaLocale, options?: IsAlphaOptions): boolean;
type AlphanumericLocale =
| 'en-US'
| 'bg-BG'
| 'cs-CZ'
| 'da-DK'
| 'de-DE'
| 'el-GR'
| 'es-AR'
| 'es-ES'
| 'fr-FR'
| 'it-IT'
| 'hu-HU'
| 'nb-NO'
| 'nl-NL'
| 'nn-NO'
| 'pl-PL'
| 'pt-PT'
| 'ru-RU'
| 'sl-SI'
| 'sk-SK'
| 'sr-RS@latin'
| 'sr-RS'
| 'sv-SE'
| 'tr-TR'
| 'uk-UA'
| 'ku-IQ'
| 'ar'
| 'he'
| 'fa-IR'
| 'en-AU'
| 'en-GB'
| 'en-HK'
| 'en-IN'
| 'en-NZ'
| 'en-ZA'
| 'en-ZM'
| 'ar-AE'
| 'ar-BH'
| 'ar-DZ'
| 'ar-EG'
| 'ar-IQ'
| 'ar-JO'
| 'ar-KW'
| 'ar-LB'
| 'ar-LY'
| 'ar-MA'
| 'ar-QM'
| 'ar-QA'
| 'ar-SA'
| 'ar-SD'
| 'ar-SY'
| 'ar-TN'
| 'ar-YE'
| 'pt-BR'
| 'pl-Pl';
const isAlphanumericLocales: AlphanumericLocale[];
interface IsAlphanumericOptions {
/**
* @default undefined
*/
ignore?: string | RegExp | undefined;
}
/**
* Check if the string contains only letters and numbers.
*
* @param [locale] - AlphanumericLocale
* @param [options] - IsAlphanumericOptions
*/
function isAlphanumeric(str: string, locale?: AlphanumericLocale, options?: IsAlphanumericOptions): boolean;
/**
* Check if the string contains ASCII chars only.
*/
function isAscii(str: string): boolean;
/**
* Check if a string is base32 encoded.
*/
function isBase32(str: string): boolean;
/**
* check if a string is base58 encoded
*/
function isBase58(str: string): boolean;
interface IsBase64Options {
/**
* @default false
*/
urlSafe?: boolean | undefined;
}
/**
* Check if a string is base64 encoded.
*
* @param [options] - Options
*/
function isBase64(str: string, options?: IsBase64Options): boolean;
/**
* Check if the string is a date that's before the specified date.
*
* @param [date] - Date string (defaults to now)
*/
function isBefore(str: string, date?: string): boolean;
const isIBAN: typeof _isIBAN.default;
const ibanLocales: typeof _isIBAN.locales;
/**
* Check if a string is a BIC (Bank Identification Code) or SWIFT code.
*/
function isBIC(str: string): boolean;
const isBoolean: typeof _isBoolean.default;
interface IsByteLengthOptions {
/**
* @default 0
*/
min?: number | undefined;
/**
* @default undefined
*/
max?: number | undefined;
}
/**
* Check if the string's length (in UTF-8 bytes) falls in a range.
*
* @param [options] - Options
*/
function isByteLength(str: string, options?: IsByteLengthOptions): boolean;
interface IsCreditCardOptions {
/**
* @default undefined
*/
provider?: 'amex' | 'dinersclub' | 'discover' | 'jcb' | 'mastercard' | 'unionpay' | 'visa' | '';
}
/**
* Check if the string is a credit card.
*/
function isCreditCard(str: string, options?: IsCreditCardOptions): boolean;
interface IsCurrencyOptions {
/**
* @default '$'
*/
symbol?: string | undefined;
/**
* @default false
*/
require_symbol?: boolean | undefined;
/**
* @default false
*/
allow_space_after_symbol?: boolean | undefined;
/**
* @default false
*/
symbol_after_digits?: boolean | undefined;
/**
* @default true
*/
allow_negatives?: boolean | undefined;
/**
* @default false
*/
parens_for_negatives?: boolean | undefined;
/**
* @default false
*/
negative_sign_before_digits?: boolean | undefined;
/**
* @default false
*/
negative_sign_after_digits?: boolean | undefined;
/**
* @default false
*/
allow_negative_sign_placeholder?: boolean | undefined;
/**
* @default ','
*/
thousands_separator?: string | undefined;
/**
* @default '.'
*/
decimal_separator?: string | undefined;
/**
* @default true
*/
allow_decimal?: boolean | undefined;
/**
* @default false
*/
require_decimal?: boolean | undefined;
/**
* The array `digits_after_decimal` is filled with the exact number of digits allowed not a range, for example a range `1` to `3` will be given as `[1, 2, 3]`.
*
* @default [2]
*/
digits_after_decimal?: number[] | undefined;
/**
* @default false
*/
allow_space_after_digits?: boolean | undefined;
}
/**
* Check if the string is a valid currency amount.
*
* @param [options] - Options
*/
function isCurrency(str: string, options?: IsCurrencyOptions): boolean;
/**
* Check if the string is an [Ethereum](https://ethereum.org/) address using basic regex. Does not validate address checksums.
*/
function isEthereumAddress(str: string): boolean;
/**
* Check if the string is a valid BTC address.
*/
function isBtcAddress(str: string): boolean;
/**
* Check if the string is a [data uri format](https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs).
*/
function isDataURI(str: string): boolean;
interface IsDateOptions {
/**
* @default false
*/
format?: string | undefined;
/**
* If strictMode is set to true,
* the validator will reject inputs different from format.
*
* @default false
*/
strictMode?: boolean | undefined;
/**
* `delimiters` is an array of allowed date delimiters
*
* @default ['/', '-']
*/
delimiters?: string[] | undefined;
}
/**
* Check if the string is a valid date.
*/
function isDate(str: string, options?: IsDateOptions): boolean;
type DecimalLocale = FloatLocale;
interface IsDecimalOptions {
/**
* @default false
*/
force_decimal?: boolean | undefined;
/**
* `decimal_digits` is given as a range like `'1,3'`,
* a specific value like `'3'` or min like `'1,'`
*
* @default '1,'
*/
decimal_digits?: string | undefined;
/**
* DecimalLocale
*
* @default 'en-US'
*/
locale?: DecimalLocale | undefined;
}
/**
* Check if the string represents a decimal number,
* such as `0.1`, `.3`, `1.1`, `1.00003`, `4.0` etc.
*
* @param [options] - Options
*/
function isDecimal(str: string, options?: IsDecimalOptions): boolean;
/**
* Check if the string is a number that's divisible by another.
*
* @param number - Divider number
*/
function isDivisibleBy(str: string, number: number): boolean;
type IsEmailOptions = _isEmail.IsEmailOptions;
const isEmail: typeof _isEmail.default;
interface IsEmptyOptions {
/**
* @default false
*/
ignore_whitespace?: boolean | undefined;
}
/**
* Check if the string has a length of zero.
*
* @param [options] - Options
*/
function isEmpty(str: string, options?: IsEmptyOptions): boolean;
type FloatLocale =
| 'en-US'
| 'ar'
| 'en-AU'
| 'en-GB'
| 'en-HK'
| 'en-IN'
| 'en-NZ'
| 'en-ZA'
| 'en-ZM'
| 'ar-AE'
| 'ar-BH'
| 'ar-DZ'
| 'ar-EG'
| 'ar-IQ'
| 'ar-JO'
| 'ar-KW'
| 'ar-LB'
| 'ar-LY'
| 'ar-MA'
| 'ar-QM'
| 'ar-QA'
| 'ar-SA'
| 'ar-SD'
| 'ar-SY'
| 'ar-TN'
| 'ar-YE'
| 'bg-BG'
| 'cs-CZ'
| 'da-DK'
| 'de-DE'
| 'el-GR'
| 'es-ES'
| 'fr-FR'
| 'it-IT'
| 'ku-IQ'
| 'hu-HU'
| 'nb-NO'
| 'nn-NO'
| 'nl-NL'
| 'pl-PL'
| 'pt-PT'
| 'ru-RU'
| 'sl-SI'
| 'sr-RS@latin'
| 'sr-RS'
| 'sv-SE'
| 'tr-TR'
| 'uk-UA'
| 'pt-BR'
| 'pl-Pl';
const isFloatLocales: FloatLocale[];
interface IsFloatOptions {
/**
* less or equal
*/
min?: number | undefined;
/**
* greater or equal
*/
max?: number | undefined;
/**
* greater than
*/
gt?: number | undefined;
/**
* less than
*/
lt?: number | undefined;
/**
* FloatLocale
*/
locale?: FloatLocale | undefined;
}
/**
* Check if the string is a float.
*
* @param [options] - Options
*/
function isFloat(str: string, options?: IsFloatOptions): boolean;
type IsFQDNOptions = _isFQDN.IsFQDNOptions;
const isFQDN: typeof _isFQDN.default;
/**
* Check if the string contains any full-width chars.
*/
function isFullWidth(str: string): boolean;
/**
* Check if the string contains any half-width chars.
*/
function isHalfWidth(str: string): boolean;
type HashAlgorithm =
| 'md4'
| 'md5'
| 'sha1'
| 'sha256'
| 'sha384'
| 'sha512'
| 'ripemd128'
| 'ripemd160'
| 'tiger128'
| 'tiger160'
| 'tiger192'
| 'crc32'
| 'crc32b';
/**
* Check if the string is a hash of type algorithm.
*
* @param algorithm - HashAlgorithm
*/
function isHash(str: string, algorithm: HashAlgorithm): boolean;
/**
* Check if the string is a hexadecimal number.
*/
function isHexadecimal(str: string): boolean;
/**
* Check if the string is a hexadecimal color.
*/
function isHexColor(str: string): boolean;
/**
* Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.
* Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).
*/
function isHSL(str: string): boolean;
/**
* Check if the string is a rgb or rgba color.
*
* @param [includePercentValues=true] - If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. (defaults to true)
*/
function isRgbColor(str: string, includePercentValues?: boolean): boolean;
type IdentityCardLocale = 'ES' | 'he-IL' | 'zh-TW' | 'zh-CN';
/**
* Check if the string is a valid identity card code.
*
* @param [locale="any"] - IdentityCardLocale
*/
function isIdentityCard(str: string, locale?: 'any' | IdentityCardLocale): boolean;
interface IsIMEIOptions {
/**
* This value is `false` by default. Set to `true` to allow IMEI with hyphens.
*/
allow_hyphens?: boolean | undefined;
}
/**
* Check if the string is a valid IMEI.
* Non-hyphenated (`###############`) only is supported by default.
* Use the `options` param to enable hyphenated (`##-######-######-#`) support.
*
* @param [options] - Options
*/
function isIMEI(str: string, options?: IsIMEIOptions): boolean;
/**
* Check if the string is in a array of allowed values.
*
* @param values - Allowed values.
*/
function isIn(str: string, values: any[]): boolean;
interface IsIntOptions {
/**
* to check the integer min boundary
*/
min?: number | undefined;
/**
* to check the integer max boundary
*/
max?: number | undefined;
/**
* if `false`, will disallow integer values with leading zeroes
* @default true
*/
allow_leading_zeroes?: boolean | undefined;
/**
* enforce integers being greater than the value provided
*/
lt?: number | undefined;
/**
* enforce integers being less than the value provided
*/
gt?: number | undefined;
}
/**
* Check if the string is an integer.
*
* @param [options] - Options
*/
function isInt(str: string, options?: IsIntOptions): boolean;
type IPVersion = '4' | '6' | 4 | 6;
/**
* Check if the string is an IP (version 4 or 6).
*
* @param [version] - IP Version
*/
function isIP(str: string, version?: IPVersion): boolean;
/**
* Check if the string is an IP Range (version 4 or 6).
*/
function isIPRange(str: string, version?: IPVersion): boolean;
type ISBNVersion = '10' | '13' | 10 | 13;
/**
* Check if the string is an ISBN (version 10 or 13).
*
* @param [version] - ISBN Version
*/
function isISBN(str: string, version?: ISBNVersion): boolean;
/**
* Check if the string is an EAN (European Article Number).
*/
function isEAN(str: string): boolean;
/**
* Check if the string is an [ISIN](https://en.wikipedia.org/wiki/International_Securities_Identification_Number) (stock/security identifier).
*/
function isISIN(str: string): boolean;
const isISO31661Alpha2: typeof _isISO31661Alpha2.default;
/**
* Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.
*/
function isISO31661Alpha3(str: string): boolean;
interface IsISO8601Options {
/**
* If `strict` is `true`, performs additional checks for valid dates,
* e.g. invalidates dates like `2009-02-29`.
*
* @default false
*/
strict?: boolean | undefined;
/**
* If `strictSeparator` is true, date strings with date and time separated
* by anything other than a T will be invalid
*
*/
strictSeparator?: boolean | undefined;
}
/**
* Check if the string is a valid [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date.
*
* @param [options] - Options
*/
function isISO8601(str: string, options?: IsISO8601Options): boolean;
interface IsISSNOptions {
/**
* If `case_sensitive` is `true`, ISSNs with a lowercase `x` as the check digit are rejected.
*
* @default false
*/
case_sensitive?: boolean | undefined;
/**
* @default false
*/
require_hyphen?: boolean | undefined;
}
/**
* Check if the string is an [ISSN](https://en.wikipedia.org/wiki/International_Standard_Serial_Number).
*
* @param [options] - Options
*/
function isISSN(str: string, options?: IsISSNOptions): boolean;
const isISO4217: typeof _isISO4217.default;
/**
* Check if the string is a [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code).
*/
function isISRC(str: string): boolean;
/**
* Check if the string is a valid [RFC 3339](https://tools.ietf.org/html/rfc3339) date.
*/
function isRFC3339(str: string): boolean;
/**
* Check if the string is valid JSON (note: uses `JSON.parse`).
*/
function isJSON(str: string): boolean;
/**
* Check if the string is valid JWT token.
*/
function isJWT(str: string): boolean;
/**
* Check if the string is a valid latitude-longitude coordinate in the format:
*
* `lat,long` or `lat, long`.
*/
function isLatLong(str: string): boolean;
interface IsLengthOptions {
/**
* @default 0
*/
min?: number | undefined;
/**
* @default undefined
*/
max?: number | undefined;
}
/**
* Check if the string's length falls in a range.
*
* Note: this function takes into account surrogate pairs.
*
* @param [options] - Options
*/
function isLength(str: string, options?: IsLengthOptions): boolean;
/**
* Check if the string is a locale.
*/
function isLocale(str: string): boolean;
/**
* Check if the string is lowercase.
*/
function isLowercase(str: string): boolean;
interface IsMACAddressOptions {
/**
* If `no_colons` is `true`, the validator will allow MAC addresses without the colons.
* Also, it allows the use of hyphens or spaces.
*
* e.g. `01 02 03 04 05 ab` or `01-02-03-04-05-ab`.
*
* @default false
*/
no_colons?: boolean | undefined;
}
/**
* Check if the string is a MAC address.
*
* @param [options] - Options
*/
function isMACAddress(str: string, options?: IsMACAddressOptions): boolean;
/**
* Check if the string is a [magnet uri format](https://en.wikipedia.org/wiki/Magnet_URI_scheme).
*/
function isMagnetURI(str: string): boolean;
/**
* Check if the string is a MD5 hash.
*/
function isMD5(str: string): boolean;
/**
* Check if the string matches to a valid [MIME type](https://en.wikipedia.org/wiki/Media_type) format.
*/
function isMimeType(str: string): boolean;
type MobilePhoneLocale = PhoneLocale | PhoneLocaleAlias;
type PhoneLocale =
| 'am-AM'
| 'ar-AE'
| 'ar-BH'
| 'ar-DZ'
| 'ar-LB'
| 'ar-EG'
| 'ar-IQ'
| 'ar-JO'
| 'ar-KW'
| 'ar-LY'
| 'ar-MA'
| 'ar-OM'
| 'ar-SA'
| 'ar-SY'
| 'ar-TN'
| 'az-AZ'
| 'bs-BA'
| 'be-BY'
| 'bg-BG'
| 'bn-BD'
| 'ca-AD'
| 'cs-CZ'
| 'da-DK'
| 'de-DE'
| 'de-AT'
| 'de-CH'
| 'de-LU'
| 'el-GR'
| 'en-AU'
| 'en-GB'
| 'en-GG'
| 'en-GH'
| 'en-HK'
| 'en-MO'
| 'en-IE'
| 'en-IN'
| 'en-KE'
| 'en-MT'
| 'en-MU'
| 'en-NG'
| 'en-NZ'
| 'en-PK'
| 'en-PH'
| 'en-RW'
| 'en-SG'
| 'en-SL'
| 'en-TZ'
| 'en-UG'
| 'en-US'
| 'en-ZA'
| 'en-ZM'
| 'en-ZW'
| 'es-AR'
| 'es-BO'
| 'es-CO'
| 'es-CL'
| 'es-CR'
| 'es-DO'
| 'es-HN'
| 'es-EC'
| 'es-ES'
| 'es-PE'
| 'es-MX'
| 'es-PA'
| 'es-PY'
| 'es-UY'
| 'es-VE'
| 'et-EE'
| 'fa-IR'
| 'fi-FI'
| 'fj-FJ'
| 'fo-FO'
| 'fr-FR'
| 'fr-GF'
| 'fr-GP'
| 'fr-MQ'
| 'fr-RE'
| 'he-IL'
| 'hu-HU'
| 'id-ID'
| 'it-IT'
| 'it-SM'
| 'ja-JP'
| 'ka-GE'
| 'kk-KZ'
| 'kl-GL'
| 'ko-KR'
| 'lt-LT'
| 'lv-LV'
| 'ms-MY'
| 'mz-MZ'
| 'nb-NO'
| 'ne-NP'
| 'nl-BE'
| 'nl-NL'
| 'nn-NO'
| 'pl-PL'
| 'pt-BR'
| 'pt-PT'
| 'pt-AO'
| 'ro-RO'
| 'ru-RU'
| 'si-LK'
| 'sl-SI'
| 'sk-SK'
| 'sq-AL'
| 'sr-RS'
| 'sv-SE'
| 'th-TH'
| 'tr-TR'
| 'uk-UA'
| 'uz-UZ'
| 'vi-VN'
| 'zh-CN'
| 'zh-TW';
type PhoneLocaleAlias = 'en-CA' | 'fr-CA' | 'fr-BE' | 'zh-HK' | 'zh-MO' | 'ga-IE' | 'fr-CH' | 'it-CH';
const isMobilePhoneLocales: MobilePhoneLocale[];
interface IsMobilePhoneOptions {
/**
* If this is set to `true`, the mobile phone number must be supplied with the country code and therefore must start with `+`.
*
* @default false
*/
strictMode?: boolean | undefined;
}
/**
* Check if the string is a mobile phone number.
*
* @param [locale] - MobilePhoneLocale(s)
* @param [options] - Options
*/
function isMobilePhone(
str: string,
locale?: 'any' | MobilePhoneLocale | MobilePhoneLocale[],
options?: IsMobilePhoneOptions,
): boolean;
/**
* Check if the string is a valid hex-encoded representation of a [MongoDB ObjectId](http://docs.mongodb.org/manual/reference/object-id/).
*/
function isMongoId(str: string): boolean;
/**
* Check if the string contains one or more multibyte chars.
*/
function isMultibyte(str: string): boolean;
interface IsNumericOptions {
/**
* If `no_symbols` is true, the validator will reject numeric strings that feature a symbol (e.g. `+`, `-`, or `.`).
*
* @default false
*/
no_symbols?: boolean | undefined;
locale?: AlphaLocale | undefined;
}
/**
* Check if the string contains only numbers.
*
* @param [options] - Options
*/
function isNumeric(str: string, options?: IsNumericOptions): boolean;
/**
* Check if the string is a valid octal number.
*/
function isOctal(str: string): boolean;
/**
* Check if the string is a valid passport number relative to a specific country code.
*
* @param [countryCode] - Country code
*/
function isPassportNumber(str: string, countryCode?: string): boolean;
/**
* Check if the string is a valid port number.
*/
function isPort(str: string): boolean;
type PostalCodeLocale =
| 'AD'
| 'AT'
| 'AU'
| 'BE'
| 'BG'
| 'BR'
| 'CA'
| 'CH'
| 'CN'
| 'CZ'
| 'DE'
| 'DK'
| 'DZ'
| 'EE'
| 'ES'
| 'FI'
| 'FR'
| 'GB'
| 'GR'
| 'HR'
| 'HU'
| 'ID'
| 'IE'
| 'IL'
| 'IN'
| 'IR'
| 'IS'
| 'IT'
| 'JP'
| 'KE'
| 'KR'
| 'LI'
| 'LT'
| 'LU'
| 'LV'
| 'MX'
| 'MT'
| 'NL'
| 'NO'
| 'NZ'
| 'PL'
| 'PR'
| 'PT'
| 'RO'
| 'RU'
| 'SA'
| 'SE'
| 'SI'
| 'SK'
| 'TN'
| 'TW'
| 'UA'
| 'US'
| 'ZA'
| 'ZM';
const isPostalCodeLocales: PostalCodeLocale[];
/**
* Check if the string is a postal code
*
* @param locale - PostalCodeLocale
*/
function isPostalCode(str: string, locale: 'any' | PostalCodeLocale): boolean;
/**
* Check if the string is a Semantic Versioning Specification (SemVer).
*/
function isSemVer(str: string): boolean;
/**
* Check if string is considered a strong password. Allows options to be added
*/
interface StrongPasswordOptions {
minLength?: number | undefined;
minLowercase?: number | undefined;
minUppercase?: number | undefined;
minNumbers?: number | undefined;
minSymbols?: number | undefined;
returnScore?: boolean | undefined;
pointsPerUnique?: number | undefined;
pointsPerRepeat?: number | undefined;
pointsForContainingLower?: number | undefined;
pointsForContainingUpper?: number | undefined;
pointsForContainingNumber?: number | undefined;
pointsForContainingSymbol?: number | undefined;
}
function isStrongPassword(
str: string,
options?: StrongPasswordOptions & { returnScore?: false | undefined },
): boolean;
function isStrongPassword(str: string, options: StrongPasswordOptions & { returnScore: true }): number;
/**
* Check if the string contains any surrogate pairs chars.
*/
function isSurrogatePair(str: string): boolean;
interface IsTimeOptions {
/**
* 'hour24' will validate hours in 24 format and 'hour12' will validate hours in 12 format.
* @default 'hour24'
*/
hourFormat?: 'hour12' | 'hour24';
/**
* 'default' will validate HH:MM format, 'withSeconds' will validate the HH:MM:SS format
*
* @default 'default'
*/
mode?: 'default' | 'withSeconds';
}
/**
* Check if the string is a valid time.
*/
function isTime(str: string, options?: IsTimeOptions): boolean;
const isURL: typeof _isURL.default;
type IsURLOptions = _isURL.IsURLOptions;
const isTaxID: typeof _isTaxID.default;
/**
* Check if the string is uppercase.
*/
function isUppercase(str: string): boolean;
type UUIDVersion = '1' | '2' | '3' | '4' | '5' | 'all' | 1 | 2 | 3 | 4 | 5;
/**
* Check if the string is a UUID (version 1, 2, 3, 4 or 5).
*
* @param [version="all"] - UUID version
*/
function isUUID(str: string, version?: UUIDVersion): boolean;
/**
* Check if the string contains a mixture of full and half-width chars.
*/
function isVariableWidth(str: string): boolean;
/**
* Checks that the string is a [valid VAT number
*/
function isVAT(str: string, countryCode: string): boolean;
/**
* Checks characters if they appear in the whitelist.
*
* @param chars - whitelist
*/
function isWhitelisted(str: string, chars: string | string[]): boolean;
/**
* Check if string matches the pattern.
*
* @param pattern - `/foo/i`
*/
function matches(str: string, pattern: RegExp): boolean;
/**
* Check if string matches the pattern.
*
* @param pattern - `'foo'`
* @param [modifiers] - `'i'`
*/
function matches(str: string, pattern: string, modifiers?: string): boolean;
/**
* Check if the string is of type slug.
*/
function isSlug(str: string): boolean;
/******************
*** Sanitizers ***
******************/
/**
* Remove characters that appear in the blacklist.
*
* @param chars - The characters are used in a `RegExp` and so you will need to escape some chars, e.g. `blacklist(input, '\\[\\]')`.
*/
function blacklist(input: string, chars: string): string;
/**
* Replace `<`, `>`, `&`, `'`, `"` and `/` with HTML entities.
*/
function escape(input: string): string;
/**
* Replaces HTML encoded entities with `<`, `>`, `&`, `'`, `"` and `/`.
*/
function unescape(input: string): string;
/**
* Trim characters from the left-side of the input.
*
* @param [chars] - characters (defaults to whitespace)
*/
function ltrim(input: string, chars?: string): string;
interface NormalizeEmailOptions {
/**
* Transforms the local part (before the @ symbol) of all email addresses to lowercase.
* Please note that this may violate RFC 5321, which gives providers the possibility
* to treat the local part of email addresses in a case sensitive way
* (although in practice most - yet not all - providers don't).
* The domain part of the email address is always lowercased, as it's case insensitive per RFC 1035.
*
* @default true
*/
all_lowercase?: boolean | undefined;
/**
* GMail addresses are known to be case-insensitive, so this switch allows lowercasing them even when `all_lowercase` is set to `false`.
* Please note that when `all_lowercase` is `true`, GMail addresses are lowercased regardless of the value of this setting.
*
* @default true
*/
gmail_lowercase?: boolean | undefined;
/**
* Removes dots from the local part of the email address, as GMail ignores them
* (e.g. `"john.doe"` and `"johndoe"` are considered equal).
*
* @default true
*/
gmail_remove_dots?: boolean | undefined;
/**
* Normalizes addresses by removing "sub-addresses", which is the part following a `"+"` sign
* (e.g. `"foo+bar@gmail.com"` becomes `"foo@gmail.com"`).
*
* @default true
*/
gmail_remove_subaddress?: boolean | undefined;
/**
* Converts addresses with domain `@googlemail.com` to `@gmail.com`, as they're equivalent.
*
* @default true
*/
gmail_convert_googlemaildotcom?: boolean | undefined;
/**
* Outlook.com addresses (including Windows Live and Hotmail) are known to be case-insensitive, so this switch allows lowercasing them even when `all_lowercase` is set to `false`.
* Please note that when `all_lowercase` is `true`, Outlook.com addresses are lowercased regardless of the value of this setting.
*
* @default true
*/
outlookdotcom_lowercase?: boolean | undefined;
/**
* Normalizes addresses by removing "sub-addresses", which is the part following a `"+"` sign
* (e.g. `"foo+bar@outlook.com"` becomes `"foo@outlook.com"`).
*
* @default true
*/
outlookdotcom_remove_subaddress?: boolean | undefined;
/**
* Yahoo Mail addresses are known to be case-insensitive, so this switch allows lowercasing them even when `all_lowercase` is set to `false`.
* Please note that when `all_lowercase` is `true`, Yahoo Mail addresses are lowercased regardless of the value of this setting.
*
* @default true
*/
yahoo_lowercase?: boolean | undefined;
/**
* Normalizes addresses by removing "sub-addresses", which is the part following a `"-"` sign
* (e.g. `"foo-bar@yahoo.com"` becomes `"foo@yahoo.com"`).
*
* @default true
*/
yahoo_remove_subaddress?: boolean | undefined;
/**
* iCloud addresses (including MobileMe) are known to be case-insensitive, so this switch allows lowercasing them even when `all_lowercase` is set to `false`.
* Please note that when `all_lowercase` is `true`, iCloud addresses are lowercased regardless of the value of this setting.
*
* @default true
*/
icloud_lowercase?: boolean | undefined;
/**
* Normalizes addresses by removing "sub-addresses", which is the part following a `"+"` sign
* (e.g. `"foo+bar@icloud.com"` becomes `"foo@icloud.com"`).
*
* @default true
*/
icloud_remove_subaddress?: boolean | undefined;
}
/**
* Canonicalizes an email address. (This doesn't validate that the input is an email, if you want to validate the email use `isEmail` beforehand)
*
* @param [options] - Options
*/
function normalizeEmail(email: string, options?: NormalizeEmailOptions): string | false;
/**
* Trim characters from the right-side of the input.
*
* @param [chars] - characters (defaults to whitespace)
*/
function rtrim(input: string, chars?: string): string;
/**
* Remove characters with a numerical value < `32` and `127`, mostly control characters.
* Unicode-safe in JavaScript.
*
* @param [keep_new_lines=false] - if `true`, newline characters are preserved (`\n` and `\r`, hex `0xA` and `0xD`).
*/
function stripLow(input: string, keep_new_lines?: boolean): string;
/**
* Convert the input string to a boolean.
* Everything except for `'0'`, `'false'` and `''` returns `true`.
*
* @param [strict=false] - in `strict` mode, only `'1'` and `'true'` return `true`.
*/
function toBoolean(input: string, strict?: boolean): boolean;
/**
* Convert the input string to a `Date`, or `null` if the input is not a date.
*/
function toDate(input: string): Date | null;
/**
* Convert the input string to a float, or `NaN` if the input is not a float.
*/
function toFloat(input: string): number;
/**
* Convert the input string to an integer, or `NaN` if the input is not an integer.
*
* @param [radix=10] - radix or base (defaults to 10)
*/
function toInt(input: string, radix?: number): number;
/**
* Trim characters from both sides of the input.
*
* @param [chars] - characters (defaults to whitespace)
*/
function trim(input: string, chars?: string): string;
/**
* Remove characters that do not appear in the whitelist.
*
* @param chars - The characters are used in a `RegExp` and so you will need to escape some chars, e.g. `whitelist(input, '\\[\\]')`.
*/
function whitelist(input: string, chars: string): string;
/**
* Converts to string.
*/
function toString(input: any): string;
}
export default validator;
export as namespace validator;