@depup/express-validator 7.3.1-depup.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +32 -0
- package/changes.json +14 -0
- package/lib/base.d.ts +187 -0
- package/lib/base.js +8 -0
- package/lib/chain/context-handler-impl.d.ts +13 -0
- package/lib/chain/context-handler-impl.js +52 -0
- package/lib/chain/context-handler.d.ts +110 -0
- package/lib/chain/context-handler.js +2 -0
- package/lib/chain/context-runner-impl.d.ts +18 -0
- package/lib/chain/context-runner-impl.js +72 -0
- package/lib/chain/context-runner.d.ts +22 -0
- package/lib/chain/context-runner.js +2 -0
- package/lib/chain/index.d.ts +9 -0
- package/lib/chain/index.js +25 -0
- package/lib/chain/sanitizers-impl.d.ts +29 -0
- package/lib/chain/sanitizers-impl.js +80 -0
- package/lib/chain/sanitizers.d.ts +42 -0
- package/lib/chain/sanitizers.js +2 -0
- package/lib/chain/validation-chain.d.ts +18 -0
- package/lib/chain/validation-chain.js +2 -0
- package/lib/chain/validators-impl.d.ts +121 -0
- package/lib/chain/validators-impl.js +353 -0
- package/lib/chain/validators.d.ts +181 -0
- package/lib/chain/validators.js +2 -0
- package/lib/context-builder.d.ts +20 -0
- package/lib/context-builder.js +52 -0
- package/lib/context-items/bail.d.ts +5 -0
- package/lib/context-items/bail.js +13 -0
- package/lib/context-items/chain-condition.d.ts +9 -0
- package/lib/context-items/chain-condition.js +16 -0
- package/lib/context-items/context-item.d.ts +5 -0
- package/lib/context-items/context-item.js +2 -0
- package/lib/context-items/custom-condition.d.ts +8 -0
- package/lib/context-items/custom-condition.js +24 -0
- package/lib/context-items/custom-validation.d.ts +10 -0
- package/lib/context-items/custom-validation.js +34 -0
- package/lib/context-items/index.d.ts +5 -0
- package/lib/context-items/index.js +21 -0
- package/lib/context-items/sanitization.d.ts +12 -0
- package/lib/context-items/sanitization.js +34 -0
- package/lib/context-items/standard-validation.d.ts +13 -0
- package/lib/context-items/standard-validation.js +25 -0
- package/lib/context.d.ts +61 -0
- package/lib/context.js +117 -0
- package/lib/express-validator.d.ts +153 -0
- package/lib/express-validator.js +125 -0
- package/lib/field-selection.d.ts +22 -0
- package/lib/field-selection.js +221 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +25 -0
- package/lib/matched-data.d.ts +26 -0
- package/lib/matched-data.js +45 -0
- package/lib/middlewares/check.d.ts +3 -0
- package/lib/middlewares/check.js +23 -0
- package/lib/middlewares/exact.d.ts +29 -0
- package/lib/middlewares/exact.js +68 -0
- package/lib/middlewares/one-of.d.ts +28 -0
- package/lib/middlewares/one-of.js +91 -0
- package/lib/middlewares/schema.d.ts +108 -0
- package/lib/middlewares/schema.js +112 -0
- package/lib/middlewares/validation-chain-builders.d.ts +43 -0
- package/lib/middlewares/validation-chain-builders.js +49 -0
- package/lib/options.d.ts +377 -0
- package/lib/options.js +2 -0
- package/lib/utils.d.ts +12 -0
- package/lib/utils.js +56 -0
- package/lib/validation-result.d.ts +67 -0
- package/lib/validation-result.js +80 -0
- package/package.json +97 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SanitizersImpl = void 0;
|
|
4
|
+
const _ = require("lodash");
|
|
5
|
+
const validator = require("validator");
|
|
6
|
+
const sanitization_1 = require("../context-items/sanitization");
|
|
7
|
+
class SanitizersImpl {
|
|
8
|
+
constructor(builder, chain) {
|
|
9
|
+
this.builder = builder;
|
|
10
|
+
this.chain = chain;
|
|
11
|
+
}
|
|
12
|
+
// custom sanitizers
|
|
13
|
+
customSanitizer(sanitizer) {
|
|
14
|
+
this.builder.addItem(new sanitization_1.Sanitization(sanitizer, true));
|
|
15
|
+
return this.chain;
|
|
16
|
+
}
|
|
17
|
+
default(default_value) {
|
|
18
|
+
return this.customSanitizer(value => [undefined, null, NaN, ''].includes(value) ? _.cloneDeep(default_value) : value);
|
|
19
|
+
}
|
|
20
|
+
replace(values_to_replace, new_value) {
|
|
21
|
+
if (!Array.isArray(values_to_replace)) {
|
|
22
|
+
values_to_replace = [values_to_replace];
|
|
23
|
+
}
|
|
24
|
+
return this.customSanitizer(value => values_to_replace.includes(value) ? _.cloneDeep(new_value) : value);
|
|
25
|
+
}
|
|
26
|
+
// Standard sanitizers
|
|
27
|
+
addStandardSanitization(sanitizer, ...options) {
|
|
28
|
+
this.builder.addItem(new sanitization_1.Sanitization(sanitizer, false, options));
|
|
29
|
+
return this.chain;
|
|
30
|
+
}
|
|
31
|
+
blacklist(chars) {
|
|
32
|
+
return this.addStandardSanitization(validator.blacklist, chars);
|
|
33
|
+
}
|
|
34
|
+
escape() {
|
|
35
|
+
return this.addStandardSanitization(validator.escape);
|
|
36
|
+
}
|
|
37
|
+
unescape() {
|
|
38
|
+
return this.addStandardSanitization(validator.unescape);
|
|
39
|
+
}
|
|
40
|
+
ltrim(chars) {
|
|
41
|
+
return this.addStandardSanitization(validator.ltrim, chars);
|
|
42
|
+
}
|
|
43
|
+
normalizeEmail(options) {
|
|
44
|
+
return this.addStandardSanitization(validator.normalizeEmail, options);
|
|
45
|
+
}
|
|
46
|
+
rtrim(chars) {
|
|
47
|
+
return this.addStandardSanitization(validator.rtrim, chars);
|
|
48
|
+
}
|
|
49
|
+
stripLow(keep_new_lines) {
|
|
50
|
+
return this.addStandardSanitization(validator.stripLow, keep_new_lines);
|
|
51
|
+
}
|
|
52
|
+
toArray() {
|
|
53
|
+
return this.customSanitizer(value => (value !== undefined && ((Array.isArray(value) && value) || [value])) || []);
|
|
54
|
+
}
|
|
55
|
+
toBoolean(strict) {
|
|
56
|
+
return this.addStandardSanitization(validator.toBoolean, strict);
|
|
57
|
+
}
|
|
58
|
+
toDate() {
|
|
59
|
+
return this.addStandardSanitization(validator.toDate);
|
|
60
|
+
}
|
|
61
|
+
toFloat() {
|
|
62
|
+
return this.addStandardSanitization(validator.toFloat);
|
|
63
|
+
}
|
|
64
|
+
toInt(radix) {
|
|
65
|
+
return this.addStandardSanitization(validator.toInt, radix);
|
|
66
|
+
}
|
|
67
|
+
toLowerCase() {
|
|
68
|
+
return this.customSanitizer(value => (typeof value === 'string' ? value.toLowerCase() : value));
|
|
69
|
+
}
|
|
70
|
+
toUpperCase() {
|
|
71
|
+
return this.customSanitizer(value => (typeof value === 'string' ? value.toUpperCase() : value));
|
|
72
|
+
}
|
|
73
|
+
trim(chars) {
|
|
74
|
+
return this.addStandardSanitization(validator.trim, chars);
|
|
75
|
+
}
|
|
76
|
+
whitelist(chars) {
|
|
77
|
+
return this.addStandardSanitization(validator.whitelist, chars);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.SanitizersImpl = SanitizersImpl;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CustomSanitizer } from '../base';
|
|
2
|
+
import * as Options from '../options';
|
|
3
|
+
export interface Sanitizers<Return> {
|
|
4
|
+
/**
|
|
5
|
+
* Adds a custom sanitizer to the validation chain.
|
|
6
|
+
*
|
|
7
|
+
* @param sanitizer the custom sanitizer
|
|
8
|
+
* @returns the current validation chain
|
|
9
|
+
*/
|
|
10
|
+
customSanitizer(sanitizer: CustomSanitizer): Return;
|
|
11
|
+
/**
|
|
12
|
+
* Replaces the value of the field if it's one of `''`, `null`, `undefined` or `NaN`.
|
|
13
|
+
*
|
|
14
|
+
* @param default_value the value to replace with
|
|
15
|
+
* @returns the current validation chain
|
|
16
|
+
*/
|
|
17
|
+
default(default_value: any): Return;
|
|
18
|
+
/**
|
|
19
|
+
* Replaces a field's value with another value.
|
|
20
|
+
*
|
|
21
|
+
* @param values_to_replace one or more values that should be replaced
|
|
22
|
+
* @param new_value the value to replace with
|
|
23
|
+
* @returns the current validation chain
|
|
24
|
+
*/
|
|
25
|
+
replace(values_to_replace: any, new_value: any): Return;
|
|
26
|
+
blacklist(chars: string): Return;
|
|
27
|
+
escape(): Return;
|
|
28
|
+
unescape(): Return;
|
|
29
|
+
ltrim(chars?: string): Return;
|
|
30
|
+
normalizeEmail(options?: Options.NormalizeEmailOptions): Return;
|
|
31
|
+
rtrim(chars?: string): Return;
|
|
32
|
+
stripLow(keep_new_lines?: boolean): Return;
|
|
33
|
+
toArray(): Return;
|
|
34
|
+
toBoolean(strict?: boolean): Return;
|
|
35
|
+
toDate(): Return;
|
|
36
|
+
toFloat(): Return;
|
|
37
|
+
toInt(radix?: number): Return;
|
|
38
|
+
toLowerCase(): Return;
|
|
39
|
+
toUpperCase(): Return;
|
|
40
|
+
trim(chars?: string): Return;
|
|
41
|
+
whitelist(chars: string): Return;
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Request } from '../base';
|
|
2
|
+
import { ContextBuilder } from '../context-builder';
|
|
3
|
+
import { Sanitizers } from './sanitizers';
|
|
4
|
+
import { Validators } from './validators';
|
|
5
|
+
import { ContextHandler } from './context-handler';
|
|
6
|
+
import { ContextRunner } from './context-runner';
|
|
7
|
+
export interface ValidationChain extends Validators<ValidationChain>, Sanitizers<ValidationChain>, ContextHandler<ValidationChain>, ContextRunner {
|
|
8
|
+
(req: Request, res: any, next: (error?: any) => void): void;
|
|
9
|
+
builder: ContextBuilder;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A copy of `ValidationChain` where methods that would return the chain itself can return any other
|
|
13
|
+
* value.
|
|
14
|
+
* Useful for typing functions which accept either standard or custom validation chains.
|
|
15
|
+
*/
|
|
16
|
+
export type ValidationChainLike = {
|
|
17
|
+
[K in keyof ValidationChain]: ValidationChain[K] extends (...args: infer A) => ValidationChain ? (...args: A) => any : ValidationChain[K];
|
|
18
|
+
};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CustomValidator, ErrorMessage, FieldMessageFactory } from '../base';
|
|
2
|
+
import { ContextBuilder } from '../context-builder';
|
|
3
|
+
import * as Options from '../options';
|
|
4
|
+
import { ExistsOptions, Validators } from './validators';
|
|
5
|
+
export declare class ValidatorsImpl<Chain> implements Validators<Chain> {
|
|
6
|
+
private readonly builder;
|
|
7
|
+
private readonly chain;
|
|
8
|
+
private lastValidator;
|
|
9
|
+
private negateNext;
|
|
10
|
+
constructor(builder: ContextBuilder, chain: Chain);
|
|
11
|
+
private addItem;
|
|
12
|
+
not(): Chain;
|
|
13
|
+
withMessage(message: FieldMessageFactory | ErrorMessage): Chain;
|
|
14
|
+
custom(validator: CustomValidator): Chain;
|
|
15
|
+
exists(options?: ExistsOptions): Chain;
|
|
16
|
+
isArray(options?: {
|
|
17
|
+
min?: number;
|
|
18
|
+
max?: number;
|
|
19
|
+
}): Chain;
|
|
20
|
+
isObject(options?: {
|
|
21
|
+
strict?: boolean;
|
|
22
|
+
}): Chain;
|
|
23
|
+
isString(): Chain;
|
|
24
|
+
notEmpty(options?: Options.IsEmptyOptions): Chain;
|
|
25
|
+
private addStandardValidation;
|
|
26
|
+
contains(elem: any, options?: Options.ContainsOptions): Chain;
|
|
27
|
+
equals(comparison: string): Chain;
|
|
28
|
+
isAbaRouting(): Chain;
|
|
29
|
+
isAfter(dateOrOptions?: string | Options.IsAfterOptions): Chain;
|
|
30
|
+
isAlpha(locale?: Options.AlphaLocale, options?: Options.IsAlphaOptions): Chain;
|
|
31
|
+
isAlphanumeric(locale?: Options.AlphanumericLocale, options?: Options.IsAlphanumericOptions): Chain;
|
|
32
|
+
isAscii(): Chain;
|
|
33
|
+
isBase32(options?: Options.IsBase32Options): Chain;
|
|
34
|
+
isBase58(): Chain;
|
|
35
|
+
isBase64(options?: Options.IsBase64Options): Chain;
|
|
36
|
+
isBefore(date?: string): Chain;
|
|
37
|
+
isBIC(): Chain;
|
|
38
|
+
/**
|
|
39
|
+
* There are basically three levels of strictness for this validator.
|
|
40
|
+
* Passing `{ strict: true }` as option only passes the validation if the value is a JS bool. (It also overrides the loose property of the options).
|
|
41
|
+
* Passing `{ loose: true|false }` along with no `strict` prop of with `strict` falsy follows the behaviour specified in validator.js docs.
|
|
42
|
+
*/
|
|
43
|
+
isBoolean(options?: Options.IsBooleanOptions): Chain;
|
|
44
|
+
isBtcAddress(): Chain;
|
|
45
|
+
isByteLength(options: Options.MinMaxOptions): Chain;
|
|
46
|
+
isCreditCard(): Chain;
|
|
47
|
+
isCurrency(options?: Options.IsCurrencyOptions): Chain;
|
|
48
|
+
isDataURI(): Chain;
|
|
49
|
+
isDate(options?: Options.IsDateOptions): Chain;
|
|
50
|
+
isDecimal(options?: Options.IsDecimalOptions): Chain;
|
|
51
|
+
isDivisibleBy(number: number): Chain;
|
|
52
|
+
isEAN(): Chain;
|
|
53
|
+
isEmail(options?: Options.IsEmailOptions): Chain;
|
|
54
|
+
isEmpty(options?: Options.IsEmptyOptions): Chain;
|
|
55
|
+
isEthereumAddress(): Chain;
|
|
56
|
+
isFQDN(options?: Options.IsFQDNOptions): Chain;
|
|
57
|
+
isFloat(options?: Options.IsFloatOptions): Chain;
|
|
58
|
+
isFreightContainerID(): Chain;
|
|
59
|
+
isFullWidth(): Chain;
|
|
60
|
+
isHalfWidth(): Chain;
|
|
61
|
+
isHash(algorithm: Options.HashAlgorithm): Chain;
|
|
62
|
+
isHexColor(): Chain;
|
|
63
|
+
isHexadecimal(): Chain;
|
|
64
|
+
isHSL(): Chain;
|
|
65
|
+
isIBAN(options?: Options.IsIBANOptions): Chain;
|
|
66
|
+
isIdentityCard(locale: Options.IdentityCardLocale): Chain;
|
|
67
|
+
isIMEI(options?: Options.IsIMEIOptions): Chain;
|
|
68
|
+
isIP(version?: Options.IPVersion): Chain;
|
|
69
|
+
isIPRange(version?: Options.IPVersion): Chain;
|
|
70
|
+
isISBN(versionOrOptions?: number | Options.IsISBNOptions): Chain;
|
|
71
|
+
isISSN(options?: Options.IsISSNOptions): Chain;
|
|
72
|
+
isISIN(): Chain;
|
|
73
|
+
isISO6346(): Chain;
|
|
74
|
+
isISO6391(): Chain;
|
|
75
|
+
isISO8601(options?: Options.IsISO8601Options): Chain;
|
|
76
|
+
isISO31661Numeric(): Chain;
|
|
77
|
+
isISO31661Alpha2(): Chain;
|
|
78
|
+
isISO31661Alpha3(): Chain;
|
|
79
|
+
isISO4217(): Chain;
|
|
80
|
+
isISO15924(): Chain;
|
|
81
|
+
isISRC(): Chain;
|
|
82
|
+
isIn(values: readonly any[]): Chain;
|
|
83
|
+
isInt(options?: Options.IsIntOptions): Chain;
|
|
84
|
+
isJSON(options?: Options.IsJSONOptions): Chain;
|
|
85
|
+
isJWT(): Chain;
|
|
86
|
+
isLatLong(options?: Options.IsLatLongOptions): Chain;
|
|
87
|
+
isLength(options: Options.MinMaxOptions): Chain;
|
|
88
|
+
isLicensePlate(locale: Options.IsLicensePlateLocale): Chain;
|
|
89
|
+
isLocale(): Chain;
|
|
90
|
+
isLowercase(): Chain;
|
|
91
|
+
isLuhnNumber(): Chain;
|
|
92
|
+
isMagnetURI(): Chain;
|
|
93
|
+
isMailtoURI(options?: Options.IsEmailOptions): Chain;
|
|
94
|
+
isMACAddress(options?: Options.IsMACAddressOptions): Chain;
|
|
95
|
+
isMD5(): Chain;
|
|
96
|
+
isMimeType(): Chain;
|
|
97
|
+
isMobilePhone(locale: Options.MobilePhoneLocale | readonly Options.MobilePhoneLocale[], options?: Options.IsMobilePhoneOptions): Chain;
|
|
98
|
+
isMongoId(): Chain;
|
|
99
|
+
isMultibyte(): Chain;
|
|
100
|
+
isNumeric(options?: Options.IsNumericOptions): Chain;
|
|
101
|
+
isOctal(): Chain;
|
|
102
|
+
isPassportNumber(countryCode?: Options.PassportCountryCode): Chain;
|
|
103
|
+
isPort(): Chain;
|
|
104
|
+
isPostalCode(locale: Options.PostalCodeLocale): Chain;
|
|
105
|
+
isRFC3339(): Chain;
|
|
106
|
+
isRgbColor(includePercentValues?: boolean): Chain;
|
|
107
|
+
isSemVer(): Chain;
|
|
108
|
+
isSlug(): Chain;
|
|
109
|
+
isStrongPassword(options?: Options.IsStrongPasswordOptions): Chain;
|
|
110
|
+
isSurrogatePair(): Chain;
|
|
111
|
+
isTaxID(locale: Options.TaxIDLocale): Chain;
|
|
112
|
+
isTime(options?: Options.IsTimeOptions): Chain;
|
|
113
|
+
isURL(options?: Options.IsURLOptions): Chain;
|
|
114
|
+
isULID(): Chain;
|
|
115
|
+
isUUID(version?: Options.UUIDVersion): Chain;
|
|
116
|
+
isUppercase(): Chain;
|
|
117
|
+
isVariableWidth(): Chain;
|
|
118
|
+
isVAT(countryCode: Options.VATCountryCode): Chain;
|
|
119
|
+
isWhitelisted(chars: string | readonly string[]): Chain;
|
|
120
|
+
matches(pattern: RegExp | string, modifiers?: string): any;
|
|
121
|
+
}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidatorsImpl = void 0;
|
|
4
|
+
const validator = require("validator");
|
|
5
|
+
const context_items_1 = require("../context-items");
|
|
6
|
+
class ValidatorsImpl {
|
|
7
|
+
constructor(builder, chain) {
|
|
8
|
+
this.builder = builder;
|
|
9
|
+
this.chain = chain;
|
|
10
|
+
this.negateNext = false;
|
|
11
|
+
}
|
|
12
|
+
addItem(item) {
|
|
13
|
+
this.builder.addItem(item);
|
|
14
|
+
this.lastValidator = item;
|
|
15
|
+
// Reset this.negateNext so that next validation isn't negated too
|
|
16
|
+
this.negateNext = false;
|
|
17
|
+
return this.chain;
|
|
18
|
+
}
|
|
19
|
+
// validation manipulation
|
|
20
|
+
not() {
|
|
21
|
+
this.negateNext = true;
|
|
22
|
+
return this.chain;
|
|
23
|
+
}
|
|
24
|
+
withMessage(message) {
|
|
25
|
+
this.lastValidator.message = message;
|
|
26
|
+
return this.chain;
|
|
27
|
+
}
|
|
28
|
+
// custom validators
|
|
29
|
+
custom(validator) {
|
|
30
|
+
return this.addItem(new context_items_1.CustomValidation(validator, this.negateNext));
|
|
31
|
+
}
|
|
32
|
+
exists(options = {}) {
|
|
33
|
+
let validator;
|
|
34
|
+
if (options.checkFalsy || options.values === 'falsy') {
|
|
35
|
+
validator = value => !!value;
|
|
36
|
+
}
|
|
37
|
+
else if (options.checkNull || options.values === 'null') {
|
|
38
|
+
validator = value => value != null;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
validator = value => value !== undefined;
|
|
42
|
+
}
|
|
43
|
+
return this.custom(validator);
|
|
44
|
+
}
|
|
45
|
+
isArray(options = {}) {
|
|
46
|
+
return this.custom(value => Array.isArray(value) &&
|
|
47
|
+
(typeof options.min === 'undefined' || value.length >= options.min) &&
|
|
48
|
+
(typeof options.max === 'undefined' || value.length <= options.max));
|
|
49
|
+
}
|
|
50
|
+
isObject(options = { strict: true }) {
|
|
51
|
+
return this.custom(value => typeof value === 'object' &&
|
|
52
|
+
(options.strict == null || options.strict ? value !== null && !Array.isArray(value) : true));
|
|
53
|
+
}
|
|
54
|
+
isString() {
|
|
55
|
+
return this.custom(value => typeof value === 'string');
|
|
56
|
+
}
|
|
57
|
+
notEmpty(options) {
|
|
58
|
+
this.not();
|
|
59
|
+
return this.isEmpty(options);
|
|
60
|
+
}
|
|
61
|
+
// Standard validators
|
|
62
|
+
addStandardValidation(validator, ...options) {
|
|
63
|
+
return this.addItem(new context_items_1.StandardValidation(validator, this.negateNext, options));
|
|
64
|
+
}
|
|
65
|
+
contains(elem, options) {
|
|
66
|
+
return this.addStandardValidation(validator.contains, elem, options);
|
|
67
|
+
}
|
|
68
|
+
equals(comparison) {
|
|
69
|
+
return this.addStandardValidation(validator.equals, comparison);
|
|
70
|
+
}
|
|
71
|
+
isAbaRouting() {
|
|
72
|
+
return this.addStandardValidation(validator.isAbaRouting);
|
|
73
|
+
}
|
|
74
|
+
isAfter(dateOrOptions) {
|
|
75
|
+
return this.addStandardValidation(validator.isAfter, dateOrOptions);
|
|
76
|
+
}
|
|
77
|
+
isAlpha(locale, options) {
|
|
78
|
+
// TODO(v7): remove string[] support
|
|
79
|
+
const ignore = Array.isArray(options?.ignore) ? options?.ignore.join('') : options?.ignore;
|
|
80
|
+
return this.addStandardValidation(validator.isAlpha, locale, { ...options, ignore });
|
|
81
|
+
}
|
|
82
|
+
isAlphanumeric(locale, options) {
|
|
83
|
+
return this.addStandardValidation(validator.isAlphanumeric, locale, options);
|
|
84
|
+
}
|
|
85
|
+
isAscii() {
|
|
86
|
+
return this.addStandardValidation(validator.isAscii);
|
|
87
|
+
}
|
|
88
|
+
isBase32(options) {
|
|
89
|
+
return this.addStandardValidation(validator.isBase32, options);
|
|
90
|
+
}
|
|
91
|
+
isBase58() {
|
|
92
|
+
return this.addStandardValidation(validator.isBase58);
|
|
93
|
+
}
|
|
94
|
+
isBase64(options) {
|
|
95
|
+
return this.addStandardValidation(validator.isBase64, options);
|
|
96
|
+
}
|
|
97
|
+
isBefore(date) {
|
|
98
|
+
return this.addStandardValidation(validator.isBefore, date);
|
|
99
|
+
}
|
|
100
|
+
isBIC() {
|
|
101
|
+
return this.addStandardValidation(validator.isBIC);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* There are basically three levels of strictness for this validator.
|
|
105
|
+
* Passing `{ strict: true }` as option only passes the validation if the value is a JS bool. (It also overrides the loose property of the options).
|
|
106
|
+
* Passing `{ loose: true|false }` along with no `strict` prop of with `strict` falsy follows the behaviour specified in validator.js docs.
|
|
107
|
+
*/
|
|
108
|
+
isBoolean(options) {
|
|
109
|
+
if (options?.strict) {
|
|
110
|
+
return this.custom(value => {
|
|
111
|
+
return value === true || value === false;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return this.addStandardValidation(validator.isBoolean, options);
|
|
115
|
+
}
|
|
116
|
+
isBtcAddress() {
|
|
117
|
+
return this.addStandardValidation(validator.isBtcAddress);
|
|
118
|
+
}
|
|
119
|
+
isByteLength(options) {
|
|
120
|
+
return this.addStandardValidation(validator.isByteLength, options);
|
|
121
|
+
}
|
|
122
|
+
isCreditCard() {
|
|
123
|
+
return this.addStandardValidation(validator.isCreditCard);
|
|
124
|
+
}
|
|
125
|
+
isCurrency(options) {
|
|
126
|
+
return this.addStandardValidation(validator.isCurrency, options);
|
|
127
|
+
}
|
|
128
|
+
isDataURI() {
|
|
129
|
+
return this.addStandardValidation(validator.isDataURI);
|
|
130
|
+
}
|
|
131
|
+
isDate(options) {
|
|
132
|
+
return this.addStandardValidation(validator.isDate, options);
|
|
133
|
+
}
|
|
134
|
+
isDecimal(options) {
|
|
135
|
+
return this.addStandardValidation(validator.isDecimal, options);
|
|
136
|
+
}
|
|
137
|
+
isDivisibleBy(number) {
|
|
138
|
+
return this.addStandardValidation(validator.isDivisibleBy, number);
|
|
139
|
+
}
|
|
140
|
+
isEAN() {
|
|
141
|
+
return this.addStandardValidation(validator.isEAN);
|
|
142
|
+
}
|
|
143
|
+
isEmail(options) {
|
|
144
|
+
return this.addStandardValidation(validator.isEmail, options);
|
|
145
|
+
}
|
|
146
|
+
isEmpty(options) {
|
|
147
|
+
return this.addStandardValidation(validator.isEmpty, options);
|
|
148
|
+
}
|
|
149
|
+
isEthereumAddress() {
|
|
150
|
+
return this.addStandardValidation(validator.isEthereumAddress);
|
|
151
|
+
}
|
|
152
|
+
isFQDN(options) {
|
|
153
|
+
return this.addStandardValidation(validator.isFQDN, options);
|
|
154
|
+
}
|
|
155
|
+
isFloat(options) {
|
|
156
|
+
return this.addStandardValidation(validator.isFloat, options);
|
|
157
|
+
}
|
|
158
|
+
isFreightContainerID() {
|
|
159
|
+
return this.addStandardValidation(validator.isFreightContainerID);
|
|
160
|
+
}
|
|
161
|
+
isFullWidth() {
|
|
162
|
+
return this.addStandardValidation(validator.isFullWidth);
|
|
163
|
+
}
|
|
164
|
+
isHalfWidth() {
|
|
165
|
+
return this.addStandardValidation(validator.isHalfWidth);
|
|
166
|
+
}
|
|
167
|
+
isHash(algorithm) {
|
|
168
|
+
return this.addStandardValidation(validator.isHash, algorithm);
|
|
169
|
+
}
|
|
170
|
+
isHexColor() {
|
|
171
|
+
return this.addStandardValidation(validator.isHexColor);
|
|
172
|
+
}
|
|
173
|
+
isHexadecimal() {
|
|
174
|
+
return this.addStandardValidation(validator.isHexadecimal);
|
|
175
|
+
}
|
|
176
|
+
isHSL() {
|
|
177
|
+
return this.addStandardValidation(validator.isHSL);
|
|
178
|
+
}
|
|
179
|
+
isIBAN(options) {
|
|
180
|
+
return this.addStandardValidation(validator.isIBAN, options);
|
|
181
|
+
}
|
|
182
|
+
isIdentityCard(locale) {
|
|
183
|
+
return this.addStandardValidation(validator.isIdentityCard, locale);
|
|
184
|
+
}
|
|
185
|
+
isIMEI(options) {
|
|
186
|
+
return this.addStandardValidation(validator.isIMEI, options);
|
|
187
|
+
}
|
|
188
|
+
isIP(version) {
|
|
189
|
+
return this.addStandardValidation(validator.isIP, version);
|
|
190
|
+
}
|
|
191
|
+
isIPRange(version) {
|
|
192
|
+
return this.addStandardValidation(validator.isIPRange, version);
|
|
193
|
+
}
|
|
194
|
+
isISBN(versionOrOptions) {
|
|
195
|
+
return this.addStandardValidation(validator.isISBN, versionOrOptions);
|
|
196
|
+
}
|
|
197
|
+
isISSN(options) {
|
|
198
|
+
return this.addStandardValidation(validator.isISSN, options);
|
|
199
|
+
}
|
|
200
|
+
isISIN() {
|
|
201
|
+
return this.addStandardValidation(validator.isISIN);
|
|
202
|
+
}
|
|
203
|
+
isISO6346() {
|
|
204
|
+
return this.addStandardValidation(validator.isISO6346);
|
|
205
|
+
}
|
|
206
|
+
isISO6391() {
|
|
207
|
+
return this.addStandardValidation(validator.isISO6391);
|
|
208
|
+
}
|
|
209
|
+
isISO8601(options) {
|
|
210
|
+
return this.addStandardValidation(validator.isISO8601, options);
|
|
211
|
+
}
|
|
212
|
+
isISO31661Numeric() {
|
|
213
|
+
return this.addStandardValidation(validator.isISO31661Numeric);
|
|
214
|
+
}
|
|
215
|
+
isISO31661Alpha2() {
|
|
216
|
+
return this.addStandardValidation(validator.isISO31661Alpha2);
|
|
217
|
+
}
|
|
218
|
+
isISO31661Alpha3() {
|
|
219
|
+
return this.addStandardValidation(validator.isISO31661Alpha3);
|
|
220
|
+
}
|
|
221
|
+
isISO4217() {
|
|
222
|
+
return this.addStandardValidation(validator.isISO4217);
|
|
223
|
+
}
|
|
224
|
+
isISO15924() {
|
|
225
|
+
return this.addStandardValidation(validator.isISO15924);
|
|
226
|
+
}
|
|
227
|
+
isISRC() {
|
|
228
|
+
return this.addStandardValidation(validator.isISRC);
|
|
229
|
+
}
|
|
230
|
+
isIn(values) {
|
|
231
|
+
return this.addStandardValidation(validator.isIn, values);
|
|
232
|
+
}
|
|
233
|
+
isInt(options) {
|
|
234
|
+
return this.addStandardValidation(validator.isInt, options);
|
|
235
|
+
}
|
|
236
|
+
isJSON(options) {
|
|
237
|
+
return this.addStandardValidation(validator.isJSON, options);
|
|
238
|
+
}
|
|
239
|
+
isJWT() {
|
|
240
|
+
return this.addStandardValidation(validator.isJWT);
|
|
241
|
+
}
|
|
242
|
+
isLatLong(options) {
|
|
243
|
+
return this.addStandardValidation(validator.isLatLong, options);
|
|
244
|
+
}
|
|
245
|
+
isLength(options) {
|
|
246
|
+
return this.addStandardValidation(validator.isLength, options);
|
|
247
|
+
}
|
|
248
|
+
isLicensePlate(locale) {
|
|
249
|
+
return this.addStandardValidation(validator.isLicensePlate, locale);
|
|
250
|
+
}
|
|
251
|
+
isLocale() {
|
|
252
|
+
return this.addStandardValidation(validator.isLocale);
|
|
253
|
+
}
|
|
254
|
+
isLowercase() {
|
|
255
|
+
return this.addStandardValidation(validator.isLowercase);
|
|
256
|
+
}
|
|
257
|
+
isLuhnNumber() {
|
|
258
|
+
return this.addStandardValidation(validator.isLuhnNumber);
|
|
259
|
+
}
|
|
260
|
+
isMagnetURI() {
|
|
261
|
+
return this.addStandardValidation(validator.isMagnetURI);
|
|
262
|
+
}
|
|
263
|
+
isMailtoURI(options) {
|
|
264
|
+
return this.addStandardValidation(validator.isMailtoURI, options);
|
|
265
|
+
}
|
|
266
|
+
isMACAddress(options) {
|
|
267
|
+
return this.addStandardValidation(validator.isMACAddress, options);
|
|
268
|
+
}
|
|
269
|
+
isMD5() {
|
|
270
|
+
return this.addStandardValidation(validator.isMD5);
|
|
271
|
+
}
|
|
272
|
+
isMimeType() {
|
|
273
|
+
return this.addStandardValidation(validator.isMimeType);
|
|
274
|
+
}
|
|
275
|
+
isMobilePhone(locale, options) {
|
|
276
|
+
return this.addStandardValidation(validator.isMobilePhone, locale, options);
|
|
277
|
+
}
|
|
278
|
+
isMongoId() {
|
|
279
|
+
return this.addStandardValidation(validator.isMongoId);
|
|
280
|
+
}
|
|
281
|
+
isMultibyte() {
|
|
282
|
+
return this.addStandardValidation(validator.isMultibyte);
|
|
283
|
+
}
|
|
284
|
+
isNumeric(options) {
|
|
285
|
+
return this.addStandardValidation(validator.isNumeric, options);
|
|
286
|
+
}
|
|
287
|
+
isOctal() {
|
|
288
|
+
return this.addStandardValidation(validator.isOctal);
|
|
289
|
+
}
|
|
290
|
+
isPassportNumber(countryCode) {
|
|
291
|
+
return this.addStandardValidation(validator.isPassportNumber, countryCode);
|
|
292
|
+
}
|
|
293
|
+
isPort() {
|
|
294
|
+
return this.addStandardValidation(validator.isPort);
|
|
295
|
+
}
|
|
296
|
+
isPostalCode(locale) {
|
|
297
|
+
return this.addStandardValidation(validator.isPostalCode, locale);
|
|
298
|
+
}
|
|
299
|
+
isRFC3339() {
|
|
300
|
+
return this.addStandardValidation(validator.isRFC3339);
|
|
301
|
+
}
|
|
302
|
+
isRgbColor(includePercentValues) {
|
|
303
|
+
return this.addStandardValidation(validator.isRgbColor, includePercentValues);
|
|
304
|
+
}
|
|
305
|
+
isSemVer() {
|
|
306
|
+
return this.addStandardValidation(validator.isSemVer);
|
|
307
|
+
}
|
|
308
|
+
isSlug() {
|
|
309
|
+
return this.addStandardValidation(validator.isSlug);
|
|
310
|
+
}
|
|
311
|
+
isStrongPassword(options) {
|
|
312
|
+
return this.addStandardValidation(validator.isStrongPassword, options);
|
|
313
|
+
}
|
|
314
|
+
isSurrogatePair() {
|
|
315
|
+
return this.addStandardValidation(validator.isSurrogatePair);
|
|
316
|
+
}
|
|
317
|
+
isTaxID(locale) {
|
|
318
|
+
return this.addStandardValidation(validator.isTaxID, locale);
|
|
319
|
+
}
|
|
320
|
+
isTime(options) {
|
|
321
|
+
return this.addStandardValidation(validator.isTime, options);
|
|
322
|
+
}
|
|
323
|
+
isURL(options) {
|
|
324
|
+
return this.addStandardValidation(validator.isURL, options);
|
|
325
|
+
}
|
|
326
|
+
isULID() {
|
|
327
|
+
return this.addStandardValidation(validator.isULID);
|
|
328
|
+
}
|
|
329
|
+
isUUID(version) {
|
|
330
|
+
return this.addStandardValidation(validator.isUUID, version);
|
|
331
|
+
}
|
|
332
|
+
isUppercase() {
|
|
333
|
+
return this.addStandardValidation(validator.isUppercase);
|
|
334
|
+
}
|
|
335
|
+
isVariableWidth() {
|
|
336
|
+
return this.addStandardValidation(validator.isVariableWidth);
|
|
337
|
+
}
|
|
338
|
+
isVAT(countryCode) {
|
|
339
|
+
return this.addStandardValidation(validator.isVAT, countryCode);
|
|
340
|
+
}
|
|
341
|
+
isWhitelisted(chars) {
|
|
342
|
+
return this.addStandardValidation(validator.isWhitelisted, chars);
|
|
343
|
+
}
|
|
344
|
+
matches(pattern, modifiers) {
|
|
345
|
+
return this.addStandardValidation.apply(this, [
|
|
346
|
+
validator.matches,
|
|
347
|
+
...(typeof pattern === 'string'
|
|
348
|
+
? [pattern, modifiers]
|
|
349
|
+
: [pattern.source, [...new Set((modifiers || '') + pattern.flags)].join('')]),
|
|
350
|
+
]);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.ValidatorsImpl = ValidatorsImpl;
|